import requests
from pystac_client import Client
import pandas as pd
import stackstac
import rioxarray # noqa
import hvplot.xarray # noqa
Open and visualize COGs
pystac_client
, rioxarray
, stackstac
, and hvplot
Julia Signell
February 2, 2023
Run this notebook
You can launch this notebook in VEDA JupyterHub by clicking the link below.
Launch in VEDA JupyterHub (requires access)
Learn more
Inside the Hub
This notebook was written on the VEDA JupyterHub and as such is designed to be run on a jupyterhub which is associated with an AWS IAM role which has been granted permissions to the VEDA data store via its bucket policy. The instance used provided 16GB of RAM.
See (VEDA Analytics JupyterHub Access)[https://nasa-impact.github.io/veda-docs/veda-jh-access.html] for information about how to gain access.
Outside the Hub
The data is in a protected bucket. Please request access by emailng aimee@developmentseed.org or alexandra@developmentseed.org and providing your affiliation, interest in or expected use of the dataset and an AWS IAM role or user Amazon Resource Name (ARN). The team will help you configure the cognito client.
You should then run:
%run -i 'cognito_login.py'
Approach
- Use
pystac_client
to open the STAC catalog and retrieve the items in the collection - Use
stackstac
to create anxarray
dataset containing all the items - Use
rioxarray
to crop data to AOI - Use
hvplot
to render the COG at every timestep
Declare your collection of interest
You can discover available collections the following ways:
- Programmatically: see example in the
list-collections.ipynb
notebook - JSON API: https://openveda.cloud/api/stac/collections
- STAC Browser: https://openveda.cloud
Discover items in collection for region and time of interest
Use pystac_client
to search the STAC collection for a particular area of interest within specified datetime bounds.
Define an AOI
We can fetch GeoJSON for metropolitan France and Corsica (excluding overseas territories) from an authoritative online source (https://gadm.org/download_country.html).
response = requests.get(
"https://geodata.ucdavis.edu/gadm/gadm4.1/json/gadm41_FRA_0.json"
)
# If anything goes wrong with this request output error contents
assert response.ok, response.text
result = response.json()
print(f"There are {len(result['features'])} features in this collection")
There are 1 features in this collection
That is the geojson for a feature collection, but since there is only one feature in it we can grab just that.
Read data
Create an xarray.DataArray
using stackstac
da = stackstac.stack(item_collection, epsg=4326)
da = da.assign_coords({"time": da.start_datetime}).squeeze()
da
<xarray.DataArray 'stackstac-732215043b0b95a370dc66f3493b95b0' (time: 93, y: 1800, x: 3600)> Size: 5GB dask.array<getitem, shape=(93, 1800, 3600), dtype=float64, chunksize=(1, 1024, 1024), chunktype=numpy.ndarray> Coordinates: (12/17) id (time) <U37 14kB 'OMI_trno2_0.10x0.10_201601_Col3_V4.nc' ... band <U11 44B 'cog_default' * x (x) float64 29kB -180.0 -179.9 -179.8 ... 179.7 179.8 179.9 * y (y) float64 14kB 90.0 89.9 89.8 89.7 ... -89.7 -89.8 -89.9 end_datetime (time) <U25 9kB '2016-01-31T00:00:00+00:00' ... '2023-09-... start_datetime (time) <U25 9kB '2016-01-01T00:00:00+00:00' ... '2023-09-... ... ... proj:geometry object 8B {'type': 'Polygon', 'coordinates': [[[-180.0, -... proj:code <U9 36B 'EPSG:4326' proj:transform object 8B {0.1, 0.0, 1.0, -0.1, -180.0, 90.0} title <U17 68B 'Default COG Layer' epsg int64 8B 4326 * time (time) <U25 9kB '2016-01-01T00:00:00+00:00' ... '2023-09-... Attributes: spec: RasterSpec(epsg=4326, bounds=(-180.0, -90.0, 180.0, 90.0), r... crs: epsg:4326 transform: | 0.10, 0.00,-180.00|\n| 0.00,-0.10, 90.00|\n| 0.00, 0.00, 1... resolution: 0.1
- time: 93
- y: 1800
- x: 3600
- dask.array<chunksize=(1, 1024, 1024), meta=np.ndarray>
Array Chunk Bytes 4.49 GiB 8.00 MiB Shape (93, 1800, 3600) (1, 1024, 1024) Dask graph 744 chunks in 4 graph layers Data type float64 numpy.ndarray - id(time)<U37'OMI_trno2_0.10x0.10_201601_Col3...
array(['OMI_trno2_0.10x0.10_201601_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201602_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201603_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201604_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201605_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201606_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201607_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201608_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201609_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201610_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201611_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201612_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201701_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201702_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201703_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201704_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201705_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201706_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201707_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201708_Col3_V4.nc', ... 'OMI_trno2_0.10x0.10_202202_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202203_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202204_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202205_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202206_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202207_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202208_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202209_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202210_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202211_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202212_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202301_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202302_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202303_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202304_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202305_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202306_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202307_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202308_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202309_Col3_V4.nc'], dtype='<U37')
- band()<U11'cog_default'
array('cog_default', dtype='<U11')
- x(x)float64-180.0 -179.9 ... 179.8 179.9
array([-180. , -179.9, -179.8, ..., 179.7, 179.8, 179.9], shape=(3600,))
- y(y)float6490.0 89.9 89.8 ... -89.8 -89.9
array([ 90. , 89.9, 89.8, ..., -89.7, -89.8, -89.9], shape=(1800,))
- end_datetime(time)<U25'2016-01-31T00:00:00+00:00' ... ...
array(['2016-01-31T00:00:00+00:00', '2016-02-29T00:00:00+00:00', '2016-03-31T00:00:00+00:00', '2016-04-30T00:00:00+00:00', '2016-05-31T00:00:00+00:00', '2016-06-30T00:00:00+00:00', '2016-07-31T00:00:00+00:00', '2016-08-31T00:00:00+00:00', '2016-09-30T00:00:00+00:00', '2016-10-31T00:00:00+00:00', '2016-11-30T00:00:00+00:00', '2016-12-31T00:00:00+00:00', '2017-01-31T00:00:00+00:00', '2017-02-28T00:00:00+00:00', '2017-03-31T00:00:00+00:00', '2017-04-30T00:00:00+00:00', '2017-05-31T00:00:00+00:00', '2017-06-30T00:00:00+00:00', '2017-07-31T00:00:00+00:00', '2017-08-31T00:00:00+00:00', '2017-09-30T00:00:00+00:00', '2017-10-31T00:00:00+00:00', '2017-11-30T00:00:00+00:00', '2017-12-31T00:00:00+00:00', '2018-01-31T00:00:00+00:00', '2018-02-28T00:00:00+00:00', '2018-03-31T00:00:00+00:00', '2018-04-30T00:00:00+00:00', '2018-05-31T00:00:00+00:00', '2018-06-30T00:00:00+00:00', '2018-07-31T00:00:00+00:00', '2018-08-31T00:00:00+00:00', '2018-09-30T00:00:00+00:00', '2018-10-31T00:00:00+00:00', '2018-11-30T00:00:00+00:00', '2018-12-31T00:00:00+00:00', '2019-01-31T00:00:00+00:00', '2019-02-28T00:00:00+00:00', '2019-03-31T00:00:00+00:00', '2019-04-30T00:00:00+00:00', ... '2020-07-31T00:00:00+00:00', '2020-08-31T00:00:00+00:00', '2020-09-30T00:00:00+00:00', '2020-10-31T00:00:00+00:00', '2020-11-30T00:00:00+00:00', '2020-12-31T00:00:00+00:00', '2021-01-31T00:00:00+00:00', '2021-02-28T00:00:00+00:00', '2021-03-31T00:00:00+00:00', '2021-04-30T00:00:00+00:00', '2021-05-31T00:00:00+00:00', '2021-06-30T00:00:00+00:00', '2021-07-31T00:00:00+00:00', '2021-08-31T00:00:00+00:00', '2021-09-30T00:00:00+00:00', '2021-10-31T00:00:00+00:00', '2021-11-30T00:00:00+00:00', '2021-12-31T00:00:00+00:00', '2022-01-31T00:00:00+00:00', '2022-02-28T00:00:00+00:00', '2022-03-31T00:00:00+00:00', '2022-04-30T00:00:00+00:00', '2022-05-31T00:00:00+00:00', '2022-06-30T00:00:00+00:00', '2022-07-31T00:00:00+00:00', '2022-08-31T00:00:00+00:00', '2022-09-30T00:00:00+00:00', '2022-10-31T00:00:00+00:00', '2022-11-30T00:00:00+00:00', '2022-12-31T00:00:00+00:00', '2023-01-31T00:00:00+00:00', '2023-02-28T00:00:00+00:00', '2023-03-31T00:00:00+00:00', '2023-04-30T00:00:00+00:00', '2023-05-31T00:00:00+00:00', '2023-06-30T00:00:00+00:00', '2023-07-31T00:00:00+00:00', '2023-08-31T00:00:00+00:00', '2023-09-30T00:00:00+00:00'], dtype='<U25')
- start_datetime(time)<U25'2016-01-01T00:00:00+00:00' ... ...
array(['2016-01-01T00:00:00+00:00', '2016-02-01T00:00:00+00:00', '2016-03-01T00:00:00+00:00', '2016-04-01T00:00:00+00:00', '2016-05-01T00:00:00+00:00', '2016-06-01T00:00:00+00:00', '2016-07-01T00:00:00+00:00', '2016-08-01T00:00:00+00:00', '2016-09-01T00:00:00+00:00', '2016-10-01T00:00:00+00:00', '2016-11-01T00:00:00+00:00', '2016-12-01T00:00:00+00:00', '2017-01-01T00:00:00+00:00', '2017-02-01T00:00:00+00:00', '2017-03-01T00:00:00+00:00', '2017-04-01T00:00:00+00:00', '2017-05-01T00:00:00+00:00', '2017-06-01T00:00:00+00:00', '2017-07-01T00:00:00+00:00', '2017-08-01T00:00:00+00:00', '2017-09-01T00:00:00+00:00', '2017-10-01T00:00:00+00:00', '2017-11-01T00:00:00+00:00', '2017-12-01T00:00:00+00:00', '2018-01-01T00:00:00+00:00', '2018-02-01T00:00:00+00:00', '2018-03-01T00:00:00+00:00', '2018-04-01T00:00:00+00:00', '2018-05-01T00:00:00+00:00', '2018-06-01T00:00:00+00:00', '2018-07-01T00:00:00+00:00', '2018-08-01T00:00:00+00:00', '2018-09-01T00:00:00+00:00', '2018-10-01T00:00:00+00:00', '2018-11-01T00:00:00+00:00', '2018-12-01T00:00:00+00:00', '2019-01-01T00:00:00+00:00', '2019-02-01T00:00:00+00:00', '2019-03-01T00:00:00+00:00', '2019-04-01T00:00:00+00:00', ... '2020-07-01T00:00:00+00:00', '2020-08-01T00:00:00+00:00', '2020-09-01T00:00:00+00:00', '2020-10-01T00:00:00+00:00', '2020-11-01T00:00:00+00:00', '2020-12-01T00:00:00+00:00', '2021-01-01T00:00:00+00:00', '2021-02-01T00:00:00+00:00', '2021-03-01T00:00:00+00:00', '2021-04-01T00:00:00+00:00', '2021-05-01T00:00:00+00:00', '2021-06-01T00:00:00+00:00', '2021-07-01T00:00:00+00:00', '2021-08-01T00:00:00+00:00', '2021-09-01T00:00:00+00:00', '2021-10-01T00:00:00+00:00', '2021-11-01T00:00:00+00:00', '2021-12-01T00:00:00+00:00', '2022-01-01T00:00:00+00:00', '2022-02-01T00:00:00+00:00', '2022-03-01T00:00:00+00:00', '2022-04-01T00:00:00+00:00', '2022-05-01T00:00:00+00:00', '2022-06-01T00:00:00+00:00', '2022-07-01T00:00:00+00:00', '2022-08-01T00:00:00+00:00', '2022-09-01T00:00:00+00:00', '2022-10-01T00:00:00+00:00', '2022-11-01T00:00:00+00:00', '2022-12-01T00:00:00+00:00', '2023-01-01T00:00:00+00:00', '2023-02-01T00:00:00+00:00', '2023-03-01T00:00:00+00:00', '2023-04-01T00:00:00+00:00', '2023-05-01T00:00:00+00:00', '2023-06-01T00:00:00+00:00', '2023-07-01T00:00:00+00:00', '2023-08-01T00:00:00+00:00', '2023-09-01T00:00:00+00:00'], dtype='<U25')
- proj:bbox()object{90.0, 180.0, -90.0, -180.0}
array({90.0, 180.0, -90.0, -180.0}, dtype=object)
- proj:shape()object{1800, 3600}
array({1800, 3600}, dtype=object)
- proj:projjson()object{'id': {'code': 4326, 'authority...
array({'id': {'code': 4326, 'authority': 'EPSG'}, 'name': 'WGS 84', 'type': 'GeographicCRS', 'datum': {'name': 'World Geodetic System 1984', 'type': 'GeodeticReferenceFrame', 'ellipsoid': {'name': 'WGS 84', 'semi_major_axis': 6378137, 'inverse_flattening': 298.257223563}}, '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json', 'coordinate_system': {'axis': [{'name': 'Geodetic latitude', 'unit': 'degree', 'direction': 'north', 'abbreviation': 'Lat'}, {'name': 'Geodetic longitude', 'unit': 'degree', 'direction': 'east', 'abbreviation': 'Lon'}], 'subtype': 'ellipsoidal'}}, dtype=object)
- proj:wkt2()<U277'GEOGCS["WGS 84",DATUM["WGS_1984...
array('GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]', dtype='<U277')
- description()<U47'Cloud optimized default layer t...
array('Cloud optimized default layer to display on map', dtype='<U47')
- proj:geometry()object{'type': 'Polygon', 'coordinates...
array({'type': 'Polygon', 'coordinates': [[[-180.0, -90.0], [180.0, -90.0], [180.0, 90.0], [-180.0, 90.0], [-180.0, -90.0]]]}, dtype=object)
- proj:code()<U9'EPSG:4326'
array('EPSG:4326', dtype='<U9')
- proj:transform()object{0.1, 0.0, 1.0, -0.1, -180.0, 90.0}
array({0.1, 0.0, 1.0, -0.1, -180.0, 90.0}, dtype=object)
- title()<U17'Default COG Layer'
array('Default COG Layer', dtype='<U17')
- epsg()int644326
array(4326)
- time(time)<U25'2016-01-01T00:00:00+00:00' ... ...
array(['2016-01-01T00:00:00+00:00', '2016-02-01T00:00:00+00:00', '2016-03-01T00:00:00+00:00', '2016-04-01T00:00:00+00:00', '2016-05-01T00:00:00+00:00', '2016-06-01T00:00:00+00:00', '2016-07-01T00:00:00+00:00', '2016-08-01T00:00:00+00:00', '2016-09-01T00:00:00+00:00', '2016-10-01T00:00:00+00:00', '2016-11-01T00:00:00+00:00', '2016-12-01T00:00:00+00:00', '2017-01-01T00:00:00+00:00', '2017-02-01T00:00:00+00:00', '2017-03-01T00:00:00+00:00', '2017-04-01T00:00:00+00:00', '2017-05-01T00:00:00+00:00', '2017-06-01T00:00:00+00:00', '2017-07-01T00:00:00+00:00', '2017-08-01T00:00:00+00:00', '2017-09-01T00:00:00+00:00', '2017-10-01T00:00:00+00:00', '2017-11-01T00:00:00+00:00', '2017-12-01T00:00:00+00:00', '2018-01-01T00:00:00+00:00', '2018-02-01T00:00:00+00:00', '2018-03-01T00:00:00+00:00', '2018-04-01T00:00:00+00:00', '2018-05-01T00:00:00+00:00', '2018-06-01T00:00:00+00:00', '2018-07-01T00:00:00+00:00', '2018-08-01T00:00:00+00:00', '2018-09-01T00:00:00+00:00', '2018-10-01T00:00:00+00:00', '2018-11-01T00:00:00+00:00', '2018-12-01T00:00:00+00:00', '2019-01-01T00:00:00+00:00', '2019-02-01T00:00:00+00:00', '2019-03-01T00:00:00+00:00', '2019-04-01T00:00:00+00:00', '2019-05-01T00:00:00+00:00', '2019-06-01T00:00:00+00:00', '2019-07-01T00:00:00+00:00', '2019-08-01T00:00:00+00:00', '2019-09-01T00:00:00+00:00', '2019-10-01T00:00:00+00:00', '2019-11-01T00:00:00+00:00', '2019-12-01T00:00:00+00:00', '2020-01-01T00:00:00+00:00', '2020-02-01T00:00:00+00:00', '2020-03-01T00:00:00+00:00', '2020-04-01T00:00:00+00:00', '2020-05-01T00:00:00+00:00', '2020-06-01T00:00:00+00:00', '2020-07-01T00:00:00+00:00', '2020-08-01T00:00:00+00:00', '2020-09-01T00:00:00+00:00', '2020-10-01T00:00:00+00:00', '2020-11-01T00:00:00+00:00', '2020-12-01T00:00:00+00:00', '2021-01-01T00:00:00+00:00', '2021-02-01T00:00:00+00:00', '2021-03-01T00:00:00+00:00', '2021-04-01T00:00:00+00:00', '2021-05-01T00:00:00+00:00', '2021-06-01T00:00:00+00:00', '2021-07-01T00:00:00+00:00', '2021-08-01T00:00:00+00:00', '2021-09-01T00:00:00+00:00', '2021-10-01T00:00:00+00:00', '2021-11-01T00:00:00+00:00', '2021-12-01T00:00:00+00:00', '2022-01-01T00:00:00+00:00', '2022-02-01T00:00:00+00:00', '2022-03-01T00:00:00+00:00', '2022-04-01T00:00:00+00:00', '2022-05-01T00:00:00+00:00', '2022-06-01T00:00:00+00:00', '2022-07-01T00:00:00+00:00', '2022-08-01T00:00:00+00:00', '2022-09-01T00:00:00+00:00', '2022-10-01T00:00:00+00:00', '2022-11-01T00:00:00+00:00', '2022-12-01T00:00:00+00:00', '2023-01-01T00:00:00+00:00', '2023-02-01T00:00:00+00:00', '2023-03-01T00:00:00+00:00', '2023-04-01T00:00:00+00:00', '2023-05-01T00:00:00+00:00', '2023-06-01T00:00:00+00:00', '2023-07-01T00:00:00+00:00', '2023-08-01T00:00:00+00:00', '2023-09-01T00:00:00+00:00'], dtype='<U25')
- xPandasIndex
PandasIndex(Index([ -180.0, -179.9, -179.8, -179.7, -179.6, -179.5, -179.4, -179.3, -179.2, -179.1, ... 179.0, 179.10000000000002, 179.20000000000005, 179.3, 179.40000000000003, 179.5, 179.60000000000002, 179.70000000000005, 179.8, 179.90000000000003], dtype='float64', name='x', length=3600))
- yPandasIndex
PandasIndex(Index([ 90.0, 89.9, 89.8, 89.7, 89.6, 89.5, 89.4, 89.3, 89.2, 89.1, ... -89.0, -89.10000000000002, -89.20000000000002, -89.30000000000001, -89.4, -89.5, -89.60000000000002, -89.70000000000002, -89.80000000000001, -89.9], dtype='float64', name='y', length=1800))
- timePandasIndex
PandasIndex(Index(['2016-01-01T00:00:00+00:00', '2016-02-01T00:00:00+00:00', '2016-03-01T00:00:00+00:00', '2016-04-01T00:00:00+00:00', '2016-05-01T00:00:00+00:00', '2016-06-01T00:00:00+00:00', '2016-07-01T00:00:00+00:00', '2016-08-01T00:00:00+00:00', '2016-09-01T00:00:00+00:00', '2016-10-01T00:00:00+00:00', '2016-11-01T00:00:00+00:00', '2016-12-01T00:00:00+00:00', '2017-01-01T00:00:00+00:00', '2017-02-01T00:00:00+00:00', '2017-03-01T00:00:00+00:00', '2017-04-01T00:00:00+00:00', '2017-05-01T00:00:00+00:00', '2017-06-01T00:00:00+00:00', '2017-07-01T00:00:00+00:00', '2017-08-01T00:00:00+00:00', '2017-09-01T00:00:00+00:00', '2017-10-01T00:00:00+00:00', '2017-11-01T00:00:00+00:00', '2017-12-01T00:00:00+00:00', '2018-01-01T00:00:00+00:00', '2018-02-01T00:00:00+00:00', '2018-03-01T00:00:00+00:00', '2018-04-01T00:00:00+00:00', '2018-05-01T00:00:00+00:00', '2018-06-01T00:00:00+00:00', '2018-07-01T00:00:00+00:00', '2018-08-01T00:00:00+00:00', '2018-09-01T00:00:00+00:00', '2018-10-01T00:00:00+00:00', '2018-11-01T00:00:00+00:00', '2018-12-01T00:00:00+00:00', '2019-01-01T00:00:00+00:00', '2019-02-01T00:00:00+00:00', '2019-03-01T00:00:00+00:00', '2019-04-01T00:00:00+00:00', '2019-05-01T00:00:00+00:00', '2019-06-01T00:00:00+00:00', '2019-07-01T00:00:00+00:00', '2019-08-01T00:00:00+00:00', '2019-09-01T00:00:00+00:00', '2019-10-01T00:00:00+00:00', '2019-11-01T00:00:00+00:00', '2019-12-01T00:00:00+00:00', '2020-01-01T00:00:00+00:00', '2020-02-01T00:00:00+00:00', '2020-03-01T00:00:00+00:00', '2020-04-01T00:00:00+00:00', '2020-05-01T00:00:00+00:00', '2020-06-01T00:00:00+00:00', '2020-07-01T00:00:00+00:00', '2020-08-01T00:00:00+00:00', '2020-09-01T00:00:00+00:00', '2020-10-01T00:00:00+00:00', '2020-11-01T00:00:00+00:00', '2020-12-01T00:00:00+00:00', '2021-01-01T00:00:00+00:00', '2021-02-01T00:00:00+00:00', '2021-03-01T00:00:00+00:00', '2021-04-01T00:00:00+00:00', '2021-05-01T00:00:00+00:00', '2021-06-01T00:00:00+00:00', '2021-07-01T00:00:00+00:00', '2021-08-01T00:00:00+00:00', '2021-09-01T00:00:00+00:00', '2021-10-01T00:00:00+00:00', '2021-11-01T00:00:00+00:00', '2021-12-01T00:00:00+00:00', '2022-01-01T00:00:00+00:00', '2022-02-01T00:00:00+00:00', '2022-03-01T00:00:00+00:00', '2022-04-01T00:00:00+00:00', '2022-05-01T00:00:00+00:00', '2022-06-01T00:00:00+00:00', '2022-07-01T00:00:00+00:00', '2022-08-01T00:00:00+00:00', '2022-09-01T00:00:00+00:00', '2022-10-01T00:00:00+00:00', '2022-11-01T00:00:00+00:00', '2022-12-01T00:00:00+00:00', '2023-01-01T00:00:00+00:00', '2023-02-01T00:00:00+00:00', '2023-03-01T00:00:00+00:00', '2023-04-01T00:00:00+00:00', '2023-05-01T00:00:00+00:00', '2023-06-01T00:00:00+00:00', '2023-07-01T00:00:00+00:00', '2023-08-01T00:00:00+00:00', '2023-09-01T00:00:00+00:00'], dtype='object', name='time'))
- spec :
- RasterSpec(epsg=4326, bounds=(-180.0, -90.0, 180.0, 90.0), resolutions_xy=(0.1, 0.1))
- crs :
- epsg:4326
- transform :
- | 0.10, 0.00,-180.00| | 0.00,-0.10, 90.00| | 0.00, 0.00, 1.00|
- resolution :
- 0.1
Clip the data to AOI
<xarray.DataArray 'stackstac-732215043b0b95a370dc66f3493b95b0' (time: 93, y: 97, x: 143)> Size: 10MB dask.array<getitem, shape=(93, 97, 143), dtype=float64, chunksize=(1, 97, 143), chunktype=numpy.ndarray> Coordinates: (12/18) id (time) <U37 14kB 'OMI_trno2_0.10x0.10_201601_Col3_V4.nc' ... band <U11 44B 'cog_default' * x (x) float64 1kB -4.7 -4.6 -4.5 -4.4 -4.3 ... 9.2 9.3 9.4 9.5 * y (y) float64 776B 51.0 50.9 50.8 50.7 ... 41.7 41.6 41.5 41.4 end_datetime (time) <U25 9kB '2016-01-31T00:00:00+00:00' ... '2023-09-... start_datetime (time) <U25 9kB '2016-01-01T00:00:00+00:00' ... '2023-09-... ... ... proj:code <U9 36B 'EPSG:4326' proj:transform object 8B {0.1, 0.0, 1.0, -0.1, -180.0, 90.0} title <U17 68B 'Default COG Layer' epsg int64 8B 4326 * time (time) <U25 9kB '2016-01-01T00:00:00+00:00' ... '2023-09-... spatial_ref int64 8B 0 Attributes: spec: RasterSpec(epsg=4326, bounds=(-180.0, -90.0, 180.0, 90.0), r... resolution: 0.1
- time: 93
- y: 97
- x: 143
- dask.array<chunksize=(1, 97, 143), meta=np.ndarray>
Array Chunk Bytes 9.84 MiB 108.37 kiB Shape (93, 97, 143) (1, 97, 143) Dask graph 93 chunks in 8 graph layers Data type float64 numpy.ndarray - id(time)<U37'OMI_trno2_0.10x0.10_201601_Col3...
array(['OMI_trno2_0.10x0.10_201601_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201602_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201603_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201604_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201605_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201606_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201607_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201608_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201609_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201610_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201611_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201612_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201701_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201702_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201703_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201704_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201705_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201706_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201707_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201708_Col3_V4.nc', ... 'OMI_trno2_0.10x0.10_202202_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202203_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202204_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202205_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202206_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202207_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202208_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202209_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202210_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202211_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202212_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202301_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202302_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202303_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202304_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202305_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202306_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202307_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202308_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202309_Col3_V4.nc'], dtype='<U37')
- band()<U11'cog_default'
array('cog_default', dtype='<U11')
- x(x)float64-4.7 -4.6 -4.5 -4.4 ... 9.3 9.4 9.5
- axis :
- X
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([-4.7, -4.6, -4.5, -4.4, -4.3, -4.2, -4.1, -4. , -3.9, -3.8, -3.7, -3.6, -3.5, -3.4, -3.3, -3.2, -3.1, -3. , -2.9, -2.8, -2.7, -2.6, -2.5, -2.4, -2.3, -2.2, -2.1, -2. , -1.9, -1.8, -1.7, -1.6, -1.5, -1.4, -1.3, -1.2, -1.1, -1. , -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3. , 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4. , 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6. , 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7. , 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8. , 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9. , 9.1, 9.2, 9.3, 9.4, 9.5])
- y(y)float6451.0 50.9 50.8 ... 41.6 41.5 41.4
- axis :
- Y
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([51. , 50.9, 50.8, 50.7, 50.6, 50.5, 50.4, 50.3, 50.2, 50.1, 50. , 49.9, 49.8, 49.7, 49.6, 49.5, 49.4, 49.3, 49.2, 49.1, 49. , 48.9, 48.8, 48.7, 48.6, 48.5, 48.4, 48.3, 48.2, 48.1, 48. , 47.9, 47.8, 47.7, 47.6, 47.5, 47.4, 47.3, 47.2, 47.1, 47. , 46.9, 46.8, 46.7, 46.6, 46.5, 46.4, 46.3, 46.2, 46.1, 46. , 45.9, 45.8, 45.7, 45.6, 45.5, 45.4, 45.3, 45.2, 45.1, 45. , 44.9, 44.8, 44.7, 44.6, 44.5, 44.4, 44.3, 44.2, 44.1, 44. , 43.9, 43.8, 43.7, 43.6, 43.5, 43.4, 43.3, 43.2, 43.1, 43. , 42.9, 42.8, 42.7, 42.6, 42.5, 42.4, 42.3, 42.2, 42.1, 42. , 41.9, 41.8, 41.7, 41.6, 41.5, 41.4])
- end_datetime(time)<U25'2016-01-31T00:00:00+00:00' ... ...
array(['2016-01-31T00:00:00+00:00', '2016-02-29T00:00:00+00:00', '2016-03-31T00:00:00+00:00', '2016-04-30T00:00:00+00:00', '2016-05-31T00:00:00+00:00', '2016-06-30T00:00:00+00:00', '2016-07-31T00:00:00+00:00', '2016-08-31T00:00:00+00:00', '2016-09-30T00:00:00+00:00', '2016-10-31T00:00:00+00:00', '2016-11-30T00:00:00+00:00', '2016-12-31T00:00:00+00:00', '2017-01-31T00:00:00+00:00', '2017-02-28T00:00:00+00:00', '2017-03-31T00:00:00+00:00', '2017-04-30T00:00:00+00:00', '2017-05-31T00:00:00+00:00', '2017-06-30T00:00:00+00:00', '2017-07-31T00:00:00+00:00', '2017-08-31T00:00:00+00:00', '2017-09-30T00:00:00+00:00', '2017-10-31T00:00:00+00:00', '2017-11-30T00:00:00+00:00', '2017-12-31T00:00:00+00:00', '2018-01-31T00:00:00+00:00', '2018-02-28T00:00:00+00:00', '2018-03-31T00:00:00+00:00', '2018-04-30T00:00:00+00:00', '2018-05-31T00:00:00+00:00', '2018-06-30T00:00:00+00:00', '2018-07-31T00:00:00+00:00', '2018-08-31T00:00:00+00:00', '2018-09-30T00:00:00+00:00', '2018-10-31T00:00:00+00:00', '2018-11-30T00:00:00+00:00', '2018-12-31T00:00:00+00:00', '2019-01-31T00:00:00+00:00', '2019-02-28T00:00:00+00:00', '2019-03-31T00:00:00+00:00', '2019-04-30T00:00:00+00:00', ... '2020-07-31T00:00:00+00:00', '2020-08-31T00:00:00+00:00', '2020-09-30T00:00:00+00:00', '2020-10-31T00:00:00+00:00', '2020-11-30T00:00:00+00:00', '2020-12-31T00:00:00+00:00', '2021-01-31T00:00:00+00:00', '2021-02-28T00:00:00+00:00', '2021-03-31T00:00:00+00:00', '2021-04-30T00:00:00+00:00', '2021-05-31T00:00:00+00:00', '2021-06-30T00:00:00+00:00', '2021-07-31T00:00:00+00:00', '2021-08-31T00:00:00+00:00', '2021-09-30T00:00:00+00:00', '2021-10-31T00:00:00+00:00', '2021-11-30T00:00:00+00:00', '2021-12-31T00:00:00+00:00', '2022-01-31T00:00:00+00:00', '2022-02-28T00:00:00+00:00', '2022-03-31T00:00:00+00:00', '2022-04-30T00:00:00+00:00', '2022-05-31T00:00:00+00:00', '2022-06-30T00:00:00+00:00', '2022-07-31T00:00:00+00:00', '2022-08-31T00:00:00+00:00', '2022-09-30T00:00:00+00:00', '2022-10-31T00:00:00+00:00', '2022-11-30T00:00:00+00:00', '2022-12-31T00:00:00+00:00', '2023-01-31T00:00:00+00:00', '2023-02-28T00:00:00+00:00', '2023-03-31T00:00:00+00:00', '2023-04-30T00:00:00+00:00', '2023-05-31T00:00:00+00:00', '2023-06-30T00:00:00+00:00', '2023-07-31T00:00:00+00:00', '2023-08-31T00:00:00+00:00', '2023-09-30T00:00:00+00:00'], dtype='<U25')
- start_datetime(time)<U25'2016-01-01T00:00:00+00:00' ... ...
array(['2016-01-01T00:00:00+00:00', '2016-02-01T00:00:00+00:00', '2016-03-01T00:00:00+00:00', '2016-04-01T00:00:00+00:00', '2016-05-01T00:00:00+00:00', '2016-06-01T00:00:00+00:00', '2016-07-01T00:00:00+00:00', '2016-08-01T00:00:00+00:00', '2016-09-01T00:00:00+00:00', '2016-10-01T00:00:00+00:00', '2016-11-01T00:00:00+00:00', '2016-12-01T00:00:00+00:00', '2017-01-01T00:00:00+00:00', '2017-02-01T00:00:00+00:00', '2017-03-01T00:00:00+00:00', '2017-04-01T00:00:00+00:00', '2017-05-01T00:00:00+00:00', '2017-06-01T00:00:00+00:00', '2017-07-01T00:00:00+00:00', '2017-08-01T00:00:00+00:00', '2017-09-01T00:00:00+00:00', '2017-10-01T00:00:00+00:00', '2017-11-01T00:00:00+00:00', '2017-12-01T00:00:00+00:00', '2018-01-01T00:00:00+00:00', '2018-02-01T00:00:00+00:00', '2018-03-01T00:00:00+00:00', '2018-04-01T00:00:00+00:00', '2018-05-01T00:00:00+00:00', '2018-06-01T00:00:00+00:00', '2018-07-01T00:00:00+00:00', '2018-08-01T00:00:00+00:00', '2018-09-01T00:00:00+00:00', '2018-10-01T00:00:00+00:00', '2018-11-01T00:00:00+00:00', '2018-12-01T00:00:00+00:00', '2019-01-01T00:00:00+00:00', '2019-02-01T00:00:00+00:00', '2019-03-01T00:00:00+00:00', '2019-04-01T00:00:00+00:00', ... '2020-07-01T00:00:00+00:00', '2020-08-01T00:00:00+00:00', '2020-09-01T00:00:00+00:00', '2020-10-01T00:00:00+00:00', '2020-11-01T00:00:00+00:00', '2020-12-01T00:00:00+00:00', '2021-01-01T00:00:00+00:00', '2021-02-01T00:00:00+00:00', '2021-03-01T00:00:00+00:00', '2021-04-01T00:00:00+00:00', '2021-05-01T00:00:00+00:00', '2021-06-01T00:00:00+00:00', '2021-07-01T00:00:00+00:00', '2021-08-01T00:00:00+00:00', '2021-09-01T00:00:00+00:00', '2021-10-01T00:00:00+00:00', '2021-11-01T00:00:00+00:00', '2021-12-01T00:00:00+00:00', '2022-01-01T00:00:00+00:00', '2022-02-01T00:00:00+00:00', '2022-03-01T00:00:00+00:00', '2022-04-01T00:00:00+00:00', '2022-05-01T00:00:00+00:00', '2022-06-01T00:00:00+00:00', '2022-07-01T00:00:00+00:00', '2022-08-01T00:00:00+00:00', '2022-09-01T00:00:00+00:00', '2022-10-01T00:00:00+00:00', '2022-11-01T00:00:00+00:00', '2022-12-01T00:00:00+00:00', '2023-01-01T00:00:00+00:00', '2023-02-01T00:00:00+00:00', '2023-03-01T00:00:00+00:00', '2023-04-01T00:00:00+00:00', '2023-05-01T00:00:00+00:00', '2023-06-01T00:00:00+00:00', '2023-07-01T00:00:00+00:00', '2023-08-01T00:00:00+00:00', '2023-09-01T00:00:00+00:00'], dtype='<U25')
- proj:bbox()object{90.0, 180.0, -90.0, -180.0}
array({90.0, 180.0, -90.0, -180.0}, dtype=object)
- proj:shape()object{1800, 3600}
array({1800, 3600}, dtype=object)
- proj:projjson()object{'id': {'code': 4326, 'authority...
array({'id': {'code': 4326, 'authority': 'EPSG'}, 'name': 'WGS 84', 'type': 'GeographicCRS', 'datum': {'name': 'World Geodetic System 1984', 'type': 'GeodeticReferenceFrame', 'ellipsoid': {'name': 'WGS 84', 'semi_major_axis': 6378137, 'inverse_flattening': 298.257223563}}, '$schema': 'https://proj.org/schemas/v0.4/projjson.schema.json', 'coordinate_system': {'axis': [{'name': 'Geodetic latitude', 'unit': 'degree', 'direction': 'north', 'abbreviation': 'Lat'}, {'name': 'Geodetic longitude', 'unit': 'degree', 'direction': 'east', 'abbreviation': 'Lon'}], 'subtype': 'ellipsoidal'}}, dtype=object)
- proj:wkt2()<U277'GEOGCS["WGS 84",DATUM["WGS_1984...
array('GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]', dtype='<U277')
- description()<U47'Cloud optimized default layer t...
array('Cloud optimized default layer to display on map', dtype='<U47')
- proj:geometry()object{'type': 'Polygon', 'coordinates...
array({'type': 'Polygon', 'coordinates': [[[-180.0, -90.0], [180.0, -90.0], [180.0, 90.0], [-180.0, 90.0], [-180.0, -90.0]]]}, dtype=object)
- proj:code()<U9'EPSG:4326'
array('EPSG:4326', dtype='<U9')
- proj:transform()object{0.1, 0.0, 1.0, -0.1, -180.0, 90.0}
array({0.1, 0.0, 1.0, -0.1, -180.0, 90.0}, dtype=object)
- title()<U17'Default COG Layer'
array('Default COG Layer', dtype='<U17')
- epsg()int644326
array(4326)
- time(time)<U25'2016-01-01T00:00:00+00:00' ... ...
array(['2016-01-01T00:00:00+00:00', '2016-02-01T00:00:00+00:00', '2016-03-01T00:00:00+00:00', '2016-04-01T00:00:00+00:00', '2016-05-01T00:00:00+00:00', '2016-06-01T00:00:00+00:00', '2016-07-01T00:00:00+00:00', '2016-08-01T00:00:00+00:00', '2016-09-01T00:00:00+00:00', '2016-10-01T00:00:00+00:00', '2016-11-01T00:00:00+00:00', '2016-12-01T00:00:00+00:00', '2017-01-01T00:00:00+00:00', '2017-02-01T00:00:00+00:00', '2017-03-01T00:00:00+00:00', '2017-04-01T00:00:00+00:00', '2017-05-01T00:00:00+00:00', '2017-06-01T00:00:00+00:00', '2017-07-01T00:00:00+00:00', '2017-08-01T00:00:00+00:00', '2017-09-01T00:00:00+00:00', '2017-10-01T00:00:00+00:00', '2017-11-01T00:00:00+00:00', '2017-12-01T00:00:00+00:00', '2018-01-01T00:00:00+00:00', '2018-02-01T00:00:00+00:00', '2018-03-01T00:00:00+00:00', '2018-04-01T00:00:00+00:00', '2018-05-01T00:00:00+00:00', '2018-06-01T00:00:00+00:00', '2018-07-01T00:00:00+00:00', '2018-08-01T00:00:00+00:00', '2018-09-01T00:00:00+00:00', '2018-10-01T00:00:00+00:00', '2018-11-01T00:00:00+00:00', '2018-12-01T00:00:00+00:00', '2019-01-01T00:00:00+00:00', '2019-02-01T00:00:00+00:00', '2019-03-01T00:00:00+00:00', '2019-04-01T00:00:00+00:00', '2019-05-01T00:00:00+00:00', '2019-06-01T00:00:00+00:00', '2019-07-01T00:00:00+00:00', '2019-08-01T00:00:00+00:00', '2019-09-01T00:00:00+00:00', '2019-10-01T00:00:00+00:00', '2019-11-01T00:00:00+00:00', '2019-12-01T00:00:00+00:00', '2020-01-01T00:00:00+00:00', '2020-02-01T00:00:00+00:00', '2020-03-01T00:00:00+00:00', '2020-04-01T00:00:00+00:00', '2020-05-01T00:00:00+00:00', '2020-06-01T00:00:00+00:00', '2020-07-01T00:00:00+00:00', '2020-08-01T00:00:00+00:00', '2020-09-01T00:00:00+00:00', '2020-10-01T00:00:00+00:00', '2020-11-01T00:00:00+00:00', '2020-12-01T00:00:00+00:00', '2021-01-01T00:00:00+00:00', '2021-02-01T00:00:00+00:00', '2021-03-01T00:00:00+00:00', '2021-04-01T00:00:00+00:00', '2021-05-01T00:00:00+00:00', '2021-06-01T00:00:00+00:00', '2021-07-01T00:00:00+00:00', '2021-08-01T00:00:00+00:00', '2021-09-01T00:00:00+00:00', '2021-10-01T00:00:00+00:00', '2021-11-01T00:00:00+00:00', '2021-12-01T00:00:00+00:00', '2022-01-01T00:00:00+00:00', '2022-02-01T00:00:00+00:00', '2022-03-01T00:00:00+00:00', '2022-04-01T00:00:00+00:00', '2022-05-01T00:00:00+00:00', '2022-06-01T00:00:00+00:00', '2022-07-01T00:00:00+00:00', '2022-08-01T00:00:00+00:00', '2022-09-01T00:00:00+00:00', '2022-10-01T00:00:00+00:00', '2022-11-01T00:00:00+00:00', '2022-12-01T00:00:00+00:00', '2023-01-01T00:00:00+00:00', '2023-02-01T00:00:00+00:00', '2023-03-01T00:00:00+00:00', '2023-04-01T00:00:00+00:00', '2023-05-01T00:00:00+00:00', '2023-06-01T00:00:00+00:00', '2023-07-01T00:00:00+00:00', '2023-08-01T00:00:00+00:00', '2023-09-01T00:00:00+00:00'], dtype='<U25')
- spatial_ref()int640
- crs_wkt :
- 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"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]
- 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
- grid_mapping_name :
- latitude_longitude
- spatial_ref :
- 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"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]
- GeoTransform :
- -4.7499999999999885 0.09999999999999992 0.0 51.05 0.0 -0.10000000000000002
array(0)
- xPandasIndex
PandasIndex(Index([ -4.699999999999989, -4.599999999999994, -4.5, -4.399999999999977, -4.299999999999983, -4.199999999999989, -4.099999999999994, -4.0, -3.8999999999999773, -3.799999999999983, ... 8.600000000000023, 8.700000000000017, 8.800000000000011, 8.900000000000006, 9.0, 9.100000000000023, 9.200000000000017, 9.300000000000011, 9.400000000000006, 9.5], dtype='float64', name='x', length=143))
- yPandasIndex
PandasIndex(Index([ 51.0, 50.9, 50.8, 50.699999999999996, 50.599999999999994, 50.5, 50.4, 50.3, 50.199999999999996, 50.099999999999994, 50.0, 49.9, 49.8, 49.699999999999996, 49.599999999999994, 49.5, 49.4, 49.3, 49.199999999999996, 49.099999999999994, 49.0, 48.9, 48.8, 48.699999999999996, 48.599999999999994, 48.5, 48.4, 48.3, 48.199999999999996, 48.099999999999994, 48.0, 47.9, 47.8, 47.699999999999996, 47.599999999999994, 47.5, 47.4, 47.3, 47.199999999999996, 47.099999999999994, 47.0, 46.9, 46.8, 46.699999999999996, 46.599999999999994, 46.5, 46.4, 46.3, 46.199999999999996, 46.099999999999994, 46.0, 45.9, 45.8, 45.699999999999996, 45.599999999999994, 45.5, 45.4, 45.3, 45.199999999999996, 45.099999999999994, 45.0, 44.9, 44.8, 44.699999999999996, 44.599999999999994, 44.5, 44.4, 44.3, 44.199999999999996, 44.099999999999994, 44.0, 43.9, 43.8, 43.699999999999996, 43.599999999999994, 43.5, 43.4, 43.3, 43.199999999999996, 43.099999999999994, 43.0, 42.9, 42.8, 42.699999999999996, 42.599999999999994, 42.5, 42.4, 42.3, 42.199999999999996, 42.099999999999994, 42.0, 41.9, 41.8, 41.699999999999996, 41.599999999999994, 41.5, 41.4], dtype='float64', name='y'))
- timePandasIndex
PandasIndex(Index(['2016-01-01T00:00:00+00:00', '2016-02-01T00:00:00+00:00', '2016-03-01T00:00:00+00:00', '2016-04-01T00:00:00+00:00', '2016-05-01T00:00:00+00:00', '2016-06-01T00:00:00+00:00', '2016-07-01T00:00:00+00:00', '2016-08-01T00:00:00+00:00', '2016-09-01T00:00:00+00:00', '2016-10-01T00:00:00+00:00', '2016-11-01T00:00:00+00:00', '2016-12-01T00:00:00+00:00', '2017-01-01T00:00:00+00:00', '2017-02-01T00:00:00+00:00', '2017-03-01T00:00:00+00:00', '2017-04-01T00:00:00+00:00', '2017-05-01T00:00:00+00:00', '2017-06-01T00:00:00+00:00', '2017-07-01T00:00:00+00:00', '2017-08-01T00:00:00+00:00', '2017-09-01T00:00:00+00:00', '2017-10-01T00:00:00+00:00', '2017-11-01T00:00:00+00:00', '2017-12-01T00:00:00+00:00', '2018-01-01T00:00:00+00:00', '2018-02-01T00:00:00+00:00', '2018-03-01T00:00:00+00:00', '2018-04-01T00:00:00+00:00', '2018-05-01T00:00:00+00:00', '2018-06-01T00:00:00+00:00', '2018-07-01T00:00:00+00:00', '2018-08-01T00:00:00+00:00', '2018-09-01T00:00:00+00:00', '2018-10-01T00:00:00+00:00', '2018-11-01T00:00:00+00:00', '2018-12-01T00:00:00+00:00', '2019-01-01T00:00:00+00:00', '2019-02-01T00:00:00+00:00', '2019-03-01T00:00:00+00:00', '2019-04-01T00:00:00+00:00', '2019-05-01T00:00:00+00:00', '2019-06-01T00:00:00+00:00', '2019-07-01T00:00:00+00:00', '2019-08-01T00:00:00+00:00', '2019-09-01T00:00:00+00:00', '2019-10-01T00:00:00+00:00', '2019-11-01T00:00:00+00:00', '2019-12-01T00:00:00+00:00', '2020-01-01T00:00:00+00:00', '2020-02-01T00:00:00+00:00', '2020-03-01T00:00:00+00:00', '2020-04-01T00:00:00+00:00', '2020-05-01T00:00:00+00:00', '2020-06-01T00:00:00+00:00', '2020-07-01T00:00:00+00:00', '2020-08-01T00:00:00+00:00', '2020-09-01T00:00:00+00:00', '2020-10-01T00:00:00+00:00', '2020-11-01T00:00:00+00:00', '2020-12-01T00:00:00+00:00', '2021-01-01T00:00:00+00:00', '2021-02-01T00:00:00+00:00', '2021-03-01T00:00:00+00:00', '2021-04-01T00:00:00+00:00', '2021-05-01T00:00:00+00:00', '2021-06-01T00:00:00+00:00', '2021-07-01T00:00:00+00:00', '2021-08-01T00:00:00+00:00', '2021-09-01T00:00:00+00:00', '2021-10-01T00:00:00+00:00', '2021-11-01T00:00:00+00:00', '2021-12-01T00:00:00+00:00', '2022-01-01T00:00:00+00:00', '2022-02-01T00:00:00+00:00', '2022-03-01T00:00:00+00:00', '2022-04-01T00:00:00+00:00', '2022-05-01T00:00:00+00:00', '2022-06-01T00:00:00+00:00', '2022-07-01T00:00:00+00:00', '2022-08-01T00:00:00+00:00', '2022-09-01T00:00:00+00:00', '2022-10-01T00:00:00+00:00', '2022-11-01T00:00:00+00:00', '2022-12-01T00:00:00+00:00', '2023-01-01T00:00:00+00:00', '2023-02-01T00:00:00+00:00', '2023-03-01T00:00:00+00:00', '2023-04-01T00:00:00+00:00', '2023-05-01T00:00:00+00:00', '2023-06-01T00:00:00+00:00', '2023-07-01T00:00:00+00:00', '2023-08-01T00:00:00+00:00', '2023-09-01T00:00:00+00:00'], dtype='object', name='time'))
- spec :
- RasterSpec(epsg=4326, bounds=(-180.0, -90.0, 180.0, 90.0), resolutions_xy=(0.1, 0.1))
- resolution :
- 0.1
Compute and plot
So far we have just been setting up a calculation lazily in Dask. Now we can trigger computation using .compute()
.
CPU times: user 3.02 s, sys: 440 ms, total: 3.46 s
Wall time: 6.63 s
# get the 2% and 98% percentiles for min and max bounds of color
vmin, vmax = image_stack.quantile(0.02).item(), image_stack.quantile(0.98).item()
image_stack.hvplot.quadmesh(
groupby="time",
tiles=True,
colorbar=False,
clim=(vmin, vmax),
cmap="viridis",
alpha=0.8,
frame_height=512,
widget_location="bottom",
aspect=1,
)