How to read data from STAC#
This notebook shows how to read the data in from a STAC asset using xarray and a little hidden helper library called xpystac.
tl;dr#
For any PySTAC asset that can be represented as an xarray dataset you can read the data using the following command:
xr.open_dataset(asset)
If you want to load multiple assets from the same item and/or many items at once use:
odc.stac.load([items])
Dependencies#
There are lots of optional dependencies depending on where and how the data you are interested in are stored. Here are some of the libraries that you will probably need:
dask - to delay data loading until access
pystac - STAC object structures
xarray, rioxarray - data structures
xpystac, odc-stac - helper for loading pystac into xarray objects
Despite all these install instructions, the import block is very straightforward
[1]:
import odc.stac
import planetary_computer
import rioxarray
import xarray as xr
import pystac
Examples#
Here are a few examples of the different types of objects that you can open in xarray.
COGs#
Read all the data from the COGs referenced by the assets on an item.
[2]:
landsat_item = pystac.Item.from_file(
"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_088084_20230408_02_T2",
)
ds = odc.stac.load(
[landsat_item], chunks={"x": 1024, "y": 1024}, patch_url=planetary_computer.sign
)
ds
[2]:
<xarray.Dataset> Size: 2GB
Dimensions: (y: 7801, x: 7761, time: 1)
Coordinates:
* y (y) float64 62kB -3.713e+06 -3.713e+06 ... -3.947e+06
* x (x) float64 62kB 3.774e+05 3.774e+05 ... 6.102e+05 6.102e+05
spatial_ref int32 4B 32656
* time (time) datetime64[ns] 8B 2023-04-08T23:37:51.630731
Data variables: (12/19)
qa (time, y, x) int16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
red (time, y, x) uint16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
blue (time, y, x) uint16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
drad (time, y, x) int16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
emis (time, y, x) int16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
emsd (time, y, x) int16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
... ...
swir16 (time, y, x) uint16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
swir22 (time, y, x) uint16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
coastal (time, y, x) uint16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
qa_pixel (time, y, x) uint16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
qa_radsat (time, y, x) uint16 121MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
qa_aerosol (time, y, x) uint8 61MB dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>- y: 7801
- x: 7761
- time: 1
- y(y)float64-3.713e+06 ... -3.947e+06
- units :
- metre
- resolution :
- -30.0
- crs :
- EPSG:32656
array([-3713100., -3713130., -3713160., ..., -3947040., -3947070., -3947100.], shape=(7801,)) - x(x)float643.774e+05 3.774e+05 ... 6.102e+05
- units :
- metre
- resolution :
- 30.0
- crs :
- EPSG:32656
array([377400., 377430., 377460., ..., 610140., 610170., 610200.], shape=(7761,)) - spatial_ref()int3232656
- spatial_ref :
- PROJCRS["WGS 84 / UTM zone 56N",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["UTM zone 56N",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",153,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",0.9996,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",500000,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Navigation and medium accuracy spatial referencing."],AREA["Between 150°E and 156°E, northern hemisphere between equator and 84°N, onshore and offshore. Russian Federation."],BBOX[0,150,84,156]],ID["EPSG",32656]]
- crs_wkt :
- PROJCRS["WGS 84 / UTM zone 56N",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["UTM zone 56N",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",153,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",0.9996,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",500000,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Navigation and medium accuracy spatial referencing."],AREA["Between 150°E and 156°E, northern hemisphere between equator and 84°N, onshore and offshore. Russian Federation."],BBOX[0,150,84,156]],ID["EPSG",32656]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- WGS 84
- horizontal_datum_name :
- World Geodetic System 1984 ensemble
- projected_crs_name :
- WGS 84 / UTM zone 56N
- grid_mapping_name :
- transverse_mercator
- latitude_of_projection_origin :
- 0.0
- longitude_of_central_meridian :
- 153.0
- false_easting :
- 500000.0
- false_northing :
- 0.0
- scale_factor_at_central_meridian :
- 0.9996
- GeoTransform :
- 377385 30 0 -3713085 0 -30
array(32656, dtype=int32)
- time(time)datetime64[ns]2023-04-08T23:37:51.630731
array(['2023-04-08T23:37:51.630731000'], dtype='datetime64[ns]')
- qa(time, y, x)int16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- -9999
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type int16 numpy.ndarray - red(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 0
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - blue(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 0
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - drad(time, y, x)int16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- -9999
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type int16 numpy.ndarray - emis(time, y, x)int16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- -9999
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type int16 numpy.ndarray - emsd(time, y, x)int16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- -9999
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type int16 numpy.ndarray - trad(time, y, x)int16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- -9999
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type int16 numpy.ndarray - urad(time, y, x)int16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- -9999
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type int16 numpy.ndarray - atran(time, y, x)int16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- -9999
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type int16 numpy.ndarray - cdist(time, y, x)int16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- -9999
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type int16 numpy.ndarray - green(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 0
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - nir08(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 0
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - lwir11(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 0
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - swir16(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 0
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - swir22(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 0
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - coastal(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 0
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - qa_pixel(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 1
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - qa_radsat(time, y, x)uint16dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
Array Chunk Bytes 115.48 MiB 2.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint16 numpy.ndarray - qa_aerosol(time, y, x)uint8dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
- nodata :
- 1
Array Chunk Bytes 57.74 MiB 1.00 MiB Shape (1, 7801, 7761) (1, 1024, 1024) Dask graph 64 chunks in 3 graph layers Data type uint8 numpy.ndarray
- yPandasIndex
PandasIndex(Index([-3713100.0, -3713130.0, -3713160.0, -3713190.0, -3713220.0, -3713250.0, -3713280.0, -3713310.0, -3713340.0, -3713370.0, ... -3946830.0, -3946860.0, -3946890.0, -3946920.0, -3946950.0, -3946980.0, -3947010.0, -3947040.0, -3947070.0, -3947100.0], dtype='float64', name='y', length=7801)) - xPandasIndex
PandasIndex(Index([377400.0, 377430.0, 377460.0, 377490.0, 377520.0, 377550.0, 377580.0, 377610.0, 377640.0, 377670.0, ... 609930.0, 609960.0, 609990.0, 610020.0, 610050.0, 610080.0, 610110.0, 610140.0, 610170.0, 610200.0], dtype='float64', name='x', length=7761)) - timePandasIndex
PandasIndex(DatetimeIndex(['2023-04-08 23:37:51.630731'], dtype='datetime64[ns]', name='time', freq=None))
Let’s prove that we really can access the data within the COGs.
[3]:
%%time
ds.blue.mean().compute()
CPU times: user 2.68 s, sys: 459 ms, total: 3.14 s
Wall time: 5.31 s
[3]:
<xarray.DataArray 'blue' ()> Size: 8B
array(13940.01841915)
Coordinates:
spatial_ref int32 4B 32656- 1.394e+04
array(13940.01841915)
- spatial_ref()int3232656
- spatial_ref :
- PROJCRS["WGS 84 / UTM zone 56N",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["UTM zone 56N",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",153,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",0.9996,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",500000,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Navigation and medium accuracy spatial referencing."],AREA["Between 150°E and 156°E, northern hemisphere between equator and 84°N, onshore and offshore. Russian Federation."],BBOX[0,150,84,156]],ID["EPSG",32656]]
- crs_wkt :
- PROJCRS["WGS 84 / UTM zone 56N",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["UTM zone 56N",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",153,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",0.9996,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",500000,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Navigation and medium accuracy spatial referencing."],AREA["Between 150°E and 156°E, northern hemisphere between equator and 84°N, onshore and offshore. Russian Federation."],BBOX[0,150,84,156]],ID["EPSG",32656]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- WGS 84
- horizontal_datum_name :
- World Geodetic System 1984 ensemble
- projected_crs_name :
- WGS 84 / UTM zone 56N
- grid_mapping_name :
- transverse_mercator
- latitude_of_projection_origin :
- 0.0
- longitude_of_central_meridian :
- 153.0
- false_easting :
- 500000.0
- false_northing :
- 0.0
- scale_factor_at_central_meridian :
- 0.9996
- GeoTransform :
- 377385 30 0 -3713085 0 -30
array(32656, dtype=int32)
For more control over the individual COGs referenced by the assets, you can grab the href off the asset, sign it and then use it directly.
[4]:
landsat_asset = landsat_item.assets["blue"]
landsat_asset_href = planetary_computer.sign(landsat_asset).href
da = rioxarray.open_rasterio(landsat_asset_href, overview_level=5)
da
[4]:
<xarray.DataArray (band: 1, y: 122, x: 122)> Size: 30kB
[14884 values with dtype=uint16]
Coordinates:
* band (band) int64 8B 1
* x (x) float64 976B 3.783e+05 3.802e+05 ... 6.074e+05 6.093e+05
* y (y) float64 976B -3.714e+06 -3.716e+06 ... -3.946e+06
spatial_ref int64 8B 0
Attributes:
AREA_OR_POINT: Point
_FillValue: 0
scale_factor: 1.0
add_offset: 0.0- band: 1
- y: 122
- x: 122
- ...
[14884 values with dtype=uint16]
- band(band)int641
array([1])
- x(x)float643.783e+05 3.802e+05 ... 6.093e+05
array([378339.221311, 380247.663934, 382156.106557, 384064.54918 , 385972.991803, 387881.434426, 389789.877049, 391698.319672, 393606.762295, 395515.204918, 397423.647541, 399332.090164, 401240.532787, 403148.97541 , 405057.418033, 406965.860656, 408874.303279, 410782.745902, 412691.188525, 414599.631148, 416508.07377 , 418416.516393, 420324.959016, 422233.401639, 424141.844262, 426050.286885, 427958.729508, 429867.172131, 431775.614754, 433684.057377, 435592.5 , 437500.942623, 439409.385246, 441317.827869, 443226.270492, 445134.713115, 447043.155738, 448951.598361, 450860.040984, 452768.483607, 454676.92623 , 456585.368852, 458493.811475, 460402.254098, 462310.696721, 464219.139344, 466127.581967, 468036.02459 , 469944.467213, 471852.909836, 473761.352459, 475669.795082, 477578.237705, 479486.680328, 481395.122951, 483303.565574, 485212.008197, 487120.45082 , 489028.893443, 490937.336066, 492845.778689, 494754.221311, 496662.663934, 498571.106557, 500479.54918 , 502387.991803, 504296.434426, 506204.877049, 508113.319672, 510021.762295, 511930.204918, 513838.647541, 515747.090164, 517655.532787, 519563.97541 , 521472.418033, 523380.860656, 525289.303279, 527197.745902, 529106.188525, 531014.631148, 532923.07377 , 534831.516393, 536739.959016, 538648.401639, 540556.844262, 542465.286885, 544373.729508, 546282.172131, 548190.614754, 550099.057377, 552007.5 , 553915.942623, 555824.385246, 557732.827869, 559641.270492, 561549.713115, 563458.155738, 565366.598361, 567275.040984, 569183.483607, 571091.92623 , 573000.368852, 574908.811475, 576817.254098, 578725.696721, 580634.139344, 582542.581967, 584451.02459 , 586359.467213, 588267.909836, 590176.352459, 592084.795082, 593993.237705, 595901.680328, 597810.122951, 599718.565574, 601627.008197, 603535.45082 , 605443.893443, 607352.336066, 609260.778689]) - y(y)float64-3.714e+06 ... -3.946e+06
array([-3714044.139344, -3715962.418033, -3717880.696721, -3719798.97541 , -3721717.254098, -3723635.532787, -3725553.811475, -3727472.090164, -3729390.368852, -3731308.647541, -3733226.92623 , -3735145.204918, -3737063.483607, -3738981.762295, -3740900.040984, -3742818.319672, -3744736.598361, -3746654.877049, -3748573.155738, -3750491.434426, -3752409.713115, -3754327.991803, -3756246.270492, -3758164.54918 , -3760082.827869, -3762001.106557, -3763919.385246, -3765837.663934, -3767755.942623, -3769674.221311, -3771592.5 , -3773510.778689, -3775429.057377, -3777347.336066, -3779265.614754, -3781183.893443, -3783102.172131, -3785020.45082 , -3786938.729508, -3788857.008197, -3790775.286885, -3792693.565574, -3794611.844262, -3796530.122951, -3798448.401639, -3800366.680328, -3802284.959016, -3804203.237705, -3806121.516393, -3808039.795082, -3809958.07377 , -3811876.352459, -3813794.631148, -3815712.909836, -3817631.188525, -3819549.467213, -3821467.745902, -3823386.02459 , -3825304.303279, -3827222.581967, -3829140.860656, -3831059.139344, -3832977.418033, -3834895.696721, -3836813.97541 , -3838732.254098, -3840650.532787, -3842568.811475, -3844487.090164, -3846405.368852, -3848323.647541, -3850241.92623 , -3852160.204918, -3854078.483607, -3855996.762295, -3857915.040984, -3859833.319672, -3861751.598361, -3863669.877049, -3865588.155738, -3867506.434426, -3869424.713115, -3871342.991803, -3873261.270492, -3875179.54918 , -3877097.827869, -3879016.106557, -3880934.385246, -3882852.663934, -3884770.942623, -3886689.221311, -3888607.5 , -3890525.778689, -3892444.057377, -3894362.336066, -3896280.614754, -3898198.893443, -3900117.172131, -3902035.45082 , -3903953.729508, -3905872.008197, -3907790.286885, -3909708.565574, -3911626.844262, -3913545.122951, -3915463.401639, -3917381.680328, -3919299.959016, -3921218.237705, -3923136.516393, -3925054.795082, -3926973.07377 , -3928891.352459, -3930809.631148, -3932727.909836, -3934646.188525, -3936564.467213, -3938482.745902, -3940401.02459 , -3942319.303279, -3944237.581967, -3946155.860656]) - spatial_ref()int640
- crs_wkt :
- PROJCS["WGS 84 / UTM zone 56N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32656"]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- WGS 84
- horizontal_datum_name :
- World Geodetic System 1984
- projected_crs_name :
- WGS 84 / UTM zone 56N
- grid_mapping_name :
- transverse_mercator
- latitude_of_projection_origin :
- 0.0
- longitude_of_central_meridian :
- 153.0
- false_easting :
- 500000.0
- false_northing :
- 0.0
- scale_factor_at_central_meridian :
- 0.9996
- spatial_ref :
- PROJCS["WGS 84 / UTM zone 56N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32656"]]
- GeoTransform :
- 377385.0 1908.4426229508197 0.0 -3713085.0 0.0 -1918.2786885245903
array(0)
- bandPandasIndex
PandasIndex(Index([1], dtype='int64', name='band'))
- xPandasIndex
PandasIndex(Index([ 378339.2213114754, 380247.6639344262, 382156.10655737703, 384064.54918032786, 385972.9918032787, 387881.4344262295, 389789.87704918033, 391698.3196721311, 393606.7622950819, 395515.20491803274, ... 592084.7950819673, 593993.237704918, 595901.6803278688, 597810.1229508197, 599718.5655737704, 601627.0081967213, 603535.4508196721, 605443.8934426229, 607352.3360655737, 609260.7786885246], dtype='float64', name='x', length=122)) - yPandasIndex
PandasIndex(Index([-3714044.1393442624, -3715962.418032787, -3717880.6967213117, -3719798.975409836, -3721717.254098361, -3723635.5327868853, -3725553.81147541, -3727472.0901639345, -3729390.3688524594, -3731308.6475409837, ... -3928891.3524590167, -3930809.631147541, -3932727.909836066, -3934646.1885245903, -3936564.4672131147, -3938482.7459016396, -3940401.024590164, -3942319.303278689, -3944237.581967213, -3946155.860655738], dtype='float64', name='y', length=122))
- AREA_OR_POINT :
- Point
- _FillValue :
- 0
- scale_factor :
- 1.0
- add_offset :
- 0.0
[5]:
%%time
da.mean()
CPU times: user 3.44 ms, sys: 0 ns, total: 3.44 ms
Wall time: 186 ms
[5]:
<xarray.DataArray ()> Size: 8B
array(14472.21996775)
Coordinates:
spatial_ref int64 8B 0- 1.447e+04
array(14472.21996775)
- spatial_ref()int640
- crs_wkt :
- PROJCS["WGS 84 / UTM zone 56N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32656"]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- WGS 84
- horizontal_datum_name :
- World Geodetic System 1984
- projected_crs_name :
- WGS 84 / UTM zone 56N
- grid_mapping_name :
- transverse_mercator
- latitude_of_projection_origin :
- 0.0
- longitude_of_central_meridian :
- 153.0
- false_easting :
- 500000.0
- false_northing :
- 0.0
- scale_factor_at_central_meridian :
- 0.9996
- spatial_ref :
- PROJCS["WGS 84 / UTM zone 56N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32656"]]
- GeoTransform :
- 377385.0 1908.4426229508197 0.0 -3713085.0 0.0 -1918.2786885245903
array(0)
Zarr#
Read from an asset that references data stored in zarr
[6]:
daymet_collection = pystac.Collection.from_file(
"https://planetarycomputer.microsoft.com/api/stac/v1/collections/daymet-daily-hi"
)
daymet_asset = daymet_collection.assets["zarr-abfs"]
daymet_asset_signed = planetary_computer.sign(daymet_asset)
ds = xr.open_dataset(daymet_asset_signed, chunks={})
ds
[6]:
<xarray.Dataset> Size: 69GB
Dimensions: (time: 14965, y: 584, x: 284, nv: 2)
Coordinates:
lat (y, x) float32 663kB dask.array<chunksize=(584, 284), meta=np.ndarray>
lon (y, x) float32 663kB dask.array<chunksize=(584, 284), meta=np.ndarray>
* time (time) datetime64[ns] 120kB 1980-01-01T12:00:00 ...
* x (x) float32 1kB -5.802e+06 ... -5.519e+06
* y (y) float32 2kB -3.9e+04 -4e+04 ... -6.22e+05
Dimensions without coordinates: nv
Data variables:
dayl (time, y, x) float32 10GB dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
lambert_conformal_conic int16 2B ...
prcp (time, y, x) float32 10GB dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
srad (time, y, x) float32 10GB dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
swe (time, y, x) float32 10GB dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
time_bnds (time, nv) datetime64[ns] 239kB dask.array<chunksize=(365, 2), meta=np.ndarray>
tmax (time, y, x) float32 10GB dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
tmin (time, y, x) float32 10GB dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
vp (time, y, x) float32 10GB dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
yearday (time) int16 30kB dask.array<chunksize=(365,), meta=np.ndarray>
Attributes:
Conventions: CF-1.6
Version_data: Daymet Data Version 4.0
Version_software: Daymet Software Version 4.0
citation: Please see http://daymet.ornl.gov/ for current Daymet ...
references: Please see http://daymet.ornl.gov/ for current informa...
source: Daymet Software Version 4.0
start_year: 1980- time: 14965
- y: 584
- x: 284
- nv: 2
- lat(y, x)float32dask.array<chunksize=(584, 284), meta=np.ndarray>
- long_name :
- latitude coordinate
- standard_name :
- latitude
- units :
- degrees_north
Array Chunk Bytes 647.88 kiB 647.88 kiB Shape (584, 284) (584, 284) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray - lon(y, x)float32dask.array<chunksize=(584, 284), meta=np.ndarray>
- long_name :
- longitude coordinate
- standard_name :
- longitude
- units :
- degrees_east
Array Chunk Bytes 647.88 kiB 647.88 kiB Shape (584, 284) (584, 284) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray - time(time)datetime64[ns]1980-01-01T12:00:00 ... 2020-12-...
- bounds :
- time_bnds
- long_name :
- 24-hour day based on local time
- standard_name :
- time
array(['1980-01-01T12:00:00.000000000', '1980-01-02T12:00:00.000000000', '1980-01-03T12:00:00.000000000', ..., '2020-12-28T12:00:00.000000000', '2020-12-29T12:00:00.000000000', '2020-12-30T12:00:00.000000000'], shape=(14965,), dtype='datetime64[ns]') - x(x)float32-5.802e+06 ... -5.519e+06
- long_name :
- x coordinate of projection
- standard_name :
- projection_x_coordinate
- units :
- m
array([-5802250., -5801250., -5800250., ..., -5521250., -5520250., -5519250.], shape=(284,), dtype=float32) - y(y)float32-3.9e+04 -4e+04 ... -6.22e+05
- long_name :
- y coordinate of projection
- standard_name :
- projection_y_coordinate
- units :
- m
array([ -39000., -40000., -41000., ..., -620000., -621000., -622000.], shape=(584,), dtype=float32)
- dayl(time, y, x)float32dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
- cell_methods :
- area: mean
- grid_mapping :
- lambert_conformal_conic
- long_name :
- daylength
- units :
- s
Array Chunk Bytes 9.25 GiB 230.93 MiB Shape (14965, 584, 284) (365, 584, 284) Dask graph 41 chunks in 2 graph layers Data type float32 numpy.ndarray - lambert_conformal_conic()int16...
- false_easting :
- 0.0
- false_northing :
- 0.0
- grid_mapping_name :
- lambert_conformal_conic
- inverse_flattening :
- 298.257223563
- latitude_of_projection_origin :
- 42.5
- longitude_of_central_meridian :
- -100.0
- semi_major_axis :
- 6378137.0
- standard_parallel :
- [25.0, 60.0]
[1 values with dtype=int16]
- prcp(time, y, x)float32dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
- cell_methods :
- area: mean time: sum
- grid_mapping :
- lambert_conformal_conic
- long_name :
- daily total precipitation
- units :
- mm/day
Array Chunk Bytes 9.25 GiB 230.93 MiB Shape (14965, 584, 284) (365, 584, 284) Dask graph 41 chunks in 2 graph layers Data type float32 numpy.ndarray - srad(time, y, x)float32dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
- cell_methods :
- area: mean time: mean
- grid_mapping :
- lambert_conformal_conic
- long_name :
- daylight average incident shortwave radiation
- units :
- W/m2
Array Chunk Bytes 9.25 GiB 230.93 MiB Shape (14965, 584, 284) (365, 584, 284) Dask graph 41 chunks in 2 graph layers Data type float32 numpy.ndarray - swe(time, y, x)float32dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
- cell_methods :
- area: mean time: mean
- grid_mapping :
- lambert_conformal_conic
- long_name :
- snow water equivalent
- units :
- kg/m2
Array Chunk Bytes 9.25 GiB 230.93 MiB Shape (14965, 584, 284) (365, 584, 284) Dask graph 41 chunks in 2 graph layers Data type float32 numpy.ndarray - time_bnds(time, nv)datetime64[ns]dask.array<chunksize=(365, 2), meta=np.ndarray>
Array Chunk Bytes 233.83 kiB 5.70 kiB Shape (14965, 2) (365, 2) Dask graph 41 chunks in 2 graph layers Data type datetime64[ns] numpy.ndarray - tmax(time, y, x)float32dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
- cell_methods :
- area: mean time: maximum
- grid_mapping :
- lambert_conformal_conic
- long_name :
- daily maximum temperature
- units :
- degrees C
Array Chunk Bytes 9.25 GiB 230.93 MiB Shape (14965, 584, 284) (365, 584, 284) Dask graph 41 chunks in 2 graph layers Data type float32 numpy.ndarray - tmin(time, y, x)float32dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
- cell_methods :
- area: mean time: minimum
- grid_mapping :
- lambert_conformal_conic
- long_name :
- daily minimum temperature
- units :
- degrees C
Array Chunk Bytes 9.25 GiB 230.93 MiB Shape (14965, 584, 284) (365, 584, 284) Dask graph 41 chunks in 2 graph layers Data type float32 numpy.ndarray - vp(time, y, x)float32dask.array<chunksize=(365, 584, 284), meta=np.ndarray>
- cell_methods :
- area: mean time: mean
- grid_mapping :
- lambert_conformal_conic
- long_name :
- daily average vapor pressure
- units :
- Pa
Array Chunk Bytes 9.25 GiB 230.93 MiB Shape (14965, 584, 284) (365, 584, 284) Dask graph 41 chunks in 2 graph layers Data type float32 numpy.ndarray - yearday(time)int16dask.array<chunksize=(365,), meta=np.ndarray>
- long_name :
- day of year (DOY) starting with day 1 on Januaray 1st
Array Chunk Bytes 29.23 kiB 730 B Shape (14965,) (365,) Dask graph 41 chunks in 2 graph layers Data type int16 numpy.ndarray
- timePandasIndex
PandasIndex(DatetimeIndex(['1980-01-01 12:00:00', '1980-01-02 12:00:00', '1980-01-03 12:00:00', '1980-01-04 12:00:00', '1980-01-05 12:00:00', '1980-01-06 12:00:00', '1980-01-07 12:00:00', '1980-01-08 12:00:00', '1980-01-09 12:00:00', '1980-01-10 12:00:00', ... '2020-12-21 12:00:00', '2020-12-22 12:00:00', '2020-12-23 12:00:00', '2020-12-24 12:00:00', '2020-12-25 12:00:00', '2020-12-26 12:00:00', '2020-12-27 12:00:00', '2020-12-28 12:00:00', '2020-12-29 12:00:00', '2020-12-30 12:00:00'], dtype='datetime64[ns]', name='time', length=14965, freq=None)) - xPandasIndex
PandasIndex(Index([-5802250.0, -5801250.0, -5800250.0, -5799250.0, -5798250.0, -5797250.0, -5796250.0, -5795250.0, -5794250.0, -5793250.0, ... -5528250.0, -5527250.0, -5526250.0, -5525250.0, -5524250.0, -5523250.0, -5522250.0, -5521250.0, -5520250.0, -5519250.0], dtype='float32', name='x', length=284)) - yPandasIndex
PandasIndex(Index([ -39000.0, -40000.0, -41000.0, -42000.0, -43000.0, -44000.0, -45000.0, -46000.0, -47000.0, -48000.0, ... -613000.0, -614000.0, -615000.0, -616000.0, -617000.0, -618000.0, -619000.0, -620000.0, -621000.0, -622000.0], dtype='float32', name='y', length=584))
- Conventions :
- CF-1.6
- Version_data :
- Daymet Data Version 4.0
- Version_software :
- Daymet Software Version 4.0
- citation :
- Please see http://daymet.ornl.gov/ for current Daymet data citation information
- references :
- Please see http://daymet.ornl.gov/ for current information on Daymet references
- source :
- Daymet Software Version 4.0
- start_year :
- 1980
Reference file#
If the collection has a reference file we can use that.
This will not work for kerchunk>=0.2.8 and xpystac<=0.2.0. Track the xpystac ticket here: xpystac #48
[7]:
cmip6_collection = pystac.Collection.from_file(
"https://planetarycomputer.microsoft.com/api/stac/v1/collections/nasa-nex-gddp-cmip6"
)
cmip6_asset = cmip6_collection.assets["ACCESS-CM2.historical"]
cmip6_asset_signed = planetary_computer.sign(cmip6_asset)
ds = xr.open_dataset(cmip6_asset_signed, chunks={}, patch_url=planetary_computer.sign)
ds
[7]:
<xarray.Dataset> Size: 738GB
Dimensions: (time: 23741, lat: 600, lon: 1440)
Coordinates:
* lat (lat) float64 5kB -59.88 -59.62 -59.38 -59.12 ... 89.38 89.62 89.88
* lon (lon) float64 12kB 0.125 0.375 0.625 0.875 ... 359.4 359.6 359.9
* time (time) datetime64[us] 190kB 1950-01-01T12:00:00 ... 2014-12-31T1...
Data variables:
hurs (time, lat, lon) float32 82GB dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
huss (time, lat, lon) float32 82GB dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
pr (time, lat, lon) float32 82GB dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
rlds (time, lat, lon) float32 82GB dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
rsds (time, lat, lon) float32 82GB dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
sfcWind (time, lat, lon) float32 82GB dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
tas (time, lat, lon) float32 82GB dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
tasmax (time, lat, lon) float32 82GB dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
tasmin (time, lat, lon) float32 82GB dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
Attributes: (12/22)
Conventions: CF-1.7
activity: NEX-GDDP-CMIP6
cmip6_institution_id: CSIRO-ARCCSS
cmip6_license: CC-BY-SA 4.0
cmip6_source_id: ACCESS-CM2
contact: Dr. Rama Nemani: rama.nemani@nasa.gov, Dr. Bridget...
... ...
scenario: historical
source: BCSD
title: ACCESS-CM2, r1i1p1f1, historical, global downscale...
tracking_id: 16d27564-470f-41ea-8077-f4cc3efa5bfe
variant_label: r1i1p1f1
version: 1.0- time: 23741
- lat: 600
- lon: 1440
- lat(lat)float64-59.88 -59.62 ... 89.62 89.88
- axis :
- Y
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([-59.875, -59.625, -59.375, ..., 89.375, 89.625, 89.875], shape=(600,))
- lon(lon)float640.125 0.375 0.625 ... 359.6 359.9
- axis :
- X
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([1.25000e-01, 3.75000e-01, 6.25000e-01, ..., 3.59375e+02, 3.59625e+02, 3.59875e+02], shape=(1440,)) - time(time)datetime64[us]1950-01-01T12:00:00 ... 2014-12-...
- axis :
- T
- long_name :
- time
- standard_name :
- time
- _FillValue :
- 1970-01-01T00:00:00.000000
array(['1950-01-01T12:00:00.000000', '1950-01-02T12:00:00.000000', '1950-01-03T12:00:00.000000', ..., '2014-12-29T12:00:00.000000', '2014-12-30T12:00:00.000000', '2014-12-31T12:00:00.000000'], shape=(23741,), dtype='datetime64[us]')
- hurs(time, lat, lon)float32dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
- cell_measures :
- area: areacella
- cell_methods :
- area: time: mean
- comment :
- The relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.
- long_name :
- Near-Surface Relative Humidity
- standard_name :
- relative_humidity
- units :
- %
Array Chunk Bytes 76.41 GiB 3.30 MiB Shape (23741, 600, 1440) (1, 600, 1440) Dask graph 23741 chunks in 2 graph layers Data type float32 numpy.ndarray - huss(time, lat, lon)float32dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
- cell_measures :
- area: areacella
- cell_methods :
- area: time: mean
- comment :
- Near-surface (usually, 2 meter) specific humidity.
- long_name :
- Near-Surface Specific Humidity
- standard_name :
- specific_humidity
- units :
- 1
Array Chunk Bytes 76.41 GiB 3.30 MiB Shape (23741, 600, 1440) (1, 600, 1440) Dask graph 23741 chunks in 2 graph layers Data type float32 numpy.ndarray - pr(time, lat, lon)float32dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
- cell_measures :
- area: areacella
- cell_methods :
- area: time: mean
- comment :
- includes both liquid and solid phases
- long_name :
- Precipitation
- standard_name :
- precipitation_flux
- units :
- kg m-2 s-1
Array Chunk Bytes 76.41 GiB 3.30 MiB Shape (23741, 600, 1440) (1, 600, 1440) Dask graph 23741 chunks in 2 graph layers Data type float32 numpy.ndarray - rlds(time, lat, lon)float32dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
- cell_measures :
- area: areacella
- cell_methods :
- area: time: mean
- comment :
- The surface called 'surface' means the lower boundary of the atmosphere. 'longwave' means longwave radiation. Downwelling radiation is radiation from above. It does not mean 'net downward'. When thought of as being incident on a surface, a radiative flux is sometimes called 'irradiance'. In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called 'vector irradiance'. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics.
- long_name :
- Surface Downwelling Longwave Radiation
- standard_name :
- surface_downwelling_longwave_flux_in_air
- units :
- W m-2
Array Chunk Bytes 76.41 GiB 3.30 MiB Shape (23741, 600, 1440) (1, 600, 1440) Dask graph 23741 chunks in 2 graph layers Data type float32 numpy.ndarray - rsds(time, lat, lon)float32dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
- cell_measures :
- area: areacella
- cell_methods :
- area: time: mean
- comment :
- Surface solar irradiance for UV calculations.
- long_name :
- Surface Downwelling Shortwave Radiation
- standard_name :
- surface_downwelling_shortwave_flux_in_air
- units :
- W m-2
Array Chunk Bytes 76.41 GiB 3.30 MiB Shape (23741, 600, 1440) (1, 600, 1440) Dask graph 23741 chunks in 2 graph layers Data type float32 numpy.ndarray - sfcWind(time, lat, lon)float32dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
- cell_measures :
- area: areacella
- cell_methods :
- area: time: mean
- comment :
- near-surface (usually, 10 meters) wind speed.
- long_name :
- Daily-Mean Near-Surface Wind Speed
- standard_name :
- wind_speed
- units :
- m s-1
Array Chunk Bytes 76.41 GiB 3.30 MiB Shape (23741, 600, 1440) (1, 600, 1440) Dask graph 23741 chunks in 2 graph layers Data type float32 numpy.ndarray - tas(time, lat, lon)float32dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
- cell_measures :
- area: areacella
- cell_methods :
- area: mean time: maximum
- comment :
- near-surface (usually, 2 meter) air temperature; derived from downscaled tasmax & tasmin
- long_name :
- Daily Near-Surface Air Temperature
- standard_name :
- air_temperature
- units :
- K
Array Chunk Bytes 76.41 GiB 3.30 MiB Shape (23741, 600, 1440) (1, 600, 1440) Dask graph 23741 chunks in 2 graph layers Data type float32 numpy.ndarray - tasmax(time, lat, lon)float32dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
- cell_measures :
- area: areacella
- cell_methods :
- area: mean time: maximum
- comment :
- maximum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: max')
- long_name :
- Daily Maximum Near-Surface Air Temperature
- standard_name :
- air_temperature
- units :
- K
Array Chunk Bytes 76.41 GiB 3.30 MiB Shape (23741, 600, 1440) (1, 600, 1440) Dask graph 23741 chunks in 2 graph layers Data type float32 numpy.ndarray - tasmin(time, lat, lon)float32dask.array<chunksize=(1, 600, 1440), meta=np.ndarray>
- cell_measures :
- area: areacella
- cell_methods :
- area: mean time: minimum
- comment :
- minimum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: min')
- long_name :
- Daily Minimum Near-Surface Air Temperature
- standard_name :
- air_temperature
- units :
- K
Array Chunk Bytes 76.41 GiB 3.30 MiB Shape (23741, 600, 1440) (1, 600, 1440) Dask graph 23741 chunks in 2 graph layers Data type float32 numpy.ndarray
- latPandasIndex
PandasIndex(Index([-59.875, -59.625, -59.375, -59.125, -58.875, -58.625, -58.375, -58.125, -57.875, -57.625, ... 87.625, 87.875, 88.125, 88.375, 88.625, 88.875, 89.125, 89.375, 89.625, 89.875], dtype='float64', name='lat', length=600)) - lonPandasIndex
PandasIndex(Index([ 0.125, 0.375, 0.625, 0.875, 1.125, 1.375, 1.625, 1.875, 2.125, 2.375, ... 357.625, 357.875, 358.125, 358.375, 358.625, 358.875, 359.125, 359.375, 359.625, 359.875], dtype='float64', name='lon', length=1440)) - timePandasIndex
PandasIndex(DatetimeIndex(['1950-01-01 12:00:00', '1950-01-02 12:00:00', '1950-01-03 12:00:00', '1950-01-04 12:00:00', '1950-01-05 12:00:00', '1950-01-06 12:00:00', '1950-01-07 12:00:00', '1950-01-08 12:00:00', '1950-01-09 12:00:00', '1950-01-10 12:00:00', ... '2014-12-22 12:00:00', '2014-12-23 12:00:00', '2014-12-24 12:00:00', '2014-12-25 12:00:00', '2014-12-26 12:00:00', '2014-12-27 12:00:00', '2014-12-28 12:00:00', '2014-12-29 12:00:00', '2014-12-30 12:00:00', '2014-12-31 12:00:00'], dtype='datetime64[us]', name='time', length=23741, freq=None))
- Conventions :
- CF-1.7
- activity :
- NEX-GDDP-CMIP6
- cmip6_institution_id :
- CSIRO-ARCCSS
- cmip6_license :
- CC-BY-SA 4.0
- cmip6_source_id :
- ACCESS-CM2
- contact :
- Dr. Rama Nemani: rama.nemani@nasa.gov, Dr. Bridget Thrasher: bridget@climateanalyticsgroup.org
- creation_date :
- 2021-10-04T13:59:21.654137+00:00
- disclaimer :
- This data is considered provisional and subject to change. This data is provided as is without any warranty of any kind, either express or implied, arising by law or otherwise, including but not limited to warranties of completeness, non-infringement, accuracy, merchantability, or fitness for a particular purpose. The user assumes all risk associated with the use of, or inability to use, this data.
- external_variables :
- areacella
- frequency :
- day
- history :
- 2021-10-04T13:59:21.654137+00:00: install global attributes
- institution :
- NASA Earth Exchange, NASA Ames Research Center, Moffett Field, CA 94035
- product :
- output
- realm :
- atmos
- references :
- BCSD method: Thrasher et al., 2012, Hydrol. Earth Syst. Sci.,16, 3309-3314. Ref period obs: latest version of the Princeton Global Meteorological Forcings (http://hydrology.princeton.edu/data.php), based on Sheffield et al., 2006, J. Climate, 19 (13), 3088-3111.
- resolution_id :
- 0.25 degree
- scenario :
- historical
- source :
- BCSD
- title :
- ACCESS-CM2, r1i1p1f1, historical, global downscaled CMIP6 climate projection data
- tracking_id :
- 16d27564-470f-41ea-8077-f4cc3efa5bfe
- variant_label :
- r1i1p1f1
- version :
- 1.0