|
540 | 540 | "name": "stdout", |
541 | 541 | "output_type": "stream", |
542 | 542 | "text": [ |
543 | | - "CPU times: user 82.9 ms, sys: 9.51 ms, total: 92.4 ms\n", |
544 | | - "Wall time: 2.04 s\n" |
| 543 | + "CPU times: user 89.4 ms, sys: 937 μs, total: 90.3 ms\n", |
| 544 | + "Wall time: 1.87 s\n" |
545 | 545 | ] |
546 | 546 | } |
547 | 547 | ], |
|
663 | 663 | "name": "stdout", |
664 | 664 | "output_type": "stream", |
665 | 665 | "text": [ |
666 | | - "granules 1-1 of 18 processed, 1 points matched, 00:00:28\n", |
667 | | - "granules 2-2 of 18 processed, 9 points matched, 00:03:51\n", |
668 | | - "granules 3-3 of 18 processed, 8 points matched, 00:06:53\n", |
669 | | - "CPU times: user 9min 41s, sys: 8.33 s, total: 9min 49s\n", |
670 | | - "Wall time: 9min 54s\n" |
671 | | - ] |
672 | | - }, |
673 | | - { |
674 | | - "ename": "KeyboardInterrupt", |
675 | | - "evalue": "", |
676 | | - "output_type": "error", |
677 | | - "traceback": [ |
678 | | - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", |
679 | | - "\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)", |
680 | | - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mget_ipython\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43mrun_cell_magic\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mtime\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mres = pc.matchup(plan[0:100], geometry=\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mgrid\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m, variables = [\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mavw\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m], batch_size=1, spatial_method=\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mxoak\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m)\u001b[39;49m\u001b[38;5;130;43;01m\\n\u001b[39;49;00m\u001b[33;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n", |
681 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/IPython/core/interactiveshell.py:2572\u001b[39m, in \u001b[36mInteractiveShell.run_cell_magic\u001b[39m\u001b[34m(self, magic_name, line, cell)\u001b[39m\n\u001b[32m 2570\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m.builtin_trap:\n\u001b[32m 2571\u001b[39m args = (magic_arg_s, cell)\n\u001b[32m-> \u001b[39m\u001b[32m2572\u001b[39m result = \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 2574\u001b[39m \u001b[38;5;66;03m# The code below prevents the output from being displayed\u001b[39;00m\n\u001b[32m 2575\u001b[39m \u001b[38;5;66;03m# when using magics with decorator @output_can_be_silenced\u001b[39;00m\n\u001b[32m 2576\u001b[39m \u001b[38;5;66;03m# when the last Python token in the expression is a ';'.\u001b[39;00m\n\u001b[32m 2577\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(fn, magic.MAGIC_OUTPUT_CAN_BE_SILENCED, \u001b[38;5;28;01mFalse\u001b[39;00m):\n", |
682 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/IPython/core/magics/execution.py:1447\u001b[39m, in \u001b[36mExecutionMagics.time\u001b[39m\u001b[34m(self, line, cell, local_ns)\u001b[39m\n\u001b[32m 1445\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m interrupt_occured:\n\u001b[32m 1446\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m exit_on_interrupt \u001b[38;5;129;01mand\u001b[39;00m captured_exception:\n\u001b[32m-> \u001b[39m\u001b[32m1447\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m captured_exception\n\u001b[32m 1448\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[32m 1449\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m out\n", |
683 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/IPython/core/magics/execution.py:1411\u001b[39m, in \u001b[36mExecutionMagics.time\u001b[39m\u001b[34m(self, line, cell, local_ns)\u001b[39m\n\u001b[32m 1409\u001b[39m st = clock2()\n\u001b[32m 1410\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m-> \u001b[39m\u001b[32m1411\u001b[39m \u001b[43mexec\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcode\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mglob\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlocal_ns\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1412\u001b[39m out = \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 1413\u001b[39m \u001b[38;5;66;03m# multi-line %%time case\u001b[39;00m\n", |
684 | | - "\u001b[36mFile \u001b[39m\u001b[32m<timed exec>:1\u001b[39m\n", |
685 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/point-collocation/src/point_collocation/core/engine.py:205\u001b[39m, in \u001b[36mmatchup\u001b[39m\u001b[34m(plan, geometry, variables, open_method, spatial_method, open_dataset_kwargs, silent, batch_size, save_dir, granule_range)\u001b[39m\n\u001b[32m 203\u001b[39m effective_vars: \u001b[38;5;28mlist\u001b[39m[\u001b[38;5;28mstr\u001b[39m] = variables \u001b[38;5;28;01mif\u001b[39;00m variables \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m plan.variables\n\u001b[32m 204\u001b[39m effective_kwargs = {\u001b[33m\"\u001b[39m\u001b[33mchunks\u001b[39m\u001b[33m\"\u001b[39m: {}, **(open_dataset_kwargs \u001b[38;5;129;01mor\u001b[39;00m {})}\n\u001b[32m--> \u001b[39m\u001b[32m205\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_execute_plan\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 206\u001b[39m \u001b[43m \u001b[49m\u001b[43mplan\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 207\u001b[39m \u001b[43m \u001b[49m\u001b[43mgeometry\u001b[49m\u001b[43m=\u001b[49m\u001b[43mgeometry\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 208\u001b[39m \u001b[43m \u001b[49m\u001b[43mopen_method\u001b[49m\u001b[43m=\u001b[49m\u001b[43mopen_method\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 209\u001b[39m \u001b[43m \u001b[49m\u001b[43mspatial_method\u001b[49m\u001b[43m=\u001b[49m\u001b[43mspatial_method\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 210\u001b[39m \u001b[43m \u001b[49m\u001b[43mvariables\u001b[49m\u001b[43m=\u001b[49m\u001b[43meffective_vars\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 211\u001b[39m \u001b[43m \u001b[49m\u001b[43msilent\u001b[49m\u001b[43m=\u001b[49m\u001b[43msilent\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 212\u001b[39m \u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[43m=\u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 213\u001b[39m \u001b[43m \u001b[49m\u001b[43msave_dir\u001b[49m\u001b[43m=\u001b[49m\u001b[43msave_dir\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 214\u001b[39m \u001b[43m \u001b[49m\u001b[43mgranule_range\u001b[49m\u001b[43m=\u001b[49m\u001b[43mgranule_range\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 215\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43meffective_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 216\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", |
686 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/point-collocation/src/point_collocation/core/engine.py:537\u001b[39m, in \u001b[36m_execute_plan\u001b[39m\u001b[34m(plan, geometry, open_method, spatial_method, variables, silent, batch_size, save_dir, granule_range, **open_dataset_kwargs)\u001b[39m\n\u001b[32m 535\u001b[39m _extract_nearest(ds, row, variables, lon_name, lat_name)\n\u001b[32m 536\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m537\u001b[39m \u001b[43m_extract_xoak\u001b[49m\u001b[43m(\u001b[49m\u001b[43mds\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrow\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvariables\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlon_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlat_name\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 539\u001b[39m output_rows.append(row)\n\u001b[32m 540\u001b[39m batch_rows.append(row)\n", |
687 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/point-collocation/src/point_collocation/core/engine.py:676\u001b[39m, in \u001b[36m_extract_xoak\u001b[39m\u001b[34m(ds, row, variables, lon_name, lat_name)\u001b[39m\n\u001b[32m 673\u001b[39m ds_work[lon_name] = xr.DataArray(lon_2d, dims=lat_dims)\n\u001b[32m 675\u001b[39m \u001b[38;5;66;03m# Build the NDPointIndex using the sklearn k-d tree adapter.\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m676\u001b[39m indexed_ds = \u001b[43mds_work\u001b[49m\u001b[43m.\u001b[49m\u001b[43mset_xindex\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 677\u001b[39m \u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mlat_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlon_name\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 678\u001b[39m \u001b[43m \u001b[49m\u001b[43mxr\u001b[49m\u001b[43m.\u001b[49m\u001b[43mindexes\u001b[49m\u001b[43m.\u001b[49m\u001b[43mNDPointIndex\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 679\u001b[39m \u001b[43m \u001b[49m\u001b[43mtree_adapter_cls\u001b[49m\u001b[43m=\u001b[49m\u001b[43mSklearnKDTreeAdapter\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 680\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 682\u001b[39m \u001b[38;5;66;03m# Build the target selection (one query point).\u001b[39;00m\n\u001b[32m 683\u001b[39m target = xr.Dataset(\n\u001b[32m 684\u001b[39m {\n\u001b[32m 685\u001b[39m lat_name: xr.DataArray([row[\u001b[33m\"\u001b[39m\u001b[33mlat\u001b[39m\u001b[33m\"\u001b[39m]]),\n\u001b[32m 686\u001b[39m lon_name: xr.DataArray([row[\u001b[33m\"\u001b[39m\u001b[33mlon\u001b[39m\u001b[33m\"\u001b[39m]]),\n\u001b[32m 687\u001b[39m }\n\u001b[32m 688\u001b[39m )\n", |
688 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/xarray/core/dataset.py:5019\u001b[39m, in \u001b[36mDataset.set_xindex\u001b[39m\u001b[34m(self, coord_names, index_cls, **options)\u001b[39m\n\u001b[32m 5013\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 5014\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mthose coordinates already have an index: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mindexed_coords\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m\n\u001b[32m 5015\u001b[39m )\n\u001b[32m 5017\u001b[39m coord_vars = {name: \u001b[38;5;28mself\u001b[39m._variables[name] \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m coord_names}\n\u001b[32m-> \u001b[39m\u001b[32m5019\u001b[39m index = \u001b[43mindex_cls\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfrom_variables\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcoord_vars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[43m=\u001b[49m\u001b[43moptions\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 5021\u001b[39m new_coord_vars = index.create_variables(coord_vars)\n\u001b[32m 5023\u001b[39m \u001b[38;5;66;03m# special case for setting a pandas multi-index from level coordinates\u001b[39;00m\n\u001b[32m 5024\u001b[39m \u001b[38;5;66;03m# TODO: remove it once we depreciate pandas multi-index dimension (tuple\u001b[39;00m\n\u001b[32m 5025\u001b[39m \u001b[38;5;66;03m# elements) coordinate\u001b[39;00m\n", |
689 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/xarray/indexes/nd_point_index.py:276\u001b[39m, in \u001b[36mNDPointIndex.from_variables\u001b[39m\u001b[34m(cls, variables, options)\u001b[39m\n\u001b[32m 271\u001b[39m tree_adapter_cls = ScipyKDTreeAdapter\n\u001b[32m 273\u001b[39m points = get_points(variables.values())\n\u001b[32m 275\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mcls\u001b[39m(\n\u001b[32m--> \u001b[39m\u001b[32m276\u001b[39m \u001b[43mtree_adapter_cls\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpoints\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[43m=\u001b[49m\u001b[43mopts\u001b[49m\u001b[43m)\u001b[49m,\n\u001b[32m 277\u001b[39m coord_names=\u001b[38;5;28mtuple\u001b[39m(variables),\n\u001b[32m 278\u001b[39m dims=var0.dims,\n\u001b[32m 279\u001b[39m shape=var0.shape,\n\u001b[32m 280\u001b[39m )\n", |
690 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/xoak/tree_adapters.py:47\u001b[39m, in \u001b[36mSklearnKDTreeAdapter.__init__\u001b[39m\u001b[34m(self, points, options)\u001b[39m\n\u001b[32m 44\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, points: np.ndarray, options: Mapping[\u001b[38;5;28mstr\u001b[39m, Any]):\n\u001b[32m 45\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01msklearn\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mneighbors\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m KDTree\n\u001b[32m---> \u001b[39m\u001b[32m47\u001b[39m \u001b[38;5;28mself\u001b[39m._kdtree = \u001b[43mKDTree\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpoints\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43moptions\u001b[49m\u001b[43m)\u001b[49m\n", |
691 | | - "\u001b[31mKeyboardInterrupt\u001b[39m: " |
| 666 | + "granules 1-1 of 18 processed, 1 points matched, 00:00:06\n", |
| 667 | + "granules 2-2 of 18 processed, 9 points matched, 00:00:07\n", |
| 668 | + "granules 3-3 of 18 processed, 8 points matched, 00:00:08\n", |
| 669 | + "granules 4-4 of 18 processed, 8 points matched, 00:00:08\n", |
| 670 | + "granules 5-5 of 18 processed, 10 points matched, 00:00:09\n", |
| 671 | + "granules 6-6 of 18 processed, 1 points matched, 00:00:09\n", |
| 672 | + "granules 7-7 of 18 processed, 2 points matched, 00:00:10\n", |
| 673 | + "granules 8-8 of 18 processed, 1 points matched, 00:00:10\n", |
| 674 | + "granules 9-9 of 18 processed, 1 points matched, 00:00:11\n", |
| 675 | + "granules 10-10 of 18 processed, 9 points matched, 00:00:12\n", |
| 676 | + "granules 11-11 of 18 processed, 8 points matched, 00:00:12\n", |
| 677 | + "granules 12-12 of 18 processed, 8 points matched, 00:00:13\n", |
| 678 | + "granules 13-13 of 18 processed, 6 points matched, 00:00:13\n", |
| 679 | + "granules 14-14 of 18 processed, 3 points matched, 00:00:14\n", |
| 680 | + "granules 15-15 of 18 processed, 9 points matched, 00:00:15\n", |
| 681 | + "granules 16-16 of 18 processed, 9 points matched, 00:00:15\n", |
| 682 | + "granules 17-17 of 18 processed, 6 points matched, 00:00:16\n", |
| 683 | + "granules 18-18 of 18 processed, 1 points matched, 00:00:16\n", |
| 684 | + "CPU times: user 4.66 s, sys: 483 ms, total: 5.14 s\n", |
| 685 | + "Wall time: 17.5 s\n" |
692 | 686 | ] |
693 | 687 | } |
694 | 688 | ], |
|
0 commit comments