|
19 | 19 | }, |
20 | 20 | { |
21 | 21 | "cell_type": "code", |
22 | | - "execution_count": 9, |
| 22 | + "execution_count": 1, |
23 | 23 | "id": "ad9965c9-4115-465b-9fc3-dbceed80862c", |
24 | 24 | "metadata": {}, |
25 | 25 | "outputs": [ |
|
67 | 67 | "0 30.0 -89.0 2025-04-09 simple_1" |
68 | 68 | ] |
69 | 69 | }, |
70 | | - "execution_count": 9, |
| 70 | + "execution_count": 1, |
71 | 71 | "metadata": {}, |
72 | 72 | "output_type": "execute_result" |
73 | 73 | } |
|
101 | 101 | }, |
102 | 102 | { |
103 | 103 | "cell_type": "code", |
104 | | - "execution_count": 10, |
| 104 | + "execution_count": 2, |
105 | 105 | "id": "2c2899e2-1646-4971-84ce-164d65642fbc", |
106 | 106 | "metadata": {}, |
107 | 107 | "outputs": [ |
108 | 108 | { |
109 | 109 | "name": "stdout", |
110 | 110 | "output_type": "stream", |
111 | 111 | "text": [ |
112 | | - "CPU times: user 20.2 ms, sys: 0 ns, total: 20.2 ms\n", |
113 | | - "Wall time: 8.21 s\n" |
| 112 | + "CPU times: user 613 ms, sys: 89.7 ms, total: 703 ms\n", |
| 113 | + "Wall time: 2.71 s\n" |
114 | 114 | ] |
115 | 115 | } |
116 | 116 | ], |
|
165 | 165 | }, |
166 | 166 | { |
167 | 167 | "cell_type": "code", |
168 | | - "execution_count": 11, |
| 168 | + "execution_count": 3, |
169 | 169 | "id": "f4c08eb6-b040-4feb-8aa9-8d845194fff5", |
170 | 170 | "metadata": {}, |
171 | 171 | "outputs": [ |
172 | 172 | { |
173 | 173 | "name": "stdout", |
174 | 174 | "output_type": "stream", |
175 | 175 | "text": [ |
176 | | - "open_method: {'xarray_open': 'dataset', 'open_kwargs': {'chunks': {}, 'engine': 'h5netcdf', 'decode_timedelta': False}, 'coords': 'auto', 'set_coords': True, 'dim_renames': None, 'auto_align_phony_dims': None}\n" |
177 | | - ] |
178 | | - }, |
179 | | - { |
180 | | - "ename": "KeyboardInterrupt", |
181 | | - "evalue": "", |
182 | | - "output_type": "error", |
183 | | - "traceback": [ |
184 | | - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", |
185 | | - "\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)", |
186 | | - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[11]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mplan\u001b[49m\u001b[43m.\u001b[49m\u001b[43mshow_variables\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", |
187 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/point-collocation/src/point_collocation/core/plan.py:532\u001b[39m, in \u001b[36mPlan.show_variables\u001b[39m\u001b[34m(self, open_method)\u001b[39m\n\u001b[32m 527\u001b[39m \u001b[38;5;28;01mpass\u001b[39;00m\n\u001b[32m 529\u001b[39m \u001b[38;5;66;03m# ---------------------------------------------------------------\u001b[39;00m\n\u001b[32m 530\u001b[39m \u001b[38;5;66;03m# Fast path: use h5py for per-group metadata inspection.\u001b[39;00m\n\u001b[32m 531\u001b[39m \u001b[38;5;66;03m# ---------------------------------------------------------------\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m532\u001b[39m h5_info = \u001b[43m_h5py_file_info\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfile_obj\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 533\u001b[39m _seek_back() \u001b[38;5;66;03m# ensure file_obj is at start for subsequent xarray opens\u001b[39;00m\n\u001b[32m 534\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m h5_info \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 535\u001b[39m \u001b[38;5;66;03m# Determine which groups to include based on merge spec.\u001b[39;00m\n", |
188 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/point-collocation/src/point_collocation/core/_open_method.py:672\u001b[39m, in \u001b[36m_h5py_file_info\u001b[39m\u001b[34m(file_obj)\u001b[39m\n\u001b[32m 669\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, h5py.Group):\n\u001b[32m 670\u001b[39m sub_groups.append((\u001b[33m\"\u001b[39m\u001b[33m/\u001b[39m\u001b[33m\"\u001b[39m + name, obj))\n\u001b[32m--> \u001b[39m\u001b[32m672\u001b[39m \u001b[43mh\u001b[49m\u001b[43m.\u001b[49m\u001b[43mvisititems\u001b[49m\u001b[43m(\u001b[49m\u001b[43m_visit\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 673\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m group_path, group \u001b[38;5;129;01min\u001b[39;00m sub_groups:\n\u001b[32m 674\u001b[39m gvars = _group_vars(group, h)\n", |
189 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/h5py/_hl/group.py:677\u001b[39m, in \u001b[36mGroup.visititems\u001b[39m\u001b[34m(self, func)\u001b[39m\n\u001b[32m 675\u001b[39m name = \u001b[38;5;28mself\u001b[39m._d(name)\n\u001b[32m 676\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m func(name, \u001b[38;5;28mself\u001b[39m[name])\n\u001b[32m--> \u001b[39m\u001b[32m677\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mh5o\u001b[49m\u001b[43m.\u001b[49m\u001b[43mvisit\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mid\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mproxy\u001b[49m\u001b[43m)\u001b[49m\n", |
190 | | - "\u001b[36mFile \u001b[39m\u001b[32mh5py/_objects.pyx:54\u001b[39m, in \u001b[36mh5py._objects.with_phil.wrapper\u001b[39m\u001b[34m()\u001b[39m\n", |
191 | | - "\u001b[36mFile \u001b[39m\u001b[32mh5py/_objects.pyx:55\u001b[39m, in \u001b[36mh5py._objects.with_phil.wrapper\u001b[39m\u001b[34m()\u001b[39m\n", |
192 | | - "\u001b[36mFile \u001b[39m\u001b[32mh5py/h5o.pyx:422\u001b[39m, in \u001b[36mh5py.h5o.visit\u001b[39m\u001b[34m()\u001b[39m\n", |
193 | | - "\u001b[36mFile \u001b[39m\u001b[32mh5py/h5fd.pyx:162\u001b[39m, in \u001b[36mh5py.h5fd.H5FD_fileobj_read\u001b[39m\u001b[34m()\u001b[39m\n", |
194 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/fsspec/spec.py:2140\u001b[39m, in \u001b[36mAbstractBufferedFile.readinto\u001b[39m\u001b[34m(self, b)\u001b[39m\n\u001b[32m 2135\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"mirrors builtin file's readinto method\u001b[39;00m\n\u001b[32m 2136\u001b[39m \n\u001b[32m 2137\u001b[39m \u001b[33;03mhttps://docs.python.org/3/library/io.html#io.RawIOBase.readinto\u001b[39;00m\n\u001b[32m 2138\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 2139\u001b[39m out = \u001b[38;5;28mmemoryview\u001b[39m(b).cast(\u001b[33m\"\u001b[39m\u001b[33mB\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m-> \u001b[39m\u001b[32m2140\u001b[39m data = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mread\u001b[49m\u001b[43m(\u001b[49m\u001b[43mout\u001b[49m\u001b[43m.\u001b[49m\u001b[43mnbytes\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 2141\u001b[39m out[: \u001b[38;5;28mlen\u001b[39m(data)] = data\n\u001b[32m 2142\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(data)\n", |
195 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/fsspec/spec.py:2122\u001b[39m, in \u001b[36mAbstractBufferedFile.read\u001b[39m\u001b[34m(self, length)\u001b[39m\n\u001b[32m 2119\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m length == \u001b[32m0\u001b[39m:\n\u001b[32m 2120\u001b[39m \u001b[38;5;66;03m# don't even bother calling fetch\u001b[39;00m\n\u001b[32m 2121\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[33mb\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m-> \u001b[39m\u001b[32m2122\u001b[39m out = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mcache\u001b[49m\u001b[43m.\u001b[49m\u001b[43m_fetch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mloc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mloc\u001b[49m\u001b[43m \u001b[49m\u001b[43m+\u001b[49m\u001b[43m \u001b[49m\u001b[43mlength\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 2124\u001b[39m logger.debug(\n\u001b[32m 2125\u001b[39m \u001b[33m\"\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[33m read: \u001b[39m\u001b[38;5;132;01m%i\u001b[39;00m\u001b[33m - \u001b[39m\u001b[38;5;132;01m%i\u001b[39;00m\u001b[33m \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[33m\"\u001b[39m,\n\u001b[32m 2126\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 2129\u001b[39m \u001b[38;5;28mself\u001b[39m.cache._log_stats(),\n\u001b[32m 2130\u001b[39m )\n\u001b[32m 2131\u001b[39m \u001b[38;5;28mself\u001b[39m.loc += \u001b[38;5;28mlen\u001b[39m(out)\n", |
196 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/site-packages/fsspec/caching.py:886\u001b[39m, in \u001b[36mBackgroundBlockCache._fetch\u001b[39m\u001b[34m(self, start, end)\u001b[39m\n\u001b[32m 883\u001b[39m logger.info(\u001b[33m\"\u001b[39m\u001b[33mBlockCache waiting for background fetch.\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 884\u001b[39m \u001b[38;5;66;03m# Wait until result and put it in cache\u001b[39;00m\n\u001b[32m 885\u001b[39m \u001b[38;5;28mself\u001b[39m._fetch_block_cached.add_key(\n\u001b[32m--> \u001b[39m\u001b[32m886\u001b[39m \u001b[43mfetch_future\u001b[49m\u001b[43m.\u001b[49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m, fetch_future_block_number\n\u001b[32m 887\u001b[39m )\n\u001b[32m 889\u001b[39m \u001b[38;5;66;03m# these are cached, so safe to do multiple calls for the same start and end.\u001b[39;00m\n\u001b[32m 890\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m block_number \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(start_block_number, end_block_number + \u001b[32m1\u001b[39m):\n", |
197 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/concurrent/futures/_base.py:451\u001b[39m, in \u001b[36mFuture.result\u001b[39m\u001b[34m(self, timeout)\u001b[39m\n\u001b[32m 448\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._state == FINISHED:\n\u001b[32m 449\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m.__get_result()\n\u001b[32m--> \u001b[39m\u001b[32m451\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_condition\u001b[49m\u001b[43m.\u001b[49m\u001b[43mwait\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 453\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._state \u001b[38;5;129;01min\u001b[39;00m [CANCELLED, CANCELLED_AND_NOTIFIED]:\n\u001b[32m 454\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n", |
198 | | - "\u001b[36mFile \u001b[39m\u001b[32m/srv/conda/envs/notebook/lib/python3.12/threading.py:355\u001b[39m, in \u001b[36mCondition.wait\u001b[39m\u001b[34m(self, timeout)\u001b[39m\n\u001b[32m 353\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m: \u001b[38;5;66;03m# restore state no matter what (e.g., KeyboardInterrupt)\u001b[39;00m\n\u001b[32m 354\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m timeout \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m355\u001b[39m \u001b[43mwaiter\u001b[49m\u001b[43m.\u001b[49m\u001b[43macquire\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 356\u001b[39m gotit = \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[32m 357\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n", |
199 | | - "\u001b[31mKeyboardInterrupt\u001b[39m: " |
| 176 | + "open_method: {'xarray_open': 'dataset', 'open_kwargs': {'chunks': {}, 'engine': 'h5netcdf', 'decode_timedelta': False}, 'coords': 'auto', 'set_coords': True, 'dim_renames': None, 'auto_align_phony_dims': None}\n", |
| 177 | + "\n", |
| 178 | + "Group /\n", |
| 179 | + " Dimensions: {'dim_0': 172, 'lat': 4320, 'lon': 8640, 'wavelength': 172, 'rgb': 3, 'eightbitcolor': 256}\n", |
| 180 | + " Variables: wavelength('dim_0',), Rrs('lat', 'lon', 'wavelength'), lat('dim_0',), lon('dim_0',), palette('rgb', 'eightbitcolor'), rgb('dim_0',), eightbitcolor('dim_0',)\n", |
| 181 | + "\n", |
| 182 | + "Group /processing_control\n", |
| 183 | + "\n", |
| 184 | + "Group /processing_control/input_parameters\n", |
| 185 | + "\n", |
| 186 | + "Dimensions: {'dim_0': 172, 'lat': 4320, 'lon': 8640, 'wavelength': 172, 'rgb': 3, 'eightbitcolor': 256}\n", |
| 187 | + "\n", |
| 188 | + "Variables: ['wavelength', 'Rrs', 'lat', 'lon', 'palette', 'rgb', 'eightbitcolor']\n", |
| 189 | + "\n", |
| 190 | + "Geolocation: ('lon', 'lat') detected\n" |
200 | 191 | ] |
201 | 192 | } |
202 | 193 | ], |
|
0 commit comments