diff --git a/noaa-cdr-sst.ipynb b/noaa-cdr-sst.ipynb
index 84241ac..937969b 100644
--- a/noaa-cdr-sst.ipynb
+++ b/noaa-cdr-sst.ipynb
@@ -8,14 +8,13 @@
"outputs": [],
"source": [
"# !pip install -e \".[icechunk]\"\n",
- "# NOTE: a change has to be made https://github.com/mpiannucci/kerchunk/blob/v3/kerchunk/utils.py#L55 from mode='w' to read_only=False\n",
"# !pip install git+https://github.com/mpiannucci/kerchunk@v3\n",
"# !pip install fsspec s3fs"
]
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 1,
"id": "3055eff4-9e22-4a95-a7fd-96933f381183",
"metadata": {},
"outputs": [
@@ -24,7 +23,7 @@
"output_type": "stream",
"text": [
"Name: icechunk\n",
- "Version: 0.1.0a5\n",
+ "Version: 0.1.0a7\n",
"Summary: Transactional storage engine for Zarr designed for use on cloud object storage\n",
"Home-page: https://github.com/earth-mover/icechunk\n",
"Author: Earthmover PBC\n",
@@ -42,7 +41,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 2,
"id": "2f69f0bb-316b-452c-b1ba-4d7ef4afcf67",
"metadata": {},
"outputs": [],
@@ -60,7 +59,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 3,
"id": "1532c33b-804f-49fa-9fa9-0eb42ea87e26",
"metadata": {},
"outputs": [],
@@ -76,7 +75,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 4,
"id": "06bbec92-3974-4859-8bda-353afc7800b9",
"metadata": {},
"outputs": [],
@@ -91,7 +90,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 5,
"id": "77fb94c8-870f-4c9e-8421-ac9c17402122",
"metadata": {},
"outputs": [],
@@ -107,7 +106,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 18,
"id": "abefd6fa-386a-4e07-a7c8-219d3730eeeb",
"metadata": {},
"outputs": [],
@@ -117,7 +116,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 19,
"id": "79a4228a-0e17-4b07-9144-f24fe06db832",
"metadata": {},
"outputs": [],
@@ -130,60 +129,94 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 20,
"id": "5fd0c082-8d5e-46a8-a994-fee80baa4ecc",
"metadata": {},
"outputs": [],
"source": [
- "store = IcechunkStore.create(storage=storage_config, config=virtual_ref_store_config)"
+ "store = await IcechunkStore.create(\n",
+ " storage=storage_config, config=virtual_ref_store_config, read_only=False\n",
+ ")"
]
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 21,
"id": "55ebbc5f-add2-4de8-81f6-5aaf64d9e2b6",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n",
+ " store.set_virtual_ref(\n",
+ "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n",
+ "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n",
+ " store.set_virtual_ref(\n",
+ "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n",
+ "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n",
+ " store.set_virtual_ref(\n",
+ "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n",
+ "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n",
+ " store.set_virtual_ref(\n",
+ "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n",
+ "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n",
+ " store.set_virtual_ref(\n",
+ "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n",
+ "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n",
+ " store.set_virtual_ref(\n",
+ "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n",
+ "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n",
+ " store.set_virtual_ref(\n",
+ "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n",
+ "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n",
+ " store.set_virtual_ref(\n",
+ "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n"
+ ]
+ }
+ ],
"source": [
"virtual_ds.virtualize.to_icechunk(store)"
]
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 16,
"id": "cae7e34f-d6dd-42aa-9e7a-f0d5420ba0b9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "'JXPBY5KT843ZBSVQ2KNG'"
+ "'PZMXKYCPJQRRFXV33Q7G'"
]
},
- "execution_count": 11,
+ "execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "store.commit(\"first 2 days of 202408 data\")"
+ "await store.commit(\"first 2 days of 202408 data\")"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 17,
"id": "9387e1ff-46c1-45fd-9796-0457538209a7",
"metadata": {},
"outputs": [
{
- "data": {
- "text/plain": [
- "b'x^cx\\xd3\\xe2\\x06\\x00\\x04\\x16\\x01\\xb7'"
- ]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
+ "ename": "KeyNotFound",
+ "evalue": "time/c/0",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mKeyNotFound\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[0;32mIn[17], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m store\u001b[38;5;241m.\u001b[39m_store\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtime/c/0\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
+ "\u001b[0;31mKeyNotFound\u001b[0m: time/c/0"
+ ]
}
],
"source": [
@@ -192,456 +225,10 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": null,
"id": "b6271bd1-bc0b-4901-9901-91aabe508cf7",
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- "
<xarray.Dataset> Size: 66MB\n",
- "Dimensions: (time: 2, zlev: 1, lat: 720, lon: 1440)\n",
- "Coordinates:\n",
- " * time (time) datetime64[ns] 16B 2024-08-01T12:00:00 2024-08-02T12:00:00\n",
- " * lat (lat) float32 3kB -89.88 -89.62 -89.38 -89.12 ... 89.38 89.62 89.88\n",
- " * lon (lon) float32 6kB 0.125 0.375 0.625 0.875 ... 359.4 359.6 359.9\n",
- " * zlev (zlev) float32 4B 0.0\n",
- "Data variables:\n",
- " anom (time, zlev, lat, lon) float64 17MB ...\n",
- " err (time, zlev, lat, lon) float64 17MB ...\n",
- " ice (time, zlev, lat, lon) float64 17MB ...\n",
- " sst (time, zlev, lat, lon) float64 17MB ...\n",
- "Attributes: (12/37)\n",
- " Conventions: CF-1.6, ACDD-1.3\n",
- " cdm_data_type: Grid\n",
- " comment: Data was converted from NetCDF-3 to NetCDF-4 ...\n",
- " creator_email: oisst-help@noaa.gov\n",
- " creator_url: https://www.ncei.noaa.gov/\n",
- " date_created: 2024-08-16T09:12:00Z\n",
- " ... ...\n",
- " source: ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfin...\n",
- " standard_name_vocabulary: CF Standard Name Table (v40, 25 January 2017)\n",
- " summary: NOAAs 1/4-degree Daily Optimum Interpolation ...\n",
- " time_coverage_end: 2024-08-01T23:59:59Z\n",
- " time_coverage_start: 2024-08-01T00:00:00Z\n",
- " title: NOAA/NCEI 1/4 Degree Daily Optimum Interpolat... Dimensions: time : 2zlev : 1lat : 720lon : 1440
Coordinates: (4)
time
(time)
datetime64[ns]
2024-08-01T12:00:00 2024-08-02T1...
long_name : Center time of the day array(['2024-08-01T12:00:00.000000000', '2024-08-02T12:00:00.000000000'],\n",
- " dtype='datetime64[ns]') lat
(lat)
float32
-89.88 -89.62 ... 89.62 89.88
grids : Uniform grid from -89.875 to 89.875 by 0.25 long_name : Latitude units : degrees_north array([-89.875, -89.625, -89.375, ..., 89.375, 89.625, 89.875],\n",
- " dtype=float32) lon
(lon)
float32
0.125 0.375 0.625 ... 359.6 359.9
grids : Uniform grid from 0.125 to 359.875 by 0.25 long_name : Longitude units : degrees_east array([1.25000e-01, 3.75000e-01, 6.25000e-01, ..., 3.59375e+02, 3.59625e+02,\n",
- " 3.59875e+02], dtype=float32) zlev
(zlev)
float32
0.0
actual_range : 0, 0 long_name : Sea surface height positive : down units : meters array([0.], dtype=float32) Data variables: (4)
anom
(time, zlev, lat, lon)
float64
...
long_name : Daily sea surface temperature anomalies units : Celsius valid_max : 1200 valid_min : -1200 [2073600 values with dtype=float64] err
(time, zlev, lat, lon)
float64
...
long_name : Estimated error standard deviation of analysed_sst units : Celsius valid_max : 1000 valid_min : 0 [2073600 values with dtype=float64] ice
(time, zlev, lat, lon)
float64
...
long_name : Sea ice concentration units : % valid_max : 100 valid_min : 0 [2073600 values with dtype=float64] sst
(time, zlev, lat, lon)
float64
...
long_name : Daily sea surface temperature units : Celsius valid_max : 4500 valid_min : -300 [2073600 values with dtype=float64] Indexes: (4)
PandasIndex
PandasIndex(DatetimeIndex(['2024-08-01 12:00:00', '2024-08-02 12:00:00'], dtype='datetime64[ns]', name='time', freq=None)) PandasIndex
PandasIndex(Index([-89.875, -89.625, -89.375, -89.125, -88.875, -88.625, -88.375, -88.125,\n",
- " -87.875, -87.625,\n",
- " ...\n",
- " 87.625, 87.875, 88.125, 88.375, 88.625, 88.875, 89.125, 89.375,\n",
- " 89.625, 89.875],\n",
- " dtype='float32', name='lat', length=720)) PandasIndex
PandasIndex(Index([ 0.125, 0.375, 0.625, 0.875, 1.125, 1.375, 1.625, 1.875,\n",
- " 2.125, 2.375,\n",
- " ...\n",
- " 357.625, 357.875, 358.125, 358.375, 358.625, 358.875, 359.125, 359.375,\n",
- " 359.625, 359.875],\n",
- " dtype='float32', name='lon', length=1440)) PandasIndex
PandasIndex(Index([0.0], dtype='float32', name='zlev')) Attributes: (37)
Conventions : CF-1.6, ACDD-1.3 cdm_data_type : Grid comment : Data was converted from NetCDF-3 to NetCDF-4 format with metadata updates in November 2017. creator_email : oisst-help@noaa.gov creator_url : https://www.ncei.noaa.gov/ date_created : 2024-08-16T09:12:00Z date_modified : 2024-08-16T09:12:00Z geospatial_lat_max : 90.0 geospatial_lat_min : -90.0 geospatial_lat_resolution : 0.25 geospatial_lat_units : degrees_north geospatial_lon_max : 360.0 geospatial_lon_min : 0.0 geospatial_lon_resolution : 0.25 geospatial_lon_units : degrees_east history : Final file created using preliminary as first guess, and 3 days of AVHRR data. Preliminary uses only 1 day of AVHRR data. id : oisst-avhrr-v02r01.20240801.nc institution : NOAA/National Centers for Environmental Information instrument : Earth Remote Sensing Instruments > Passive Remote Sensing > Spectrometers/Radiometers > Imaging Spectrometers/Radiometers > AVHRR > Advanced Very High Resolution Radiometer instrument_vocabulary : Global Change Master Directory (GCMD) Instrument Keywords keywords : Earth Science > Oceans > Ocean Temperature > Sea Surface Temperature keywords_vocabulary : Global Change Master Directory (GCMD) Earth Science Keywords metadata_link : https://doi.org/10.25921/RE9P-PT57 naming_authority : gov.noaa.ncei ncei_template_version : NCEI_NetCDF_Grid_Template_v2.0 platform : Ships, buoys, Argo floats, MetOp-A, MetOp-B platform_vocabulary : Global Change Master Directory (GCMD) Platform Keywords processing_level : NOAA Level 4 product_version : Version v02r01 references : Reynolds, et al.(2007) Daily High-Resolution-Blended Analyses for Sea Surface Temperature (available at https://doi.org/10.1175/2007JCLI1824.1). Banzon, et al.(2016) A long-term record of blended satellite and in situ sea-surface temperature for climate monitoring, modeling and environmental studies (available at https://doi.org/10.5194/essd-8-165-2016). Huang et al. (2020) Improvements of the Daily Optimum Interpolation Sea Surface Temperature (DOISST) Version v02r01, submitted.Climatology is based on 1971-2000 OI.v2 SST. Satellite data: Pathfinder AVHRR SST, Navy AVHRR SST, and NOAA ACSPO SST. Ice data: NCEP Ice and GSFC Ice. sensor : Thermometer, AVHRR source : ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfinder_AVHRR, Navy_AVHRR, NOAA_ACSP standard_name_vocabulary : CF Standard Name Table (v40, 25 January 2017) summary : NOAAs 1/4-degree Daily Optimum Interpolation Sea Surface Temperature (OISST) (sometimes referred to as Reynolds SST, which however also refers to earlier products at different resolution), currently available as version v02r01, is created by interpolating and extrapolating SST observations from different sources, resulting in a smoothed complete field. The sources of data are satellite (AVHRR) and in situ platforms (i.e., ships and buoys), and the specific datasets employed may change over time. At the marginal ice zone, sea ice concentrations are used to generate proxy SSTs. A preliminary version of this file is produced in near-real time (1-day latency), and then replaced with a final version after 2 weeks. Note that this is the AVHRR-ONLY DOISST, available from Oct 1981, but there is a companion DOISST product that includes microwave satellite data, available from June 2002 time_coverage_end : 2024-08-01T23:59:59Z time_coverage_start : 2024-08-01T00:00:00Z title : NOAA/NCEI 1/4 Degree Daily Optimum Interpolation Sea Surface Temperature (OISST) Analysis, Version 2.1 - Final "
- ],
- "text/plain": [
- " Size: 66MB\n",
- "Dimensions: (time: 2, zlev: 1, lat: 720, lon: 1440)\n",
- "Coordinates:\n",
- " * time (time) datetime64[ns] 16B 2024-08-01T12:00:00 2024-08-02T12:00:00\n",
- " * lat (lat) float32 3kB -89.88 -89.62 -89.38 -89.12 ... 89.38 89.62 89.88\n",
- " * lon (lon) float32 6kB 0.125 0.375 0.625 0.875 ... 359.4 359.6 359.9\n",
- " * zlev (zlev) float32 4B 0.0\n",
- "Data variables:\n",
- " anom (time, zlev, lat, lon) float64 17MB ...\n",
- " err (time, zlev, lat, lon) float64 17MB ...\n",
- " ice (time, zlev, lat, lon) float64 17MB ...\n",
- " sst (time, zlev, lat, lon) float64 17MB ...\n",
- "Attributes: (12/37)\n",
- " Conventions: CF-1.6, ACDD-1.3\n",
- " cdm_data_type: Grid\n",
- " comment: Data was converted from NetCDF-3 to NetCDF-4 ...\n",
- " creator_email: oisst-help@noaa.gov\n",
- " creator_url: https://www.ncei.noaa.gov/\n",
- " date_created: 2024-08-16T09:12:00Z\n",
- " ... ...\n",
- " source: ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfin...\n",
- " standard_name_vocabulary: CF Standard Name Table (v40, 25 January 2017)\n",
- " summary: NOAAs 1/4-degree Daily Optimum Interpolation ...\n",
- " time_coverage_end: 2024-08-01T23:59:59Z\n",
- " time_coverage_start: 2024-08-01T00:00:00Z\n",
- " title: NOAA/NCEI 1/4 Degree Daily Optimum Interpolat..."
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"ds = xr.open_zarr(store, consolidated=False, zarr_format=3)\n",
"ds"
@@ -657,7 +244,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": null,
"id": "190c25f9-e000-4b17-83eb-cf551141dfea",
"metadata": {},
"outputs": [],
@@ -672,7 +259,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": null,
"id": "af330082-207a-4f08-aefe-fc15aa8b2eb3",
"metadata": {},
"outputs": [],
@@ -688,450 +275,17 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": null,
"id": "103b44d2-124a-4de5-8074-e997fd5a1698",
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- "
<xarray.Dataset> Size: 17MB\n",
- "Dimensions: (time: 2, zlev: 1, lat: 720, lon: 1440)\n",
- "Coordinates:\n",
- " lon (lon) float32 6kB ManifestArray<shape=(1440,), dtype=float32, ch...\n",
- " zlev (zlev) float32 4B ManifestArray<shape=(1,), dtype=float32, chunk...\n",
- " lat (lat) float32 3kB ManifestArray<shape=(720,), dtype=float32, chu...\n",
- " time (time) float32 8B ManifestArray<shape=(2,), dtype=float32, chunk...\n",
- "Data variables:\n",
- " anom (time, zlev, lat, lon) int16 4MB ManifestArray<shape=(2, 1, 720,...\n",
- " err (time, zlev, lat, lon) int16 4MB ManifestArray<shape=(2, 1, 720,...\n",
- " sst (time, zlev, lat, lon) int16 4MB ManifestArray<shape=(2, 1, 720,...\n",
- " ice (time, zlev, lat, lon) int16 4MB ManifestArray<shape=(2, 1, 720,...\n",
- "Attributes: (12/37)\n",
- " Conventions: CF-1.6, ACDD-1.3\n",
- " title: NOAA/NCEI 1/4 Degree Daily Optimum Interpolat...\n",
- " references: Reynolds, et al.(2007) Daily High-Resolution-...\n",
- " source: ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfin...\n",
- " id: oisst-avhrr-v02r01.20240803.nc\n",
- " naming_authority: gov.noaa.ncei\n",
- " ... ...\n",
- " time_coverage_start: 2024-08-03T00:00:00Z\n",
- " time_coverage_end: 2024-08-03T23:59:59Z\n",
- " metadata_link: https://doi.org/10.25921/RE9P-PT57\n",
- " ncei_template_version: NCEI_NetCDF_Grid_Template_v2.0\n",
- " comment: Data was converted from NetCDF-3 to NetCDF-4 ...\n",
- " sensor: Thermometer, AVHRR Dimensions: time : 2zlev : 1lat : 720lon : 1440
Coordinates: (4)
lon
(lon)
float32
ManifestArray<shape=(1440,), dty...
long_name : Longitude units : degrees_east grids : Uniform grid from 0.125 to 359.875 by 0.25 ManifestArray<shape=(1440,), dtype=float32, chunks=(1440,)> zlev
(zlev)
float32
ManifestArray<shape=(1,), dtype=...
long_name : Sea surface height units : meters positive : down actual_range : 0, 0 ManifestArray<shape=(1,), dtype=float32, chunks=(1,)> lat
(lat)
float32
ManifestArray<shape=(720,), dtyp...
long_name : Latitude units : degrees_north grids : Uniform grid from -89.875 to 89.875 by 0.25 ManifestArray<shape=(720,), dtype=float32, chunks=(720,)> time
(time)
float32
ManifestArray<shape=(2,), dtype=...
long_name : Center time of the day units : days since 1978-01-01 12:00:00 ManifestArray<shape=(2,), dtype=float32, chunks=(1,)> Data variables: (4)
anom
(time, zlev, lat, lon)
int16
ManifestArray<shape=(2, 1, 720, ...
long_name : Daily sea surface temperature anomalies units : Celsius add_offset : 0.0 scale_factor : 0.009999999776482582 valid_min : -1200 valid_max : 1200 ManifestArray<shape=(2, 1, 720, 1440), dtype=int16, chunks=(1, 1, 720, 1440)> err
(time, zlev, lat, lon)
int16
ManifestArray<shape=(2, 1, 720, ...
long_name : Estimated error standard deviation of analysed_sst units : Celsius add_offset : 0.0 scale_factor : 0.009999999776482582 valid_min : 0 valid_max : 1000 ManifestArray<shape=(2, 1, 720, 1440), dtype=int16, chunks=(1, 1, 720, 1440)> sst
(time, zlev, lat, lon)
int16
ManifestArray<shape=(2, 1, 720, ...
long_name : Daily sea surface temperature units : Celsius add_offset : 0.0 scale_factor : 0.009999999776482582 valid_min : -300 valid_max : 4500 ManifestArray<shape=(2, 1, 720, 1440), dtype=int16, chunks=(1, 1, 720, 1440)> ice
(time, zlev, lat, lon)
int16
ManifestArray<shape=(2, 1, 720, ...
long_name : Sea ice concentration units : % add_offset : 0.0 scale_factor : 0.009999999776482582 valid_min : 0 valid_max : 100 ManifestArray<shape=(2, 1, 720, 1440), dtype=int16, chunks=(1, 1, 720, 1440)> Indexes: (0)
Attributes: (37)
Conventions : CF-1.6, ACDD-1.3 title : NOAA/NCEI 1/4 Degree Daily Optimum Interpolation Sea Surface Temperature (OISST) Analysis, Version 2.1 - Final references : Reynolds, et al.(2007) Daily High-Resolution-Blended Analyses for Sea Surface Temperature (available at https://doi.org/10.1175/2007JCLI1824.1). Banzon, et al.(2016) A long-term record of blended satellite and in situ sea-surface temperature for climate monitoring, modeling and environmental studies (available at https://doi.org/10.5194/essd-8-165-2016). Huang et al. (2020) Improvements of the Daily Optimum Interpolation Sea Surface Temperature (DOISST) Version v02r01, submitted.Climatology is based on 1971-2000 OI.v2 SST. Satellite data: Pathfinder AVHRR SST, Navy AVHRR SST, and NOAA ACSPO SST. Ice data: NCEP Ice and GSFC Ice. source : ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfinder_AVHRR, Navy_AVHRR, NOAA_ACSP id : oisst-avhrr-v02r01.20240803.nc naming_authority : gov.noaa.ncei summary : NOAAs 1/4-degree Daily Optimum Interpolation Sea Surface Temperature (OISST) (sometimes referred to as Reynolds SST, which however also refers to earlier products at different resolution), currently available as version v02r01, is created by interpolating and extrapolating SST observations from different sources, resulting in a smoothed complete field. The sources of data are satellite (AVHRR) and in situ platforms (i.e., ships and buoys), and the specific datasets employed may change over time. At the marginal ice zone, sea ice concentrations are used to generate proxy SSTs. A preliminary version of this file is produced in near-real time (1-day latency), and then replaced with a final version after 2 weeks. Note that this is the AVHRR-ONLY DOISST, available from Oct 1981, but there is a companion DOISST product that includes microwave satellite data, available from June 2002 cdm_data_type : Grid history : Final file created using preliminary as first guess, and 3 days of AVHRR data. Preliminary uses only 1 day of AVHRR data. date_modified : 2024-08-18T09:12:00Z date_created : 2024-08-18T09:12:00Z product_version : Version v02r01 processing_level : NOAA Level 4 institution : NOAA/National Centers for Environmental Information creator_url : https://www.ncei.noaa.gov/ creator_email : oisst-help@noaa.gov keywords : Earth Science > Oceans > Ocean Temperature > Sea Surface Temperature keywords_vocabulary : Global Change Master Directory (GCMD) Earth Science Keywords platform : Ships, buoys, Argo floats, MetOp-A, MetOp-B platform_vocabulary : Global Change Master Directory (GCMD) Platform Keywords instrument : Earth Remote Sensing Instruments > Passive Remote Sensing > Spectrometers/Radiometers > Imaging Spectrometers/Radiometers > AVHRR > Advanced Very High Resolution Radiometer instrument_vocabulary : Global Change Master Directory (GCMD) Instrument Keywords standard_name_vocabulary : CF Standard Name Table (v40, 25 January 2017) geospatial_lat_min : -90.0 geospatial_lat_max : 90.0 geospatial_lon_min : 0.0 geospatial_lon_max : 360.0 geospatial_lat_units : degrees_north geospatial_lat_resolution : 0.25 geospatial_lon_units : degrees_east geospatial_lon_resolution : 0.25 time_coverage_start : 2024-08-03T00:00:00Z time_coverage_end : 2024-08-03T23:59:59Z metadata_link : https://doi.org/10.25921/RE9P-PT57 ncei_template_version : NCEI_NetCDF_Grid_Template_v2.0 comment : Data was converted from NetCDF-3 to NetCDF-4 format with metadata updates in November 2017. sensor : Thermometer, AVHRR "
- ],
- "text/plain": [
- " Size: 17MB\n",
- "Dimensions: (time: 2, zlev: 1, lat: 720, lon: 1440)\n",
- "Coordinates:\n",
- " lon (lon) float32 6kB ManifestArray\\x00\\x00\\xc0>\\x00\\x00 ?\\x00\\x00`?\\x00\\x00\\x90?\\x00\\x00\\xb0?\\x00\\x00\\xd0?\\x00\\x00\\xf0?\\x00\\x00\\x08@\\x00\\x00\\x18@\\x00\\x00(@\\x00\\x008@\\x00\\x00H@\\x00\\x00X@\\x00\\x00h@\\x00\\x00x@\\x00\\x00\\x84@\\x00\\x00\\x8c@\\x00\\x00\\x94@\\x00\\x00\\x9c@\\x00\\x00\\xa4@\\x00\\x00\\xac@\\x00\\x00\\xb4@\\x00\\x00\\xbc@\\x00\\x00\\xc4@\\x00\\x00\\xcc@\\x00\\x00\\xd4@\\x00\\x00\\xdc@\\x00\\x00\\xe4@\\x00\\x00\\xec@\\x00\\x00\\xf4@\\x00\\x00\\xfc@\\x00\\x00\\x02A\\x00\\x00\\x06A\\x00\\x00\\nA\\x00\\x00\\x0eA\\x00\\x00\\x12A\\x00\\x00\\x16A\\x00\\x00\\x1aA\\x00\\x00\\x1eA\\x00\\x00\"A\\x00\\x00&A\\x00\\x00*A\\x00\\x00.A\\x00\\x002A\\x00\\x006A\\x00\\x00:A\\x00\\x00>A\\x00\\x00BA\\x00\\x00FA\\x00\\x00JA\\x00\\x00NA\\x00\\x00RA\\x00\\x00VA\\x00\\x00ZA\\x00\\x00^A\\x00\\x00bA\\x00\\x00fA\\x00\\x00jA\\x00\\x00nA\\x00\\x00rA\\x00\\x00vA\\x00\\x00zA\\x00\\x00~A\\x00\\x00\\x81A\\x00\\x00\\x83A\\x00\\x00\\x85A\\x00\\x00\\x87A\\x00\\x00\\x89A\\x00\\x00\\x8bA\\x00\\x00\\x8dA\\x00\\x00\\x8fA\\x00\\x00\\x91A\\x00\\x00\\x93A\\x00\\x00\\x95A\\x00\\x00\\x97A\\x00\\x00\\x99A\\x00\\x00\\x9bA\\x00\\x00\\x9dA\\x00\\x00\\x9fA\\x00\\x00\\xa1A\\x00\\x00\\xa3A\\x00\\x00\\xa5A\\x00\\x00\\xa7A\\x00\\x00\\xa9A\\x00\\x00\\xabA\\x00\\x00\\xadA\\x00\\x00\\xafA\\x00\\x00\\xb1A\\x00\\x00\\xb3A\\x00\\x00\\xb5A\\x00\\x00\\xb7A\\x00\\x00\\xb9A\\x00\\x00\\xbbA\\x00\\x00\\xbdA\\x00\\x00\\xbfA\\x00\\x00\\xc1A\\x00\\x00\\xc3A\\x00\\x00\\xc5A\\x00\\x00\\xc7A\\x00\\x00\\xc9A\\x00\\x00\\xcbA\\x00\\x00\\xcdA\\x00\\x00\\xcfA\\x00\\x00\\xd1A\\x00\\x00\\xd3A\\x00\\x00\\xd5A\\x00\\x00\\xd7A\\x00\\x00\\xd9A\\x00\\x00\\xdbA\\x00\\x00\\xddA\\x00\\x00\\xdfA\\x00\\x00\\xe1A\\x00\\x00\\xe3A\\x00\\x00\\xe5A\\x00\\x00\\xe7A\\x00\\x00\\xe9A\\x00\\x00\\xebA\\x00\\x00\\xedA\\x00\\x00\\xefA\\x00\\x00\\xf1A\\x00\\x00\\xf3A\\x00\\x00\\xf5A\\x00\\x00\\xf7A\\x00\\x00\\xf9A\\x00\\x00\\xfbA\\x00\\x00\\xfdA\\x00\\x00\\xffA\\x00\\x80\\x00B\\x00\\x80\\x01B\\x00\\x80\\x02B\\x00\\x80\\x03B\\x00\\x80\\x04B\\x00\\x80\\x05B\\x00\\x80\\x06B\\x00\\x80\\x07B\\x00\\x80\\x08B\\x00\\x80\\tB\\x00\\x80\\nB\\x00\\x80\\x0bB\\x00\\x80\\x0cB\\x00\\x80\\rB\\x00\\x80\\x0eB\\x00\\x80\\x0fB\\x00\\x80\\x10B\\x00\\x80\\x11B\\x00\\x80\\x12B\\x00\\x80\\x13B\\x00\\x80\\x14B\\x00\\x80\\x15B\\x00\\x80\\x16B\\x00\\x80\\x17B\\x00\\x80\\x18B\\x00\\x80\\x19B\\x00\\x80\\x1aB\\x00\\x80\\x1bB\\x00\\x80\\x1cB\\x00\\x80\\x1dB\\x00\\x80\\x1eB\\x00\\x80\\x1fB\\x00\\x80 B\\x00\\x80!B\\x00\\x80\"B\\x00\\x80#B\\x00\\x80$B\\x00\\x80%B\\x00\\x80&B\\x00\\x80\\'B\\x00\\x80(B\\x00\\x80)B\\x00\\x80*B\\x00\\x80+B\\x00\\x80,B\\x00\\x80-B\\x00\\x80.B\\x00\\x80/B\\x00\\x800B\\x00\\x801B\\x00\\x802B\\x00\\x803B\\x00\\x804B\\x00\\x805B\\x00\\x806B\\x00\\x807B\\x00\\x808B\\x00\\x809B\\x00\\x80:B\\x00\\x80;B\\x00\\x80B\\x00\\x80?B\\x00\\x80@B\\x00\\x80AB\\x00\\x80BB\\x00\\x80CB\\x00\\x80DB\\x00\\x80EB\\x00\\x80FB\\x00\\x80GB\\x00\\x80HB\\x00\\x80IB\\x00\\x80JB\\x00\\x80KB\\x00\\x80LB\\x00\\x80MB\\x00\\x80NB\\x00\\x80OB\\x00\\x80PB\\x00\\x80QB\\x00\\x80RB\\x00\\x80SB\\x00\\x80TB\\x00\\x80UB\\x00\\x80VB\\x00\\x80WB\\x00\\x80XB\\x00\\x80YB\\x00\\x80ZB\\x00\\x80[B\\x00\\x80\\\\B\\x00\\x80]B\\x00\\x80^B\\x00\\x80_B\\x00\\x80`B\\x00\\x80aB\\x00\\x80bB\\x00\\x80cB\\x00\\x80dB\\x00\\x80eB\\x00\\x80fB\\x00\\x80gB\\x00\\x80hB\\x00\\x80iB\\x00\\x80jB\\x00\\x80kB\\x00\\x80lB\\x00\\x80mB\\x00\\x80nB\\x00\\x80oB\\x00\\x80pB\\x00\\x80qB\\x00\\x80rB\\x00\\x80sB\\x00\\x80tB\\x00\\x80uB\\x00\\x80vB\\x00\\x80wB\\x00\\x80xB\\x00\\x80yB\\x00\\x80zB\\x00\\x80{B\\x00\\x80|B\\x00\\x80}B\\x00\\x80~B\\x00\\x80\\x7fB\\x00@\\x80B\\x00\\xc0\\x80B\\x00@\\x81B\\x00\\xc0\\x81B\\x00@\\x82B\\x00\\xc0\\x82B\\x00@\\x83B\\x00\\xc0\\x83B\\x00@\\x84B\\x00\\xc0\\x84B\\x00@\\x85B\\x00\\xc0\\x85B\\x00@\\x86B\\x00\\xc0\\x86B\\x00@\\x87B\\x00\\xc0\\x87B\\x00@\\x88B\\x00\\xc0\\x88B\\x00@\\x89B\\x00\\xc0\\x89B\\x00@\\x8aB\\x00\\xc0\\x8aB\\x00@\\x8bB\\x00\\xc0\\x8bB\\x00@\\x8cB\\x00\\xc0\\x8cB\\x00@\\x8dB\\x00\\xc0\\x8dB\\x00@\\x8eB\\x00\\xc0\\x8eB\\x00@\\x8fB\\x00\\xc0\\x8fB\\x00@\\x90B\\x00\\xc0\\x90B\\x00@\\x91B\\x00\\xc0\\x91B\\x00@\\x92B\\x00\\xc0\\x92B\\x00@\\x93B\\x00\\xc0\\x93B\\x00@\\x94B\\x00\\xc0\\x94B\\x00@\\x95B\\x00\\xc0\\x95B\\x00@\\x96B\\x00\\xc0\\x96B\\x00@\\x97B\\x00\\xc0\\x97B\\x00@\\x98B\\x00\\xc0\\x98B\\x00@\\x99B\\x00\\xc0\\x99B\\x00@\\x9aB\\x00\\xc0\\x9aB\\x00@\\x9bB\\x00\\xc0\\x9bB\\x00@\\x9cB\\x00\\xc0\\x9cB\\x00@\\x9dB\\x00\\xc0\\x9dB\\x00@\\x9eB\\x00\\xc0\\x9eB\\x00@\\x9fB\\x00\\xc0\\x9fB\\x00@\\xa0B\\x00\\xc0\\xa0B\\x00@\\xa1B\\x00\\xc0\\xa1B\\x00@\\xa2B\\x00\\xc0\\xa2B\\x00@\\xa3B\\x00\\xc0\\xa3B\\x00@\\xa4B\\x00\\xc0\\xa4B\\x00@\\xa5B\\x00\\xc0\\xa5B\\x00@\\xa6B\\x00\\xc0\\xa6B\\x00@\\xa7B\\x00\\xc0\\xa7B\\x00@\\xa8B\\x00\\xc0\\xa8B\\x00@\\xa9B\\x00\\xc0\\xa9B\\x00@\\xaaB\\x00\\xc0\\xaaB\\x00@\\xabB\\x00\\xc0\\xabB\\x00@\\xacB\\x00\\xc0\\xacB\\x00@\\xadB\\x00\\xc0\\xadB\\x00@\\xaeB\\x00\\xc0\\xaeB\\x00@\\xafB\\x00\\xc0\\xafB\\x00@\\xb0B\\x00\\xc0\\xb0B\\x00@\\xb1B\\x00\\xc0\\xb1B\\x00@\\xb2B\\x00\\xc0\\xb2B\\x00@\\xb3B\\x00\\xc0\\xb3B\\x00@\\xb4B\\x00\\xc0\\xb4B\\x00@\\xb5B\\x00\\xc0\\xb5B\\x00@\\xb6B\\x00\\xc0\\xb6B\\x00@\\xb7B\\x00\\xc0\\xb7B\\x00@\\xb8B\\x00\\xc0\\xb8B\\x00@\\xb9B\\x00\\xc0\\xb9B\\x00@\\xbaB\\x00\\xc0\\xbaB\\x00@\\xbbB\\x00\\xc0\\xbbB\\x00@\\xbcB\\x00\\xc0\\xbcB\\x00@\\xbdB\\x00\\xc0\\xbdB\\x00@\\xbeB\\x00\\xc0\\xbeB\\x00@\\xbfB\\x00\\xc0\\xbfB\\x00@\\xc0B\\x00\\xc0\\xc0B\\x00@\\xc1B\\x00\\xc0\\xc1B\\x00@\\xc2B\\x00\\xc0\\xc2B\\x00@\\xc3B\\x00\\xc0\\xc3B\\x00@\\xc4B\\x00\\xc0\\xc4B\\x00@\\xc5B\\x00\\xc0\\xc5B\\x00@\\xc6B\\x00\\xc0\\xc6B\\x00@\\xc7B\\x00\\xc0\\xc7B\\x00@\\xc8B\\x00\\xc0\\xc8B\\x00@\\xc9B\\x00\\xc0\\xc9B\\x00@\\xcaB\\x00\\xc0\\xcaB\\x00@\\xcbB\\x00\\xc0\\xcbB\\x00@\\xccB\\x00\\xc0\\xccB\\x00@\\xcdB\\x00\\xc0\\xcdB\\x00@\\xceB\\x00\\xc0\\xceB\\x00@\\xcfB\\x00\\xc0\\xcfB\\x00@\\xd0B\\x00\\xc0\\xd0B\\x00@\\xd1B\\x00\\xc0\\xd1B\\x00@\\xd2B\\x00\\xc0\\xd2B\\x00@\\xd3B\\x00\\xc0\\xd3B\\x00@\\xd4B\\x00\\xc0\\xd4B\\x00@\\xd5B\\x00\\xc0\\xd5B\\x00@\\xd6B\\x00\\xc0\\xd6B\\x00@\\xd7B\\x00\\xc0\\xd7B\\x00@\\xd8B\\x00\\xc0\\xd8B\\x00@\\xd9B\\x00\\xc0\\xd9B\\x00@\\xdaB\\x00\\xc0\\xdaB\\x00@\\xdbB\\x00\\xc0\\xdbB\\x00@\\xdcB\\x00\\xc0\\xdcB\\x00@\\xddB\\x00\\xc0\\xddB\\x00@\\xdeB\\x00\\xc0\\xdeB\\x00@\\xdfB\\x00\\xc0\\xdfB\\x00@\\xe0B\\x00\\xc0\\xe0B\\x00@\\xe1B\\x00\\xc0\\xe1B\\x00@\\xe2B\\x00\\xc0\\xe2B\\x00@\\xe3B\\x00\\xc0\\xe3B\\x00@\\xe4B\\x00\\xc0\\xe4B\\x00@\\xe5B\\x00\\xc0\\xe5B\\x00@\\xe6B\\x00\\xc0\\xe6B\\x00@\\xe7B\\x00\\xc0\\xe7B\\x00@\\xe8B\\x00\\xc0\\xe8B\\x00@\\xe9B\\x00\\xc0\\xe9B\\x00@\\xeaB\\x00\\xc0\\xeaB\\x00@\\xebB\\x00\\xc0\\xebB\\x00@\\xecB\\x00\\xc0\\xecB\\x00@\\xedB\\x00\\xc0\\xedB\\x00@\\xeeB\\x00\\xc0\\xeeB\\x00@\\xefB\\x00\\xc0\\xefB\\x00@\\xf0B\\x00\\xc0\\xf0B\\x00@\\xf1B\\x00\\xc0\\xf1B\\x00@\\xf2B\\x00\\xc0\\xf2B\\x00@\\xf3B\\x00\\xc0\\xf3B\\x00@\\xf4B\\x00\\xc0\\xf4B\\x00@\\xf5B\\x00\\xc0\\xf5B\\x00@\\xf6B\\x00\\xc0\\xf6B\\x00@\\xf7B\\x00\\xc0\\xf7B\\x00@\\xf8B\\x00\\xc0\\xf8B\\x00@\\xf9B\\x00\\xc0\\xf9B\\x00@\\xfaB\\x00\\xc0\\xfaB\\x00@\\xfbB\\x00\\xc0\\xfbB\\x00@\\xfcB\\x00\\xc0\\xfcB\\x00@\\xfdB\\x00\\xc0\\xfdB\\x00@\\xfeB\\x00\\xc0\\xfeB\\x00@\\xffB\\x00\\xc0\\xffB\\x00 \\x00C\\x00`\\x00C\\x00\\xa0\\x00C\\x00\\xe0\\x00C\\x00 \\x01C\\x00`\\x01C\\x00\\xa0\\x01C\\x00\\xe0\\x01C\\x00 \\x02C\\x00`\\x02C\\x00\\xa0\\x02C\\x00\\xe0\\x02C\\x00 \\x03C\\x00`\\x03C\\x00\\xa0\\x03C\\x00\\xe0\\x03C\\x00 \\x04C\\x00`\\x04C\\x00\\xa0\\x04C\\x00\\xe0\\x04C\\x00 \\x05C\\x00`\\x05C\\x00\\xa0\\x05C\\x00\\xe0\\x05C\\x00 \\x06C\\x00`\\x06C\\x00\\xa0\\x06C\\x00\\xe0\\x06C\\x00 \\x07C\\x00`\\x07C\\x00\\xa0\\x07C\\x00\\xe0\\x07C\\x00 \\x08C\\x00`\\x08C\\x00\\xa0\\x08C\\x00\\xe0\\x08C\\x00 \\tC\\x00`\\tC\\x00\\xa0\\tC\\x00\\xe0\\tC\\x00 \\nC\\x00`\\nC\\x00\\xa0\\nC\\x00\\xe0\\nC\\x00 \\x0bC\\x00`\\x0bC\\x00\\xa0\\x0bC\\x00\\xe0\\x0bC\\x00 \\x0cC\\x00`\\x0cC\\x00\\xa0\\x0cC\\x00\\xe0\\x0cC\\x00 \\rC\\x00`\\rC\\x00\\xa0\\rC\\x00\\xe0\\rC\\x00 \\x0eC\\x00`\\x0eC\\x00\\xa0\\x0eC\\x00\\xe0\\x0eC\\x00 \\x0fC\\x00`\\x0fC\\x00\\xa0\\x0fC\\x00\\xe0\\x0fC\\x00 \\x10C\\x00`\\x10C\\x00\\xa0\\x10C\\x00\\xe0\\x10C\\x00 \\x11C\\x00`\\x11C\\x00\\xa0\\x11C\\x00\\xe0\\x11C\\x00 \\x12C\\x00`\\x12C\\x00\\xa0\\x12C\\x00\\xe0\\x12C\\x00 \\x13C\\x00`\\x13C\\x00\\xa0\\x13C\\x00\\xe0\\x13C\\x00 \\x14C\\x00`\\x14C\\x00\\xa0\\x14C\\x00\\xe0\\x14C\\x00 \\x15C\\x00`\\x15C\\x00\\xa0\\x15C\\x00\\xe0\\x15C\\x00 \\x16C\\x00`\\x16C\\x00\\xa0\\x16C\\x00\\xe0\\x16C\\x00 \\x17C\\x00`\\x17C\\x00\\xa0\\x17C\\x00\\xe0\\x17C\\x00 \\x18C\\x00`\\x18C\\x00\\xa0\\x18C\\x00\\xe0\\x18C\\x00 \\x19C\\x00`\\x19C\\x00\\xa0\\x19C\\x00\\xe0\\x19C\\x00 \\x1aC\\x00`\\x1aC\\x00\\xa0\\x1aC\\x00\\xe0\\x1aC\\x00 \\x1bC\\x00`\\x1bC\\x00\\xa0\\x1bC\\x00\\xe0\\x1bC\\x00 \\x1cC\\x00`\\x1cC\\x00\\xa0\\x1cC\\x00\\xe0\\x1cC\\x00 \\x1dC\\x00`\\x1dC\\x00\\xa0\\x1dC\\x00\\xe0\\x1dC\\x00 \\x1eC\\x00`\\x1eC\\x00\\xa0\\x1eC\\x00\\xe0\\x1eC\\x00 \\x1fC\\x00`\\x1fC\\x00\\xa0\\x1fC\\x00\\xe0\\x1fC\\x00 C\\x00` C\\x00\\xa0 C\\x00\\xe0 C\\x00 !C\\x00`!C\\x00\\xa0!C\\x00\\xe0!C\\x00 \"C\\x00`\"C\\x00\\xa0\"C\\x00\\xe0\"C\\x00 #C\\x00`#C\\x00\\xa0#C\\x00\\xe0#C\\x00 $C\\x00`$C\\x00\\xa0$C\\x00\\xe0$C\\x00 %C\\x00`%C\\x00\\xa0%C\\x00\\xe0%C\\x00 &C\\x00`&C\\x00\\xa0&C\\x00\\xe0&C\\x00 \\'C\\x00`\\'C\\x00\\xa0\\'C\\x00\\xe0\\'C\\x00 (C\\x00`(C\\x00\\xa0(C\\x00\\xe0(C\\x00 )C\\x00`)C\\x00\\xa0)C\\x00\\xe0)C\\x00 *C\\x00`*C\\x00\\xa0*C\\x00\\xe0*C\\x00 +C\\x00`+C\\x00\\xa0+C\\x00\\xe0+C\\x00 ,C\\x00`,C\\x00\\xa0,C\\x00\\xe0,C\\x00 -C\\x00`-C\\x00\\xa0-C\\x00\\xe0-C\\x00 .C\\x00`.C\\x00\\xa0.C\\x00\\xe0.C\\x00 /C\\x00`/C\\x00\\xa0/C\\x00\\xe0/C\\x00 0C\\x00`0C\\x00\\xa00C\\x00\\xe00C\\x00 1C\\x00`1C\\x00\\xa01C\\x00\\xe01C\\x00 2C\\x00`2C\\x00\\xa02C\\x00\\xe02C\\x00 3C\\x00`3C\\x00\\xa03C\\x00\\xe03C\\x00 4C\\x00`4C\\x00\\xa04C\\x00\\xe04C\\x00 5C\\x00`5C\\x00\\xa05C\\x00\\xe05C\\x00 6C\\x00`6C\\x00\\xa06C\\x00\\xe06C\\x00 7C\\x00`7C\\x00\\xa07C\\x00\\xe07C\\x00 8C\\x00`8C\\x00\\xa08C\\x00\\xe08C\\x00 9C\\x00`9C\\x00\\xa09C\\x00\\xe09C\\x00 :C\\x00`:C\\x00\\xa0:C\\x00\\xe0:C\\x00 ;C\\x00`;C\\x00\\xa0;C\\x00\\xe0;C\\x00 C\\x00`>C\\x00\\xa0>C\\x00\\xe0>C\\x00 ?C\\x00`?C\\x00\\xa0?C\\x00\\xe0?C\\x00 @C\\x00`@C\\x00\\xa0@C\\x00\\xe0@C\\x00 AC\\x00`AC\\x00\\xa0AC\\x00\\xe0AC\\x00 BC\\x00`BC\\x00\\xa0BC\\x00\\xe0BC\\x00 CC\\x00`CC\\x00\\xa0CC\\x00\\xe0CC\\x00 DC\\x00`DC\\x00\\xa0DC\\x00\\xe0DC\\x00 EC\\x00`EC\\x00\\xa0EC\\x00\\xe0EC\\x00 FC\\x00`FC\\x00\\xa0FC\\x00\\xe0FC\\x00 GC\\x00`GC\\x00\\xa0GC\\x00\\xe0GC\\x00 HC\\x00`HC\\x00\\xa0HC\\x00\\xe0HC\\x00 IC\\x00`IC\\x00\\xa0IC\\x00\\xe0IC\\x00 JC\\x00`JC\\x00\\xa0JC\\x00\\xe0JC\\x00 KC\\x00`KC\\x00\\xa0KC\\x00\\xe0KC\\x00 LC\\x00`LC\\x00\\xa0LC\\x00\\xe0LC\\x00 MC\\x00`MC\\x00\\xa0MC\\x00\\xe0MC\\x00 NC\\x00`NC\\x00\\xa0NC\\x00\\xe0NC\\x00 OC\\x00`OC\\x00\\xa0OC\\x00\\xe0OC\\x00 PC\\x00`PC\\x00\\xa0PC\\x00\\xe0PC\\x00 QC\\x00`QC\\x00\\xa0QC\\x00\\xe0QC\\x00 RC\\x00`RC\\x00\\xa0RC\\x00\\xe0RC\\x00 SC\\x00`SC\\x00\\xa0SC\\x00\\xe0SC\\x00 TC\\x00`TC\\x00\\xa0TC\\x00\\xe0TC\\x00 UC\\x00`UC\\x00\\xa0UC\\x00\\xe0UC\\x00 VC\\x00`VC\\x00\\xa0VC\\x00\\xe0VC\\x00 WC\\x00`WC\\x00\\xa0WC\\x00\\xe0WC\\x00 XC\\x00`XC\\x00\\xa0XC\\x00\\xe0XC\\x00 YC\\x00`YC\\x00\\xa0YC\\x00\\xe0YC\\x00 ZC\\x00`ZC\\x00\\xa0ZC\\x00\\xe0ZC\\x00 [C\\x00`[C\\x00\\xa0[C\\x00\\xe0[C\\x00 \\\\C\\x00`\\\\C\\x00\\xa0\\\\C\\x00\\xe0\\\\C\\x00 ]C\\x00`]C\\x00\\xa0]C\\x00\\xe0]C\\x00 ^C\\x00`^C\\x00\\xa0^C\\x00\\xe0^C\\x00 _C\\x00`_C\\x00\\xa0_C\\x00\\xe0_C\\x00 `C\\x00``C\\x00\\xa0`C\\x00\\xe0`C\\x00 aC\\x00`aC\\x00\\xa0aC\\x00\\xe0aC\\x00 bC\\x00`bC\\x00\\xa0bC\\x00\\xe0bC\\x00 cC\\x00`cC\\x00\\xa0cC\\x00\\xe0cC\\x00 dC\\x00`dC\\x00\\xa0dC\\x00\\xe0dC\\x00 eC\\x00`eC\\x00\\xa0eC\\x00\\xe0eC\\x00 fC\\x00`fC\\x00\\xa0fC\\x00\\xe0fC\\x00 gC\\x00`gC\\x00\\xa0gC\\x00\\xe0gC\\x00 hC\\x00`hC\\x00\\xa0hC\\x00\\xe0hC\\x00 iC\\x00`iC\\x00\\xa0iC\\x00\\xe0iC\\x00 jC\\x00`jC\\x00\\xa0jC\\x00\\xe0jC\\x00 kC\\x00`kC\\x00\\xa0kC\\x00\\xe0kC\\x00 lC\\x00`lC\\x00\\xa0lC\\x00\\xe0lC\\x00 mC\\x00`mC\\x00\\xa0mC\\x00\\xe0mC\\x00 nC\\x00`nC\\x00\\xa0nC\\x00\\xe0nC\\x00 oC\\x00`oC\\x00\\xa0oC\\x00\\xe0oC\\x00 pC\\x00`pC\\x00\\xa0pC\\x00\\xe0pC\\x00 qC\\x00`qC\\x00\\xa0qC\\x00\\xe0qC\\x00 rC\\x00`rC\\x00\\xa0rC\\x00\\xe0rC\\x00 sC\\x00`sC\\x00\\xa0sC\\x00\\xe0sC\\x00 tC\\x00`tC\\x00\\xa0tC\\x00\\xe0tC\\x00 uC\\x00`uC\\x00\\xa0uC\\x00\\xe0uC\\x00 vC\\x00`vC\\x00\\xa0vC\\x00\\xe0vC\\x00 wC\\x00`wC\\x00\\xa0wC\\x00\\xe0wC\\x00 xC\\x00`xC\\x00\\xa0xC\\x00\\xe0xC\\x00 yC\\x00`yC\\x00\\xa0yC\\x00\\xe0yC\\x00 zC\\x00`zC\\x00\\xa0zC\\x00\\xe0zC\\x00 {C\\x00`{C\\x00\\xa0{C\\x00\\xe0{C\\x00 |C\\x00`|C\\x00\\xa0|C\\x00\\xe0|C\\x00 }C\\x00`}C\\x00\\xa0}C\\x00\\xe0}C\\x00 ~C\\x00`~C\\x00\\xa0~C\\x00\\xe0~C\\x00 \\x7fC\\x00`\\x7fC\\x00\\xa0\\x7fC\\x00\\xe0\\x7fC\\x00\\x10\\x80C\\x000\\x80C\\x00P\\x80C\\x00p\\x80C\\x00\\x90\\x80C\\x00\\xb0\\x80C\\x00\\xd0\\x80C\\x00\\xf0\\x80C\\x00\\x10\\x81C\\x000\\x81C\\x00P\\x81C\\x00p\\x81C\\x00\\x90\\x81C\\x00\\xb0\\x81C\\x00\\xd0\\x81C\\x00\\xf0\\x81C\\x00\\x10\\x82C\\x000\\x82C\\x00P\\x82C\\x00p\\x82C\\x00\\x90\\x82C\\x00\\xb0\\x82C\\x00\\xd0\\x82C\\x00\\xf0\\x82C\\x00\\x10\\x83C\\x000\\x83C\\x00P\\x83C\\x00p\\x83C\\x00\\x90\\x83C\\x00\\xb0\\x83C\\x00\\xd0\\x83C\\x00\\xf0\\x83C\\x00\\x10\\x84C\\x000\\x84C\\x00P\\x84C\\x00p\\x84C\\x00\\x90\\x84C\\x00\\xb0\\x84C\\x00\\xd0\\x84C\\x00\\xf0\\x84C\\x00\\x10\\x85C\\x000\\x85C\\x00P\\x85C\\x00p\\x85C\\x00\\x90\\x85C\\x00\\xb0\\x85C\\x00\\xd0\\x85C\\x00\\xf0\\x85C\\x00\\x10\\x86C\\x000\\x86C\\x00P\\x86C\\x00p\\x86C\\x00\\x90\\x86C\\x00\\xb0\\x86C\\x00\\xd0\\x86C\\x00\\xf0\\x86C\\x00\\x10\\x87C\\x000\\x87C\\x00P\\x87C\\x00p\\x87C\\x00\\x90\\x87C\\x00\\xb0\\x87C\\x00\\xd0\\x87C\\x00\\xf0\\x87C\\x00\\x10\\x88C\\x000\\x88C\\x00P\\x88C\\x00p\\x88C\\x00\\x90\\x88C\\x00\\xb0\\x88C\\x00\\xd0\\x88C\\x00\\xf0\\x88C\\x00\\x10\\x89C\\x000\\x89C\\x00P\\x89C\\x00p\\x89C\\x00\\x90\\x89C\\x00\\xb0\\x89C\\x00\\xd0\\x89C\\x00\\xf0\\x89C\\x00\\x10\\x8aC\\x000\\x8aC\\x00P\\x8aC\\x00p\\x8aC\\x00\\x90\\x8aC\\x00\\xb0\\x8aC\\x00\\xd0\\x8aC\\x00\\xf0\\x8aC\\x00\\x10\\x8bC\\x000\\x8bC\\x00P\\x8bC\\x00p\\x8bC\\x00\\x90\\x8bC\\x00\\xb0\\x8bC\\x00\\xd0\\x8bC\\x00\\xf0\\x8bC\\x00\\x10\\x8cC\\x000\\x8cC\\x00P\\x8cC\\x00p\\x8cC\\x00\\x90\\x8cC\\x00\\xb0\\x8cC\\x00\\xd0\\x8cC\\x00\\xf0\\x8cC\\x00\\x10\\x8dC\\x000\\x8dC\\x00P\\x8dC\\x00p\\x8dC\\x00\\x90\\x8dC\\x00\\xb0\\x8dC\\x00\\xd0\\x8dC\\x00\\xf0\\x8dC\\x00\\x10\\x8eC\\x000\\x8eC\\x00P\\x8eC\\x00p\\x8eC\\x00\\x90\\x8eC\\x00\\xb0\\x8eC\\x00\\xd0\\x8eC\\x00\\xf0\\x8eC\\x00\\x10\\x8fC\\x000\\x8fC\\x00P\\x8fC\\x00p\\x8fC\\x00\\x90\\x8fC\\x00\\xb0\\x8fC\\x00\\xd0\\x8fC\\x00\\xf0\\x8fC\\x00\\x10\\x90C\\x000\\x90C\\x00P\\x90C\\x00p\\x90C\\x00\\x90\\x90C\\x00\\xb0\\x90C\\x00\\xd0\\x90C\\x00\\xf0\\x90C\\x00\\x10\\x91C\\x000\\x91C\\x00P\\x91C\\x00p\\x91C\\x00\\x90\\x91C\\x00\\xb0\\x91C\\x00\\xd0\\x91C\\x00\\xf0\\x91C\\x00\\x10\\x92C\\x000\\x92C\\x00P\\x92C\\x00p\\x92C\\x00\\x90\\x92C\\x00\\xb0\\x92C\\x00\\xd0\\x92C\\x00\\xf0\\x92C\\x00\\x10\\x93C\\x000\\x93C\\x00P\\x93C\\x00p\\x93C\\x00\\x90\\x93C\\x00\\xb0\\x93C\\x00\\xd0\\x93C\\x00\\xf0\\x93C\\x00\\x10\\x94C\\x000\\x94C\\x00P\\x94C\\x00p\\x94C\\x00\\x90\\x94C\\x00\\xb0\\x94C\\x00\\xd0\\x94C\\x00\\xf0\\x94C\\x00\\x10\\x95C\\x000\\x95C\\x00P\\x95C\\x00p\\x95C\\x00\\x90\\x95C\\x00\\xb0\\x95C\\x00\\xd0\\x95C\\x00\\xf0\\x95C\\x00\\x10\\x96C\\x000\\x96C\\x00P\\x96C\\x00p\\x96C\\x00\\x90\\x96C\\x00\\xb0\\x96C\\x00\\xd0\\x96C\\x00\\xf0\\x96C\\x00\\x10\\x97C\\x000\\x97C\\x00P\\x97C\\x00p\\x97C\\x00\\x90\\x97C\\x00\\xb0\\x97C\\x00\\xd0\\x97C\\x00\\xf0\\x97C\\x00\\x10\\x98C\\x000\\x98C\\x00P\\x98C\\x00p\\x98C\\x00\\x90\\x98C\\x00\\xb0\\x98C\\x00\\xd0\\x98C\\x00\\xf0\\x98C\\x00\\x10\\x99C\\x000\\x99C\\x00P\\x99C\\x00p\\x99C\\x00\\x90\\x99C\\x00\\xb0\\x99C\\x00\\xd0\\x99C\\x00\\xf0\\x99C\\x00\\x10\\x9aC\\x000\\x9aC\\x00P\\x9aC\\x00p\\x9aC\\x00\\x90\\x9aC\\x00\\xb0\\x9aC\\x00\\xd0\\x9aC\\x00\\xf0\\x9aC\\x00\\x10\\x9bC\\x000\\x9bC\\x00P\\x9bC\\x00p\\x9bC\\x00\\x90\\x9bC\\x00\\xb0\\x9bC\\x00\\xd0\\x9bC\\x00\\xf0\\x9bC\\x00\\x10\\x9cC\\x000\\x9cC\\x00P\\x9cC\\x00p\\x9cC\\x00\\x90\\x9cC\\x00\\xb0\\x9cC\\x00\\xd0\\x9cC\\x00\\xf0\\x9cC\\x00\\x10\\x9dC\\x000\\x9dC\\x00P\\x9dC\\x00p\\x9dC\\x00\\x90\\x9dC\\x00\\xb0\\x9dC\\x00\\xd0\\x9dC\\x00\\xf0\\x9dC\\x00\\x10\\x9eC\\x000\\x9eC\\x00P\\x9eC\\x00p\\x9eC\\x00\\x90\\x9eC\\x00\\xb0\\x9eC\\x00\\xd0\\x9eC\\x00\\xf0\\x9eC\\x00\\x10\\x9fC\\x000\\x9fC\\x00P\\x9fC\\x00p\\x9fC\\x00\\x90\\x9fC\\x00\\xb0\\x9fC\\x00\\xd0\\x9fC\\x00\\xf0\\x9fC\\x00\\x10\\xa0C\\x000\\xa0C\\x00P\\xa0C\\x00p\\xa0C\\x00\\x90\\xa0C\\x00\\xb0\\xa0C\\x00\\xd0\\xa0C\\x00\\xf0\\xa0C\\x00\\x10\\xa1C\\x000\\xa1C\\x00P\\xa1C\\x00p\\xa1C\\x00\\x90\\xa1C\\x00\\xb0\\xa1C\\x00\\xd0\\xa1C\\x00\\xf0\\xa1C\\x00\\x10\\xa2C\\x000\\xa2C\\x00P\\xa2C\\x00p\\xa2C\\x00\\x90\\xa2C\\x00\\xb0\\xa2C\\x00\\xd0\\xa2C\\x00\\xf0\\xa2C\\x00\\x10\\xa3C\\x000\\xa3C\\x00P\\xa3C\\x00p\\xa3C\\x00\\x90\\xa3C\\x00\\xb0\\xa3C\\x00\\xd0\\xa3C\\x00\\xf0\\xa3C\\x00\\x10\\xa4C\\x000\\xa4C\\x00P\\xa4C\\x00p\\xa4C\\x00\\x90\\xa4C\\x00\\xb0\\xa4C\\x00\\xd0\\xa4C\\x00\\xf0\\xa4C\\x00\\x10\\xa5C\\x000\\xa5C\\x00P\\xa5C\\x00p\\xa5C\\x00\\x90\\xa5C\\x00\\xb0\\xa5C\\x00\\xd0\\xa5C\\x00\\xf0\\xa5C\\x00\\x10\\xa6C\\x000\\xa6C\\x00P\\xa6C\\x00p\\xa6C\\x00\\x90\\xa6C\\x00\\xb0\\xa6C\\x00\\xd0\\xa6C\\x00\\xf0\\xa6C\\x00\\x10\\xa7C\\x000\\xa7C\\x00P\\xa7C\\x00p\\xa7C\\x00\\x90\\xa7C\\x00\\xb0\\xa7C\\x00\\xd0\\xa7C\\x00\\xf0\\xa7C\\x00\\x10\\xa8C\\x000\\xa8C\\x00P\\xa8C\\x00p\\xa8C\\x00\\x90\\xa8C\\x00\\xb0\\xa8C\\x00\\xd0\\xa8C\\x00\\xf0\\xa8C\\x00\\x10\\xa9C\\x000\\xa9C\\x00P\\xa9C\\x00p\\xa9C\\x00\\x90\\xa9C\\x00\\xb0\\xa9C\\x00\\xd0\\xa9C\\x00\\xf0\\xa9C\\x00\\x10\\xaaC\\x000\\xaaC\\x00P\\xaaC\\x00p\\xaaC\\x00\\x90\\xaaC\\x00\\xb0\\xaaC\\x00\\xd0\\xaaC\\x00\\xf0\\xaaC\\x00\\x10\\xabC\\x000\\xabC\\x00P\\xabC\\x00p\\xabC\\x00\\x90\\xabC\\x00\\xb0\\xabC\\x00\\xd0\\xabC\\x00\\xf0\\xabC\\x00\\x10\\xacC\\x000\\xacC\\x00P\\xacC\\x00p\\xacC\\x00\\x90\\xacC\\x00\\xb0\\xacC\\x00\\xd0\\xacC\\x00\\xf0\\xacC\\x00\\x10\\xadC\\x000\\xadC\\x00P\\xadC\\x00p\\xadC\\x00\\x90\\xadC\\x00\\xb0\\xadC\\x00\\xd0\\xadC\\x00\\xf0\\xadC\\x00\\x10\\xaeC\\x000\\xaeC\\x00P\\xaeC\\x00p\\xaeC\\x00\\x90\\xaeC\\x00\\xb0\\xaeC\\x00\\xd0\\xaeC\\x00\\xf0\\xaeC\\x00\\x10\\xafC\\x000\\xafC\\x00P\\xafC\\x00p\\xafC\\x00\\x90\\xafC\\x00\\xb0\\xafC\\x00\\xd0\\xafC\\x00\\xf0\\xafC\\x00\\x10\\xb0C\\x000\\xb0C\\x00P\\xb0C\\x00p\\xb0C\\x00\\x90\\xb0C\\x00\\xb0\\xb0C\\x00\\xd0\\xb0C\\x00\\xf0\\xb0C\\x00\\x10\\xb1C\\x000\\xb1C\\x00P\\xb1C\\x00p\\xb1C\\x00\\x90\\xb1C\\x00\\xb0\\xb1C\\x00\\xd0\\xb1C\\x00\\xf0\\xb1C\\x00\\x10\\xb2C\\x000\\xb2C\\x00P\\xb2C\\x00p\\xb2C\\x00\\x90\\xb2C\\x00\\xb0\\xb2C\\x00\\xd0\\xb2C\\x00\\xf0\\xb2C\\x00\\x10\\xb3C\\x000\\xb3C\\x00P\\xb3C\\x00p\\xb3C\\x00\\x90\\xb3C\\x00\\xb0\\xb3C\\x00\\xd0\\xb3C\\x00\\xf0\\xb3C'"
- ]
- },
- "execution_count": 22,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"await read_store._store.get(\"time/c/0\")"
]
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": null,
"id": "47a53027-dbae-48aa-85d2-dcbc04e01e61",
"metadata": {},
- "outputs": [
- {
- "ename": "error",
- "evalue": "Failed to decode variable 'time': Error -3 while decompressing data: unknown compression method",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31merror\u001b[0m Traceback (most recent call last)",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/conventions.py:451\u001b[0m, in \u001b[0;36mdecode_cf_variables\u001b[0;34m(variables, attributes, concat_characters, mask_and_scale, decode_times, decode_coords, drop_variables, use_cftime, decode_timedelta)\u001b[0m\n\u001b[1;32m 450\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 451\u001b[0m new_vars[k] \u001b[38;5;241m=\u001b[39m \u001b[43mdecode_cf_variable\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 452\u001b[0m \u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 453\u001b[0m \u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 454\u001b[0m \u001b[43m \u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 455\u001b[0m \u001b[43m \u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 456\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 457\u001b[0m \u001b[43m \u001b[49m\u001b[43mstack_char_dim\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstack_char_dim\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 458\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 459\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 460\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 461\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/conventions.py:292\u001b[0m, in \u001b[0;36mdecode_cf_variable\u001b[0;34m(name, var, concat_characters, mask_and_scale, decode_times, decode_endianness, stack_char_dim, use_cftime, decode_timedelta)\u001b[0m\n\u001b[1;32m 291\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m decode_times:\n\u001b[0;32m--> 292\u001b[0m var \u001b[38;5;241m=\u001b[39m \u001b[43mtimes\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mCFDatetimeCoder\u001b[49m\u001b[43m(\u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 294\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m decode_endianness \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m var\u001b[38;5;241m.\u001b[39mdtype\u001b[38;5;241m.\u001b[39misnative:\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/coding/times.py:1001\u001b[0m, in \u001b[0;36mCFDatetimeCoder.decode\u001b[0;34m(self, variable, name)\u001b[0m\n\u001b[1;32m 1000\u001b[0m calendar \u001b[38;5;241m=\u001b[39m pop_to(attrs, encoding, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcalendar\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1001\u001b[0m dtype \u001b[38;5;241m=\u001b[39m \u001b[43m_decode_cf_datetime_dtype\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43munits\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcalendar\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1002\u001b[0m transform \u001b[38;5;241m=\u001b[39m partial(\n\u001b[1;32m 1003\u001b[0m decode_cf_datetime,\n\u001b[1;32m 1004\u001b[0m units\u001b[38;5;241m=\u001b[39munits,\n\u001b[1;32m 1005\u001b[0m calendar\u001b[38;5;241m=\u001b[39mcalendar,\n\u001b[1;32m 1006\u001b[0m use_cftime\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39muse_cftime,\n\u001b[1;32m 1007\u001b[0m )\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/coding/times.py:214\u001b[0m, in \u001b[0;36m_decode_cf_datetime_dtype\u001b[0;34m(data, units, calendar, use_cftime)\u001b[0m\n\u001b[1;32m 212\u001b[0m values \u001b[38;5;241m=\u001b[39m indexing\u001b[38;5;241m.\u001b[39mImplicitToExplicitIndexingAdapter(indexing\u001b[38;5;241m.\u001b[39mas_indexable(data))\n\u001b[1;32m 213\u001b[0m example_value \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mconcatenate(\n\u001b[0;32m--> 214\u001b[0m [\u001b[43mfirst_n_items\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;129;01mor\u001b[39;00m [\u001b[38;5;241m0\u001b[39m], last_item(values) \u001b[38;5;129;01mor\u001b[39;00m [\u001b[38;5;241m0\u001b[39m]]\n\u001b[1;32m 215\u001b[0m )\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/formatting.py:97\u001b[0m, in \u001b[0;36mfirst_n_items\u001b[0;34m(array, n_desired)\u001b[0m\n\u001b[1;32m 96\u001b[0m array \u001b[38;5;241m=\u001b[39m array\u001b[38;5;241m.\u001b[39m_data\n\u001b[0;32m---> 97\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m np\u001b[38;5;241m.\u001b[39mravel(\u001b[43mto_duck_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43marray\u001b[49m\u001b[43m)\u001b[49m)[:n_desired]\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/namedarray/pycompat.py:138\u001b[0m, in \u001b[0;36mto_duck_array\u001b[0;34m(data, **kwargs)\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 138\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43masarray\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/indexing.py:578\u001b[0m, in \u001b[0;36mImplicitToExplicitIndexingAdapter.__array__\u001b[0;34m(self, dtype, copy)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m Version(np\u001b[38;5;241m.\u001b[39m__version__) \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m Version(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m2.0.0\u001b[39m\u001b[38;5;124m\"\u001b[39m):\n\u001b[0;32m--> 578\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m np\u001b[38;5;241m.\u001b[39masarray(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_duck_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m, dtype\u001b[38;5;241m=\u001b[39mdtype, copy\u001b[38;5;241m=\u001b[39mcopy)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/indexing.py:583\u001b[0m, in \u001b[0;36mImplicitToExplicitIndexingAdapter.get_duck_array\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 582\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget_duck_array\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m--> 583\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43marray\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_duck_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/indexing.py:657\u001b[0m, in \u001b[0;36mLazilyIndexedArray.get_duck_array\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 654\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 655\u001b[0m \u001b[38;5;66;03m# If the array is not an ExplicitlyIndexedNDArrayMixin,\u001b[39;00m\n\u001b[1;32m 656\u001b[0m \u001b[38;5;66;03m# it may wrap a BackendArray so use its __getitem__\u001b[39;00m\n\u001b[0;32m--> 657\u001b[0m array \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43marray\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkey\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 659\u001b[0m \u001b[38;5;66;03m# self.array[self.key] is now a numpy array when\u001b[39;00m\n\u001b[1;32m 660\u001b[0m \u001b[38;5;66;03m# self.array is a BackendArray subclass\u001b[39;00m\n\u001b[1;32m 661\u001b[0m \u001b[38;5;66;03m# and self.key is BasicIndexer((slice(None, None, None),))\u001b[39;00m\n\u001b[1;32m 662\u001b[0m \u001b[38;5;66;03m# so we need the explicit check for ExplicitlyIndexed\u001b[39;00m\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/zarr.py:175\u001b[0m, in \u001b[0;36mZarrArrayWrapper.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 174\u001b[0m method \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_oindex\n\u001b[0;32m--> 175\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mindexing\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexplicit_indexing_adapter\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[43m \u001b[49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43marray\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshape\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindexing\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mIndexingSupport\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mVECTORIZED\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\n\u001b[1;32m 177\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/indexing.py:1018\u001b[0m, in \u001b[0;36mexplicit_indexing_adapter\u001b[0;34m(key, shape, indexing_support, raw_indexing_method)\u001b[0m\n\u001b[1;32m 1017\u001b[0m raw_key, numpy_indices \u001b[38;5;241m=\u001b[39m decompose_indexer(key, shape, indexing_support)\n\u001b[0;32m-> 1018\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mraw_indexing_method\u001b[49m\u001b[43m(\u001b[49m\u001b[43mraw_key\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtuple\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1019\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m numpy_indices\u001b[38;5;241m.\u001b[39mtuple:\n\u001b[1;32m 1020\u001b[0m \u001b[38;5;66;03m# index the loaded np.ndarray\u001b[39;00m\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/zarr.py:158\u001b[0m, in \u001b[0;36mZarrArrayWrapper._getitem\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 155\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_getitem\u001b[39m(\u001b[38;5;28mself\u001b[39m, key):\n\u001b[1;32m 156\u001b[0m \u001b[38;5;66;03m# import pdb; pdb.set_trace()\u001b[39;00m\n\u001b[1;32m 157\u001b[0m \u001b[38;5;66;03m# try:\u001b[39;00m\n\u001b[0;32m--> 158\u001b[0m item \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_array\u001b[49m\u001b[43m[\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 159\u001b[0m \u001b[38;5;66;03m# except Exception as e:\u001b[39;00m\n\u001b[1;32m 160\u001b[0m \u001b[38;5;66;03m# import traceback\u001b[39;00m\n\u001b[1;32m 161\u001b[0m \u001b[38;5;66;03m# print(f\"An error occurred: {e}\")\u001b[39;00m\n\u001b[1;32m 162\u001b[0m \u001b[38;5;66;03m# print(\"Stack trace:\")\u001b[39;00m\n\u001b[1;32m 163\u001b[0m \u001b[38;5;66;03m# traceback.print_exc() # Prints the full traceback \u001b[39;00m\n\u001b[1;32m 164\u001b[0m \u001b[38;5;66;03m# import pdb; pdb.set_trace()\u001b[39;00m\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/array.py:1953\u001b[0m, in \u001b[0;36mArray.__getitem__\u001b[0;34m(self, selection)\u001b[0m\n\u001b[1;32m 1952\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m is_pure_orthogonal_indexing(pure_selection, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mndim):\n\u001b[0;32m-> 1953\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_orthogonal_selection\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpure_selection\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfields\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfields\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1954\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/_compat.py:43\u001b[0m, in \u001b[0;36m_deprecate_positional_args.._inner_deprecate_positional_args..inner_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m extra_args \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m---> 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;66;03m# extra_args > 0\u001b[39;00m\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/array.py:2395\u001b[0m, in \u001b[0;36mArray.get_orthogonal_selection\u001b[0;34m(self, selection, out, fields, prototype)\u001b[0m\n\u001b[1;32m 2394\u001b[0m indexer \u001b[38;5;241m=\u001b[39m OrthogonalIndexer(selection, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mshape, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmetadata\u001b[38;5;241m.\u001b[39mchunk_grid)\n\u001b[0;32m-> 2395\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msync\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2396\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_async_array\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_selection\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2397\u001b[0m \u001b[43m \u001b[49m\u001b[43mindexer\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindexer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfields\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfields\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprototype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mprototype\u001b[49m\n\u001b[1;32m 2398\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2399\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/sync.py:141\u001b[0m, in \u001b[0;36msync\u001b[0;34m(coro, loop, timeout)\u001b[0m\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(return_result, \u001b[38;5;167;01mBaseException\u001b[39;00m):\n\u001b[0;32m--> 141\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m return_result\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/sync.py:100\u001b[0m, in \u001b[0;36m_runner\u001b[0;34m(coro)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 100\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m coro\n\u001b[1;32m 101\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m ex:\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/array.py:1009\u001b[0m, in \u001b[0;36mAsyncArray._get_selection\u001b[0;34m(self, indexer, prototype, out, fields)\u001b[0m\n\u001b[1;32m 1007\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m product(indexer\u001b[38;5;241m.\u001b[39mshape) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 1008\u001b[0m \u001b[38;5;66;03m# reading chunks and decoding them\u001b[39;00m\n\u001b[0;32m-> 1009\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcodec_pipeline\u001b[38;5;241m.\u001b[39mread(\n\u001b[1;32m 1010\u001b[0m [\n\u001b[1;32m 1011\u001b[0m (\n\u001b[1;32m 1012\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstore_path \u001b[38;5;241m/\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmetadata\u001b[38;5;241m.\u001b[39mencode_chunk_key(chunk_coords),\n\u001b[1;32m 1013\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmetadata\u001b[38;5;241m.\u001b[39mget_chunk_spec(chunk_coords, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morder, prototype\u001b[38;5;241m=\u001b[39mprototype),\n\u001b[1;32m 1014\u001b[0m chunk_selection,\n\u001b[1;32m 1015\u001b[0m out_selection,\n\u001b[1;32m 1016\u001b[0m )\n\u001b[1;32m 1017\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk_coords, chunk_selection, out_selection \u001b[38;5;129;01min\u001b[39;00m indexer\n\u001b[1;32m 1018\u001b[0m ],\n\u001b[1;32m 1019\u001b[0m out_buffer,\n\u001b[1;32m 1020\u001b[0m drop_axes\u001b[38;5;241m=\u001b[39mindexer\u001b[38;5;241m.\u001b[39mdrop_axes,\n\u001b[1;32m 1021\u001b[0m )\n\u001b[1;32m 1022\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out_buffer\u001b[38;5;241m.\u001b[39mas_ndarray_like()\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/codec_pipeline.py:440\u001b[0m, in \u001b[0;36mBatchedCodecPipeline.read\u001b[0;34m(self, batch_info, out, drop_axes)\u001b[0m\n\u001b[1;32m 434\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mread\u001b[39m(\n\u001b[1;32m 435\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 436\u001b[0m batch_info: Iterable[\u001b[38;5;28mtuple\u001b[39m[ByteGetter, ArraySpec, SelectorTuple, SelectorTuple]],\n\u001b[1;32m 437\u001b[0m out: NDBuffer,\n\u001b[1;32m 438\u001b[0m drop_axes: \u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mint\u001b[39m, \u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m] \u001b[38;5;241m=\u001b[39m (),\n\u001b[1;32m 439\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 440\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m concurrent_map(\n\u001b[1;32m 441\u001b[0m [\n\u001b[1;32m 442\u001b[0m (single_batch_info, out, drop_axes)\n\u001b[1;32m 443\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m single_batch_info \u001b[38;5;129;01min\u001b[39;00m batched(batch_info, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbatch_size)\n\u001b[1;32m 444\u001b[0m ],\n\u001b[1;32m 445\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mread_batch,\n\u001b[1;32m 446\u001b[0m config\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124masync.concurrency\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 447\u001b[0m )\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/common.py:67\u001b[0m, in \u001b[0;36mconcurrent_map\u001b[0;34m(items, func, limit)\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(\u001b[38;5;241m*\u001b[39mitem)\n\u001b[0;32m---> 67\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mgather(\u001b[38;5;241m*\u001b[39m[asyncio\u001b[38;5;241m.\u001b[39mensure_future(run(item)) \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m items])\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/common.py:65\u001b[0m, in \u001b[0;36mconcurrent_map..run\u001b[0;34m(item)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mwith\u001b[39;00m sem:\n\u001b[0;32m---> 65\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(\u001b[38;5;241m*\u001b[39mitem)\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/codec_pipeline.py:270\u001b[0m, in \u001b[0;36mBatchedCodecPipeline.read_batch\u001b[0;34m(self, batch_info, out, drop_axes)\u001b[0m\n\u001b[1;32m 262\u001b[0m chunk_bytes_batch \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m concurrent_map(\n\u001b[1;32m 263\u001b[0m [\n\u001b[1;32m 264\u001b[0m (byte_getter, array_spec\u001b[38;5;241m.\u001b[39mprototype)\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 268\u001b[0m config\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124masync.concurrency\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 269\u001b[0m )\n\u001b[0;32m--> 270\u001b[0m chunk_array_batch \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdecode_batch(\n\u001b[1;32m 271\u001b[0m [\n\u001b[1;32m 272\u001b[0m (chunk_bytes, chunk_spec)\n\u001b[1;32m 273\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk_bytes, (_, chunk_spec, _, _) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\n\u001b[1;32m 274\u001b[0m chunk_bytes_batch, batch_info, strict\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 275\u001b[0m )\n\u001b[1;32m 276\u001b[0m ],\n\u001b[1;32m 277\u001b[0m )\n\u001b[1;32m 278\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk_array, (_, chunk_spec, chunk_selection, out_selection) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\n\u001b[1;32m 279\u001b[0m chunk_array_batch, batch_info, strict\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 280\u001b[0m ):\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/codec_pipeline.py:172\u001b[0m, in \u001b[0;36mBatchedCodecPipeline.decode_batch\u001b[0;34m(self, chunk_bytes_and_specs)\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m bb_codec, chunk_spec_batch \u001b[38;5;129;01min\u001b[39;00m bb_codecs_with_spec[::\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]:\n\u001b[0;32m--> 172\u001b[0m chunk_bytes_batch \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m bb_codec\u001b[38;5;241m.\u001b[39mdecode(\n\u001b[1;32m 173\u001b[0m \u001b[38;5;28mzip\u001b[39m(chunk_bytes_batch, chunk_spec_batch, strict\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 174\u001b[0m )\n\u001b[1;32m 176\u001b[0m ab_codec, chunk_spec_batch \u001b[38;5;241m=\u001b[39m ab_codec_with_spec\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/abc/codec.py:129\u001b[0m, in \u001b[0;36mBaseCodec.decode\u001b[0;34m(self, chunks_and_specs)\u001b[0m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Decodes a batch of chunks.\u001b[39;00m\n\u001b[1;32m 118\u001b[0m \u001b[38;5;124;03mChunks can be None in which case they are ignored by the codec.\u001b[39;00m\n\u001b[1;32m 119\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 127\u001b[0m \u001b[38;5;124;03mIterable[CodecInput | None]\u001b[39;00m\n\u001b[1;32m 128\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 129\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m _batching_helper(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_decode_single, chunks_and_specs)\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/abc/codec.py:407\u001b[0m, in \u001b[0;36m_batching_helper\u001b[0;34m(func, batch_info)\u001b[0m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_batching_helper\u001b[39m(\n\u001b[1;32m 404\u001b[0m func: Callable[[CodecInput, ArraySpec], Awaitable[CodecOutput \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m]],\n\u001b[1;32m 405\u001b[0m batch_info: Iterable[\u001b[38;5;28mtuple\u001b[39m[CodecInput \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m, ArraySpec]],\n\u001b[1;32m 406\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mlist\u001b[39m[CodecOutput \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m]:\n\u001b[0;32m--> 407\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m concurrent_map(\n\u001b[1;32m 408\u001b[0m \u001b[38;5;28mlist\u001b[39m(batch_info),\n\u001b[1;32m 409\u001b[0m _noop_for_none(func),\n\u001b[1;32m 410\u001b[0m config\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124masync.concurrency\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 411\u001b[0m )\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/common.py:67\u001b[0m, in \u001b[0;36mconcurrent_map\u001b[0;34m(items, func, limit)\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(\u001b[38;5;241m*\u001b[39mitem)\n\u001b[0;32m---> 67\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mgather(\u001b[38;5;241m*\u001b[39m[asyncio\u001b[38;5;241m.\u001b[39mensure_future(run(item)) \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m items])\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/common.py:65\u001b[0m, in \u001b[0;36mconcurrent_map..run\u001b[0;34m(item)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mwith\u001b[39;00m sem:\n\u001b[0;32m---> 65\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(\u001b[38;5;241m*\u001b[39mitem)\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/abc/codec.py:420\u001b[0m, in \u001b[0;36m_noop_for_none..wrap\u001b[0;34m(chunk, chunk_spec)\u001b[0m\n\u001b[1;32m 419\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m--> 420\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(chunk, chunk_spec)\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/numcodecs/zarr3.py:125\u001b[0m, in \u001b[0;36m_NumcodecsBytesBytesCodec._decode_single\u001b[0;34m(self, chunk_bytes, chunk_spec)\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_decode_single\u001b[39m(\u001b[38;5;28mself\u001b[39m, chunk_bytes: Buffer, chunk_spec: ArraySpec) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Buffer:\n\u001b[0;32m--> 125\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mto_thread(\n\u001b[1;32m 126\u001b[0m as_numpy_array_wrapper,\n\u001b[1;32m 127\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_codec\u001b[38;5;241m.\u001b[39mdecode,\n\u001b[1;32m 128\u001b[0m chunk_bytes,\n\u001b[1;32m 129\u001b[0m chunk_spec\u001b[38;5;241m.\u001b[39mprototype,\n\u001b[1;32m 130\u001b[0m )\n",
- "File \u001b[0;32m/usr/local/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/threads.py:25\u001b[0m, in \u001b[0;36mto_thread\u001b[0;34m(func, *args, **kwargs)\u001b[0m\n\u001b[1;32m 24\u001b[0m func_call \u001b[38;5;241m=\u001b[39m functools\u001b[38;5;241m.\u001b[39mpartial(ctx\u001b[38;5;241m.\u001b[39mrun, func, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m---> 25\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m loop\u001b[38;5;241m.\u001b[39mrun_in_executor(\u001b[38;5;28;01mNone\u001b[39;00m, func_call)\n",
- "File \u001b[0;32m/usr/local/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/concurrent/futures/thread.py:58\u001b[0m, in \u001b[0;36m_WorkItem.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 58\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/buffer/cpu.py:213\u001b[0m, in \u001b[0;36mas_numpy_array_wrapper\u001b[0;34m(func, buf, prototype)\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Converts the input of `func` to a numpy array and the output back to `Buffer`.\u001b[39;00m\n\u001b[1;32m 192\u001b[0m \n\u001b[1;32m 193\u001b[0m \u001b[38;5;124;03mThis function is useful when calling a `func` that only support host memory such\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[38;5;124;03m The result of `func` converted to a `Buffer`\u001b[39;00m\n\u001b[1;32m 212\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 213\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m prototype\u001b[38;5;241m.\u001b[39mbuffer\u001b[38;5;241m.\u001b[39mfrom_bytes(\u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbuf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mas_numpy_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m)\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/numcodecs/zlib.py:37\u001b[0m, in \u001b[0;36mZlib.decode\u001b[0;34m(self, buf, out)\u001b[0m\n\u001b[1;32m 36\u001b[0m \u001b[38;5;66;03m# do decompression\u001b[39;00m\n\u001b[0;32m---> 37\u001b[0m dec \u001b[38;5;241m=\u001b[39m \u001b[43m_zlib\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecompress\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbuf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 39\u001b[0m \u001b[38;5;66;03m# handle destination - Python standard library zlib module does not\u001b[39;00m\n\u001b[1;32m 40\u001b[0m \u001b[38;5;66;03m# support direct decompression into buffer, so we have to copy into\u001b[39;00m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;66;03m# out if given\u001b[39;00m\n",
- "\u001b[0;31merror\u001b[0m: Error -3 while decompressing data: unknown compression method",
- "\nThe above exception was the direct cause of the following exception:\n",
- "\u001b[0;31merror\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[23], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mxr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_zarr\u001b[49m\u001b[43m(\u001b[49m\u001b[43mread_store\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconsolidated\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mzarr_format\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m ds\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/zarr.py:1346\u001b[0m, in \u001b[0;36mopen_zarr\u001b[0;34m(store, group, synchronizer, chunks, decode_cf, mask_and_scale, decode_times, concat_characters, decode_coords, drop_variables, consolidated, overwrite_encoded_chunks, chunk_store, storage_options, decode_timedelta, use_cftime, zarr_version, zarr_format, use_zarr_fill_value_as_mask, chunked_array_type, from_array_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 1335\u001b[0m backend_kwargs \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m 1336\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msynchronizer\u001b[39m\u001b[38;5;124m\"\u001b[39m: synchronizer,\n\u001b[1;32m 1337\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mconsolidated\u001b[39m\u001b[38;5;124m\"\u001b[39m: consolidated,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1343\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mzarr_format\u001b[39m\u001b[38;5;124m\"\u001b[39m: zarr_format,\n\u001b[1;32m 1344\u001b[0m }\n\u001b[1;32m 1345\u001b[0m \u001b[38;5;66;03m#import pdb; pdb.set_trace()\u001b[39;00m\n\u001b[0;32m-> 1346\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1347\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilename_or_obj\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstore\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1348\u001b[0m \u001b[43m \u001b[49m\u001b[43mgroup\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1349\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_cf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_cf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1350\u001b[0m \u001b[43m \u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmask_and_scale\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1351\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_times\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1352\u001b[0m \u001b[43m \u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconcat_characters\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1353\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_coords\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_coords\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1354\u001b[0m \u001b[43m \u001b[49m\u001b[43mengine\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mzarr\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1355\u001b[0m \u001b[43m \u001b[49m\u001b[43mchunks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mchunks\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1356\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_variables\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1357\u001b[0m \u001b[43m \u001b[49m\u001b[43mchunked_array_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mchunked_array_type\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1358\u001b[0m \u001b[43m \u001b[49m\u001b[43mfrom_array_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfrom_array_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1359\u001b[0m \u001b[43m \u001b[49m\u001b[43mbackend_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbackend_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1360\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_timedelta\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1361\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1362\u001b[0m \u001b[43m \u001b[49m\u001b[43mzarr_version\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mzarr_version\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1363\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_zarr_fill_value_as_mask\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_zarr_fill_value_as_mask\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1364\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1365\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/api.py:671\u001b[0m, in \u001b[0;36mopen_dataset\u001b[0;34m(filename_or_obj, engine, chunks, cache, decode_cf, mask_and_scale, decode_times, decode_timedelta, use_cftime, concat_characters, decode_coords, drop_variables, inline_array, chunked_array_type, from_array_kwargs, backend_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 659\u001b[0m decoders \u001b[38;5;241m=\u001b[39m _resolve_decoders_kwargs(\n\u001b[1;32m 660\u001b[0m decode_cf,\n\u001b[1;32m 661\u001b[0m open_backend_dataset_parameters\u001b[38;5;241m=\u001b[39mbackend\u001b[38;5;241m.\u001b[39mopen_dataset_parameters,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 667\u001b[0m decode_coords\u001b[38;5;241m=\u001b[39mdecode_coords,\n\u001b[1;32m 668\u001b[0m )\n\u001b[1;32m 670\u001b[0m overwrite_encoded_chunks \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124moverwrite_encoded_chunks\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[0;32m--> 671\u001b[0m backend_ds \u001b[38;5;241m=\u001b[39m \u001b[43mbackend\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 672\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilename_or_obj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 673\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_variables\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 674\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mdecoders\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 675\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 676\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 677\u001b[0m ds \u001b[38;5;241m=\u001b[39m _dataset_from_backend_dataset(\n\u001b[1;32m 678\u001b[0m backend_ds,\n\u001b[1;32m 679\u001b[0m filename_or_obj,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 689\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[1;32m 690\u001b[0m )\n\u001b[1;32m 691\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/zarr.py:1436\u001b[0m, in \u001b[0;36mZarrBackendEntrypoint.open_dataset\u001b[0;34m(self, filename_or_obj, mask_and_scale, decode_times, concat_characters, decode_coords, drop_variables, use_cftime, decode_timedelta, group, mode, synchronizer, consolidated, chunk_store, storage_options, stacklevel, zarr_version, zarr_format, store, engine, use_zarr_fill_value_as_mask)\u001b[0m\n\u001b[1;32m 1434\u001b[0m store_entrypoint \u001b[38;5;241m=\u001b[39m StoreBackendEntrypoint()\n\u001b[1;32m 1435\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m close_on_error(store):\n\u001b[0;32m-> 1436\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mstore_entrypoint\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1437\u001b[0m \u001b[43m \u001b[49m\u001b[43mstore\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1438\u001b[0m \u001b[43m \u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmask_and_scale\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1439\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_times\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1440\u001b[0m \u001b[43m \u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconcat_characters\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1441\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_coords\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_coords\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1442\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_variables\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1443\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1444\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_timedelta\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1445\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1446\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/store.py:46\u001b[0m, in \u001b[0;36mStoreBackendEntrypoint.open_dataset\u001b[0;34m(self, filename_or_obj, mask_and_scale, decode_times, concat_characters, decode_coords, drop_variables, use_cftime, decode_timedelta)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28mvars\u001b[39m, attrs \u001b[38;5;241m=\u001b[39m filename_or_obj\u001b[38;5;241m.\u001b[39mload()\n\u001b[1;32m 44\u001b[0m encoding \u001b[38;5;241m=\u001b[39m filename_or_obj\u001b[38;5;241m.\u001b[39mget_encoding()\n\u001b[0;32m---> 46\u001b[0m \u001b[38;5;28mvars\u001b[39m, attrs, coord_names \u001b[38;5;241m=\u001b[39m \u001b[43mconventions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode_cf_variables\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 47\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mvars\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 48\u001b[0m \u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 49\u001b[0m \u001b[43m \u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmask_and_scale\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_times\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 51\u001b[0m \u001b[43m \u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconcat_characters\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 52\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_coords\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_coords\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 53\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_variables\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 55\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_timedelta\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 56\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;66;03m# import pdb; pdb.set_trace()\u001b[39;00m\n\u001b[1;32m 58\u001b[0m ds \u001b[38;5;241m=\u001b[39m Dataset(\u001b[38;5;28mvars\u001b[39m, attrs\u001b[38;5;241m=\u001b[39mattrs)\n",
- "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/conventions.py:462\u001b[0m, in \u001b[0;36mdecode_cf_variables\u001b[0;34m(variables, attributes, concat_characters, mask_and_scale, decode_times, decode_coords, drop_variables, use_cftime, decode_timedelta)\u001b[0m\n\u001b[1;32m 451\u001b[0m new_vars[k] \u001b[38;5;241m=\u001b[39m decode_cf_variable(\n\u001b[1;32m 452\u001b[0m k,\n\u001b[1;32m 453\u001b[0m v,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 459\u001b[0m decode_timedelta\u001b[38;5;241m=\u001b[39m_item_or_default(decode_timedelta, k, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[1;32m 460\u001b[0m )\n\u001b[1;32m 461\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m--> 462\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mtype\u001b[39m(e)(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFailed to decode variable \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mk\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00me\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01me\u001b[39;00m\n\u001b[1;32m 463\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m decode_coords \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;28;01mTrue\u001b[39;00m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcoordinates\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mall\u001b[39m\u001b[38;5;124m\"\u001b[39m]:\n\u001b[1;32m 464\u001b[0m var_attrs \u001b[38;5;241m=\u001b[39m new_vars[k]\u001b[38;5;241m.\u001b[39mattrs\n",
- "\u001b[0;31merror\u001b[0m: Failed to decode variable 'time': Error -3 while decompressing data: unknown compression method"
- ]
- }
- ],
+ "outputs": [],
"source": [
"ds = xr.open_zarr(read_store, consolidated=False, zarr_format=3)\n",
"ds"
@@ -1293,9 +361,9 @@
],
"metadata": {
"kernelspec": {
- "display_name": "venv",
+ "display_name": "virtualizarr",
"language": "python",
- "name": "venv"
+ "name": "virtualizarr"
},
"language_info": {
"codemirror_mode": {
@@ -1307,7 +375,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.12.7"
+ "version": "3.11.10"
}
},
"nbformat": 4,