from pystac_client import Client
import pandas as pd
import stackstac
import rioxarray # noqa
import hvplot.xarray # noqa
Calculate timeseries from COGs
pystac_client
, rioxarray
, and stackstac
Aimee Barciauskas, Julia Signell
February 1, 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 cropped to AOI - Calculate the mean for each timestep over the AOI
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.
Read data
Read in data using xarray
using a combination of xpystac
, stackstac
, and rasterio
.
da = stackstac.stack(item_collection, epsg=4326)
da = da.assign_coords({"time": pd.to_datetime(da.start_datetime)}).squeeze()
da
<xarray.DataArray 'stackstac-707c2fec3a4bde6be0d838dc97f60ec1' (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_202309_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 start_datetime (time) <U25 9kB '2023-09-01T00:00:00+00:00' ... '2016-01-... end_datetime (time) <U25 9kB '2023-09-30T00:00:00+00:00' ... '2016-01-... ... ... proj:code <U9 36B 'EPSG:4326' title <U17 68B 'Default COG Layer' proj:shape object 8B {1800, 3600} description <U47 188B 'Cloud optimized default layer to display on map' epsg int64 8B 4326 * time (time) datetime64[ns, UTC] 744B 2023-09-01T00:00:00+00:00... 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_202309_Col3...
array(['OMI_trno2_0.10x0.10_202309_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202308_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202307_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202306_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202305_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202304_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202303_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202302_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202301_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202212_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202211_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202210_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202209_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202208_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202207_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202206_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202205_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202204_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202203_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202202_Col3_V4.nc', ... 'OMI_trno2_0.10x0.10_201708_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201707_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201706_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201705_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201704_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201703_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201702_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201701_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201612_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201611_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201610_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201609_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201608_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201607_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201606_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201605_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201604_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201603_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201602_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201601_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,))
- start_datetime(time)<U25'2023-09-01T00:00:00+00:00' ... ...
array(['2023-09-01T00:00:00+00:00', '2023-08-01T00:00:00+00:00', '2023-07-01T00:00:00+00:00', '2023-06-01T00:00:00+00:00', '2023-05-01T00:00:00+00:00', '2023-04-01T00:00:00+00:00', '2023-03-01T00:00:00+00:00', '2023-02-01T00:00:00+00:00', '2023-01-01T00:00:00+00:00', '2022-12-01T00:00:00+00:00', '2022-11-01T00:00:00+00:00', '2022-10-01T00:00:00+00:00', '2022-09-01T00:00:00+00:00', '2022-08-01T00:00:00+00:00', '2022-07-01T00:00:00+00:00', '2022-06-01T00:00:00+00:00', '2022-05-01T00:00:00+00:00', '2022-04-01T00:00:00+00:00', '2022-03-01T00:00:00+00:00', '2022-02-01T00:00:00+00:00', '2022-01-01T00:00:00+00:00', '2021-12-01T00:00:00+00:00', '2021-11-01T00:00:00+00:00', '2021-10-01T00:00:00+00:00', '2021-09-01T00:00:00+00:00', '2021-08-01T00:00:00+00:00', '2021-07-01T00:00:00+00:00', '2021-06-01T00:00:00+00:00', '2021-05-01T00:00:00+00:00', '2021-04-01T00:00:00+00:00', '2021-03-01T00:00:00+00:00', '2021-02-01T00:00:00+00:00', '2021-01-01T00:00:00+00:00', '2020-12-01T00:00:00+00:00', '2020-11-01T00:00:00+00:00', '2020-10-01T00:00:00+00:00', '2020-09-01T00:00:00+00:00', '2020-08-01T00:00:00+00:00', '2020-07-01T00:00:00+00:00', '2020-06-01T00:00:00+00:00', ... '2019-03-01T00:00:00+00:00', '2019-02-01T00:00:00+00:00', '2019-01-01T00:00:00+00:00', '2018-12-01T00:00:00+00:00', '2018-11-01T00:00:00+00:00', '2018-10-01T00:00:00+00:00', '2018-09-01T00:00:00+00:00', '2018-08-01T00:00:00+00:00', '2018-07-01T00:00:00+00:00', '2018-06-01T00:00:00+00:00', '2018-05-01T00:00:00+00:00', '2018-04-01T00:00:00+00:00', '2018-03-01T00:00:00+00:00', '2018-02-01T00:00:00+00:00', '2018-01-01T00:00:00+00:00', '2017-12-01T00:00:00+00:00', '2017-11-01T00:00:00+00:00', '2017-10-01T00:00:00+00:00', '2017-09-01T00:00:00+00:00', '2017-08-01T00:00:00+00:00', '2017-07-01T00:00:00+00:00', '2017-06-01T00:00:00+00:00', '2017-05-01T00:00:00+00:00', '2017-04-01T00:00:00+00:00', '2017-03-01T00:00:00+00:00', '2017-02-01T00:00:00+00:00', '2017-01-01T00:00:00+00:00', '2016-12-01T00:00:00+00:00', '2016-11-01T00:00:00+00:00', '2016-10-01T00:00:00+00:00', '2016-09-01T00:00:00+00:00', '2016-08-01T00:00:00+00:00', '2016-07-01T00:00:00+00:00', '2016-06-01T00:00:00+00:00', '2016-05-01T00:00:00+00:00', '2016-04-01T00:00:00+00:00', '2016-03-01T00:00:00+00:00', '2016-02-01T00:00:00+00:00', '2016-01-01T00:00:00+00:00'], dtype='<U25')
- end_datetime(time)<U25'2023-09-30T00:00:00+00:00' ... ...
array(['2023-09-30T00:00:00+00:00', '2023-08-31T00:00:00+00:00', '2023-07-31T00:00:00+00:00', '2023-06-30T00:00:00+00:00', '2023-05-31T00:00:00+00:00', '2023-04-30T00:00:00+00:00', '2023-03-31T00:00:00+00:00', '2023-02-28T00:00:00+00:00', '2023-01-31T00:00:00+00:00', '2022-12-31T00:00:00+00:00', '2022-11-30T00:00:00+00:00', '2022-10-31T00:00:00+00:00', '2022-09-30T00:00:00+00:00', '2022-08-31T00:00:00+00:00', '2022-07-31T00:00:00+00:00', '2022-06-30T00:00:00+00:00', '2022-05-31T00:00:00+00:00', '2022-04-30T00:00:00+00:00', '2022-03-31T00:00:00+00:00', '2022-02-28T00:00:00+00:00', '2022-01-31T00:00:00+00:00', '2021-12-31T00:00:00+00:00', '2021-11-30T00:00:00+00:00', '2021-10-31T00:00:00+00:00', '2021-09-30T00:00:00+00:00', '2021-08-31T00:00:00+00:00', '2021-07-31T00:00:00+00:00', '2021-06-30T00:00:00+00:00', '2021-05-31T00:00:00+00:00', '2021-04-30T00:00:00+00:00', '2021-03-31T00:00:00+00:00', '2021-02-28T00:00:00+00:00', '2021-01-31T00:00:00+00:00', '2020-12-31T00:00:00+00:00', '2020-11-30T00:00:00+00:00', '2020-10-31T00:00:00+00:00', '2020-09-30T00:00:00+00:00', '2020-08-31T00:00:00+00:00', '2020-07-31T00:00:00+00:00', '2020-06-30T00:00:00+00:00', ... '2019-03-31T00:00:00+00:00', '2019-02-28T00:00:00+00:00', '2019-01-31T00:00:00+00:00', '2018-12-31T00:00:00+00:00', '2018-11-30T00:00:00+00:00', '2018-10-31T00:00:00+00:00', '2018-09-30T00:00:00+00:00', '2018-08-31T00:00:00+00:00', '2018-07-31T00:00:00+00:00', '2018-06-30T00:00:00+00:00', '2018-05-31T00:00:00+00:00', '2018-04-30T00:00:00+00:00', '2018-03-31T00:00:00+00:00', '2018-02-28T00:00:00+00:00', '2018-01-31T00:00:00+00:00', '2017-12-31T00:00:00+00:00', '2017-11-30T00:00:00+00:00', '2017-10-31T00:00:00+00:00', '2017-09-30T00:00:00+00:00', '2017-08-31T00:00:00+00:00', '2017-07-31T00:00:00+00:00', '2017-06-30T00:00:00+00:00', '2017-05-31T00:00:00+00:00', '2017-04-30T00:00:00+00:00', '2017-03-31T00:00:00+00:00', '2017-02-28T00:00:00+00:00', '2017-01-31T00:00:00+00:00', '2016-12-31T00:00:00+00:00', '2016-11-30T00:00:00+00:00', '2016-10-31T00:00:00+00:00', '2016-09-30T00:00:00+00:00', '2016-08-31T00:00:00+00:00', '2016-07-31T00:00:00+00:00', '2016-06-30T00:00:00+00:00', '2016-05-31T00:00:00+00:00', '2016-04-30T00:00:00+00:00', '2016-03-31T00:00:00+00:00', '2016-02-29T00:00:00+00:00', '2016-01-31T00:00:00+00:00'], dtype='<U25')
- 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')
- 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)
- 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:bbox()object{90.0, 180.0, -90.0, -180.0}
array({90.0, 180.0, -90.0, -180.0}, dtype=object)
- 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')
- title()<U17'Default COG Layer'
array('Default COG Layer', dtype='<U17')
- proj:shape()object{1800, 3600}
array({1800, 3600}, dtype=object)
- description()<U47'Cloud optimized default layer t...
array('Cloud optimized default layer to display on map', dtype='<U47')
- epsg()int644326
array(4326)
- time(time)datetime64[ns, UTC]2023-09-01T00:00:00+00:00 ... 20...
<DatetimeArray> ['2023-09-01 00:00:00+00:00', '2023-08-01 00:00:00+00:00', '2023-07-01 00:00:00+00:00', '2023-06-01 00:00:00+00:00', '2023-05-01 00:00:00+00:00', '2023-04-01 00:00:00+00:00', '2023-03-01 00:00:00+00:00', '2023-02-01 00:00:00+00:00', '2023-01-01 00:00:00+00:00', '2022-12-01 00:00:00+00:00', '2022-11-01 00:00:00+00:00', '2022-10-01 00:00:00+00:00', '2022-09-01 00:00:00+00:00', '2022-08-01 00:00:00+00:00', '2022-07-01 00:00:00+00:00', '2022-06-01 00:00:00+00:00', '2022-05-01 00:00:00+00:00', '2022-04-01 00:00:00+00:00', '2022-03-01 00:00:00+00:00', '2022-02-01 00:00:00+00:00', '2022-01-01 00:00:00+00:00', '2021-12-01 00:00:00+00:00', '2021-11-01 00:00:00+00:00', '2021-10-01 00:00:00+00:00', '2021-09-01 00:00:00+00:00', '2021-08-01 00:00:00+00:00', '2021-07-01 00:00:00+00:00', '2021-06-01 00:00:00+00:00', '2021-05-01 00:00:00+00:00', '2021-04-01 00:00:00+00:00', '2021-03-01 00:00:00+00:00', '2021-02-01 00:00:00+00:00', '2021-01-01 00:00:00+00:00', '2020-12-01 00:00:00+00:00', '2020-11-01 00:00:00+00:00', '2020-10-01 00:00:00+00:00', '2020-09-01 00:00:00+00:00', '2020-08-01 00:00:00+00:00', '2020-07-01 00:00:00+00:00', '2020-06-01 00:00:00+00:00', '2020-05-01 00:00:00+00:00', '2020-04-01 00:00:00+00:00', '2020-03-01 00:00:00+00:00', '2020-02-01 00:00:00+00:00', '2020-01-01 00:00:00+00:00', '2019-12-01 00:00:00+00:00', '2019-11-01 00:00:00+00:00', '2019-10-01 00:00:00+00:00', '2019-09-01 00:00:00+00:00', '2019-08-01 00:00:00+00:00', '2019-07-01 00:00:00+00:00', '2019-06-01 00:00:00+00:00', '2019-05-01 00:00:00+00:00', '2019-04-01 00:00:00+00:00', '2019-03-01 00:00:00+00:00', '2019-02-01 00:00:00+00:00', '2019-01-01 00:00:00+00:00', '2018-12-01 00:00:00+00:00', '2018-11-01 00:00:00+00:00', '2018-10-01 00:00:00+00:00', '2018-09-01 00:00:00+00:00', '2018-08-01 00:00:00+00:00', '2018-07-01 00:00:00+00:00', '2018-06-01 00:00:00+00:00', '2018-05-01 00:00:00+00:00', '2018-04-01 00:00:00+00:00', '2018-03-01 00:00:00+00:00', '2018-02-01 00:00:00+00:00', '2018-01-01 00:00:00+00:00', '2017-12-01 00:00:00+00:00', '2017-11-01 00:00:00+00:00', '2017-10-01 00:00:00+00:00', '2017-09-01 00:00:00+00:00', '2017-08-01 00:00:00+00:00', '2017-07-01 00:00:00+00:00', '2017-06-01 00:00:00+00:00', '2017-05-01 00:00:00+00:00', '2017-04-01 00:00:00+00:00', '2017-03-01 00:00:00+00:00', '2017-02-01 00:00:00+00:00', '2017-01-01 00:00:00+00:00', '2016-12-01 00:00:00+00:00', '2016-11-01 00:00:00+00:00', '2016-10-01 00:00:00+00:00', '2016-09-01 00:00:00+00:00', '2016-08-01 00:00:00+00:00', '2016-07-01 00:00:00+00:00', '2016-06-01 00:00:00+00:00', '2016-05-01 00:00:00+00:00', '2016-04-01 00:00:00+00:00', '2016-03-01 00:00:00+00:00', '2016-02-01 00:00:00+00:00', '2016-01-01 00:00:00+00:00'] Length: 93, dtype: datetime64[ns, UTC]
- 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(DatetimeIndex(['2023-09-01 00:00:00+00:00', '2023-08-01 00:00:00+00:00', '2023-07-01 00:00:00+00:00', '2023-06-01 00:00:00+00:00', '2023-05-01 00:00:00+00:00', '2023-04-01 00:00:00+00:00', '2023-03-01 00:00:00+00:00', '2023-02-01 00:00:00+00:00', '2023-01-01 00:00:00+00:00', '2022-12-01 00:00:00+00:00', '2022-11-01 00:00:00+00:00', '2022-10-01 00:00:00+00:00', '2022-09-01 00:00:00+00:00', '2022-08-01 00:00:00+00:00', '2022-07-01 00:00:00+00:00', '2022-06-01 00:00:00+00:00', '2022-05-01 00:00:00+00:00', '2022-04-01 00:00:00+00:00', '2022-03-01 00:00:00+00:00', '2022-02-01 00:00:00+00:00', '2022-01-01 00:00:00+00:00', '2021-12-01 00:00:00+00:00', '2021-11-01 00:00:00+00:00', '2021-10-01 00:00:00+00:00', '2021-09-01 00:00:00+00:00', '2021-08-01 00:00:00+00:00', '2021-07-01 00:00:00+00:00', '2021-06-01 00:00:00+00:00', '2021-05-01 00:00:00+00:00', '2021-04-01 00:00:00+00:00', '2021-03-01 00:00:00+00:00', '2021-02-01 00:00:00+00:00', '2021-01-01 00:00:00+00:00', '2020-12-01 00:00:00+00:00', '2020-11-01 00:00:00+00:00', '2020-10-01 00:00:00+00:00', '2020-09-01 00:00:00+00:00', '2020-08-01 00:00:00+00:00', '2020-07-01 00:00:00+00:00', '2020-06-01 00:00:00+00:00', '2020-05-01 00:00:00+00:00', '2020-04-01 00:00:00+00:00', '2020-03-01 00:00:00+00:00', '2020-02-01 00:00:00+00:00', '2020-01-01 00:00:00+00:00', '2019-12-01 00:00:00+00:00', '2019-11-01 00:00:00+00:00', '2019-10-01 00:00:00+00:00', '2019-09-01 00:00:00+00:00', '2019-08-01 00:00:00+00:00', '2019-07-01 00:00:00+00:00', '2019-06-01 00:00:00+00:00', '2019-05-01 00:00:00+00:00', '2019-04-01 00:00:00+00:00', '2019-03-01 00:00:00+00:00', '2019-02-01 00:00:00+00:00', '2019-01-01 00:00:00+00:00', '2018-12-01 00:00:00+00:00', '2018-11-01 00:00:00+00:00', '2018-10-01 00:00:00+00:00', '2018-09-01 00:00:00+00:00', '2018-08-01 00:00:00+00:00', '2018-07-01 00:00:00+00:00', '2018-06-01 00:00:00+00:00', '2018-05-01 00:00:00+00:00', '2018-04-01 00:00:00+00:00', '2018-03-01 00:00:00+00:00', '2018-02-01 00:00:00+00:00', '2018-01-01 00:00:00+00:00', '2017-12-01 00:00:00+00:00', '2017-11-01 00:00:00+00:00', '2017-10-01 00:00:00+00:00', '2017-09-01 00:00:00+00:00', '2017-08-01 00:00:00+00:00', '2017-07-01 00:00:00+00:00', '2017-06-01 00:00:00+00:00', '2017-05-01 00:00:00+00:00', '2017-04-01 00:00:00+00:00', '2017-03-01 00:00:00+00:00', '2017-02-01 00:00:00+00:00', '2017-01-01 00:00:00+00:00', '2016-12-01 00:00:00+00:00', '2016-11-01 00:00:00+00:00', '2016-10-01 00:00:00+00:00', '2016-09-01 00:00:00+00:00', '2016-08-01 00:00:00+00:00', '2016-07-01 00:00:00+00:00', '2016-06-01 00:00:00+00:00', '2016-05-01 00:00:00+00:00', '2016-04-01 00:00:00+00:00', '2016-03-01 00:00:00+00:00', '2016-02-01 00:00:00+00:00', '2016-01-01 00:00:00+00:00'], dtype='datetime64[ns, UTC]', name='time', freq=None))
- 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 the bounding box for China
<xarray.DataArray 'stackstac-707c2fec3a4bde6be0d838dc97f60ec1' (time: 93, y: 354, x: 614)> Size: 162MB dask.array<getitem, shape=(93, 354, 614), dtype=float64, chunksize=(1, 354, 535), chunktype=numpy.ndarray> Coordinates: (12/18) id (time) <U37 14kB 'OMI_trno2_0.10x0.10_202309_Col3_V4.nc' ... band <U11 44B 'cog_default' * x (x) float64 5kB 73.7 73.8 73.9 74.0 ... 134.8 134.9 135.0 * y (y) float64 3kB 53.5 53.4 53.3 53.2 ... 18.5 18.4 18.3 18.2 start_datetime (time) <U25 9kB '2023-09-01T00:00:00+00:00' ... '2016-01-... end_datetime (time) <U25 9kB '2023-09-30T00:00:00+00:00' ... '2016-01-... ... ... title <U17 68B 'Default COG Layer' proj:shape object 8B {1800, 3600} description <U47 188B 'Cloud optimized default layer to display on map' epsg int64 8B 4326 * time (time) datetime64[ns, UTC] 744B 2023-09-01T00:00:00+00:00... 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: 354
- x: 614
- dask.array<chunksize=(1, 354, 535), meta=np.ndarray>
Array Chunk Bytes 154.22 MiB 1.44 MiB Shape (93, 354, 614) (1, 354, 535) Dask graph 186 chunks in 5 graph layers Data type float64 numpy.ndarray - id(time)<U37'OMI_trno2_0.10x0.10_202309_Col3...
array(['OMI_trno2_0.10x0.10_202309_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202308_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202307_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202306_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202305_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202304_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202303_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202302_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202301_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202212_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202211_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202210_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202209_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202208_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202207_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202206_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202205_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202204_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202203_Col3_V4.nc', 'OMI_trno2_0.10x0.10_202202_Col3_V4.nc', ... 'OMI_trno2_0.10x0.10_201708_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201707_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201706_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201705_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201704_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201703_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201702_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201701_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201612_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201611_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201610_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201609_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201608_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201607_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201606_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201605_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201604_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201603_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201602_Col3_V4.nc', 'OMI_trno2_0.10x0.10_201601_Col3_V4.nc'], dtype='<U37')
- band()<U11'cog_default'
array('cog_default', dtype='<U11')
- x(x)float6473.7 73.8 73.9 ... 134.9 135.0
- axis :
- X
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([ 73.7, 73.8, 73.9, ..., 134.8, 134.9, 135. ], shape=(614,))
- y(y)float6453.5 53.4 53.3 ... 18.4 18.3 18.2
- axis :
- Y
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([53.5, 53.4, 53.3, ..., 18.4, 18.3, 18.2], shape=(354,))
- start_datetime(time)<U25'2023-09-01T00:00:00+00:00' ... ...
array(['2023-09-01T00:00:00+00:00', '2023-08-01T00:00:00+00:00', '2023-07-01T00:00:00+00:00', '2023-06-01T00:00:00+00:00', '2023-05-01T00:00:00+00:00', '2023-04-01T00:00:00+00:00', '2023-03-01T00:00:00+00:00', '2023-02-01T00:00:00+00:00', '2023-01-01T00:00:00+00:00', '2022-12-01T00:00:00+00:00', '2022-11-01T00:00:00+00:00', '2022-10-01T00:00:00+00:00', '2022-09-01T00:00:00+00:00', '2022-08-01T00:00:00+00:00', '2022-07-01T00:00:00+00:00', '2022-06-01T00:00:00+00:00', '2022-05-01T00:00:00+00:00', '2022-04-01T00:00:00+00:00', '2022-03-01T00:00:00+00:00', '2022-02-01T00:00:00+00:00', '2022-01-01T00:00:00+00:00', '2021-12-01T00:00:00+00:00', '2021-11-01T00:00:00+00:00', '2021-10-01T00:00:00+00:00', '2021-09-01T00:00:00+00:00', '2021-08-01T00:00:00+00:00', '2021-07-01T00:00:00+00:00', '2021-06-01T00:00:00+00:00', '2021-05-01T00:00:00+00:00', '2021-04-01T00:00:00+00:00', '2021-03-01T00:00:00+00:00', '2021-02-01T00:00:00+00:00', '2021-01-01T00:00:00+00:00', '2020-12-01T00:00:00+00:00', '2020-11-01T00:00:00+00:00', '2020-10-01T00:00:00+00:00', '2020-09-01T00:00:00+00:00', '2020-08-01T00:00:00+00:00', '2020-07-01T00:00:00+00:00', '2020-06-01T00:00:00+00:00', ... '2019-03-01T00:00:00+00:00', '2019-02-01T00:00:00+00:00', '2019-01-01T00:00:00+00:00', '2018-12-01T00:00:00+00:00', '2018-11-01T00:00:00+00:00', '2018-10-01T00:00:00+00:00', '2018-09-01T00:00:00+00:00', '2018-08-01T00:00:00+00:00', '2018-07-01T00:00:00+00:00', '2018-06-01T00:00:00+00:00', '2018-05-01T00:00:00+00:00', '2018-04-01T00:00:00+00:00', '2018-03-01T00:00:00+00:00', '2018-02-01T00:00:00+00:00', '2018-01-01T00:00:00+00:00', '2017-12-01T00:00:00+00:00', '2017-11-01T00:00:00+00:00', '2017-10-01T00:00:00+00:00', '2017-09-01T00:00:00+00:00', '2017-08-01T00:00:00+00:00', '2017-07-01T00:00:00+00:00', '2017-06-01T00:00:00+00:00', '2017-05-01T00:00:00+00:00', '2017-04-01T00:00:00+00:00', '2017-03-01T00:00:00+00:00', '2017-02-01T00:00:00+00:00', '2017-01-01T00:00:00+00:00', '2016-12-01T00:00:00+00:00', '2016-11-01T00:00:00+00:00', '2016-10-01T00:00:00+00:00', '2016-09-01T00:00:00+00:00', '2016-08-01T00:00:00+00:00', '2016-07-01T00:00:00+00:00', '2016-06-01T00:00:00+00:00', '2016-05-01T00:00:00+00:00', '2016-04-01T00:00:00+00:00', '2016-03-01T00:00:00+00:00', '2016-02-01T00:00:00+00:00', '2016-01-01T00:00:00+00:00'], dtype='<U25')
- end_datetime(time)<U25'2023-09-30T00:00:00+00:00' ... ...
array(['2023-09-30T00:00:00+00:00', '2023-08-31T00:00:00+00:00', '2023-07-31T00:00:00+00:00', '2023-06-30T00:00:00+00:00', '2023-05-31T00:00:00+00:00', '2023-04-30T00:00:00+00:00', '2023-03-31T00:00:00+00:00', '2023-02-28T00:00:00+00:00', '2023-01-31T00:00:00+00:00', '2022-12-31T00:00:00+00:00', '2022-11-30T00:00:00+00:00', '2022-10-31T00:00:00+00:00', '2022-09-30T00:00:00+00:00', '2022-08-31T00:00:00+00:00', '2022-07-31T00:00:00+00:00', '2022-06-30T00:00:00+00:00', '2022-05-31T00:00:00+00:00', '2022-04-30T00:00:00+00:00', '2022-03-31T00:00:00+00:00', '2022-02-28T00:00:00+00:00', '2022-01-31T00:00:00+00:00', '2021-12-31T00:00:00+00:00', '2021-11-30T00:00:00+00:00', '2021-10-31T00:00:00+00:00', '2021-09-30T00:00:00+00:00', '2021-08-31T00:00:00+00:00', '2021-07-31T00:00:00+00:00', '2021-06-30T00:00:00+00:00', '2021-05-31T00:00:00+00:00', '2021-04-30T00:00:00+00:00', '2021-03-31T00:00:00+00:00', '2021-02-28T00:00:00+00:00', '2021-01-31T00:00:00+00:00', '2020-12-31T00:00:00+00:00', '2020-11-30T00:00:00+00:00', '2020-10-31T00:00:00+00:00', '2020-09-30T00:00:00+00:00', '2020-08-31T00:00:00+00:00', '2020-07-31T00:00:00+00:00', '2020-06-30T00:00:00+00:00', ... '2019-03-31T00:00:00+00:00', '2019-02-28T00:00:00+00:00', '2019-01-31T00:00:00+00:00', '2018-12-31T00:00:00+00:00', '2018-11-30T00:00:00+00:00', '2018-10-31T00:00:00+00:00', '2018-09-30T00:00:00+00:00', '2018-08-31T00:00:00+00:00', '2018-07-31T00:00:00+00:00', '2018-06-30T00:00:00+00:00', '2018-05-31T00:00:00+00:00', '2018-04-30T00:00:00+00:00', '2018-03-31T00:00:00+00:00', '2018-02-28T00:00:00+00:00', '2018-01-31T00:00:00+00:00', '2017-12-31T00:00:00+00:00', '2017-11-30T00:00:00+00:00', '2017-10-31T00:00:00+00:00', '2017-09-30T00:00:00+00:00', '2017-08-31T00:00:00+00:00', '2017-07-31T00:00:00+00:00', '2017-06-30T00:00:00+00:00', '2017-05-31T00:00:00+00:00', '2017-04-30T00:00:00+00:00', '2017-03-31T00:00:00+00:00', '2017-02-28T00:00:00+00:00', '2017-01-31T00:00:00+00:00', '2016-12-31T00:00:00+00:00', '2016-11-30T00:00:00+00:00', '2016-10-31T00:00:00+00:00', '2016-09-30T00:00:00+00:00', '2016-08-31T00:00:00+00:00', '2016-07-31T00:00:00+00:00', '2016-06-30T00:00:00+00:00', '2016-05-31T00:00:00+00:00', '2016-04-30T00:00:00+00:00', '2016-03-31T00:00:00+00:00', '2016-02-29T00:00:00+00:00', '2016-01-31T00:00:00+00:00'], dtype='<U25')
- 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')
- 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)
- 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:bbox()object{90.0, 180.0, -90.0, -180.0}
array({90.0, 180.0, -90.0, -180.0}, dtype=object)
- 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')
- title()<U17'Default COG Layer'
array('Default COG Layer', dtype='<U17')
- proj:shape()object{1800, 3600}
array({1800, 3600}, dtype=object)
- description()<U47'Cloud optimized default layer t...
array('Cloud optimized default layer to display on map', dtype='<U47')
- epsg()int644326
array(4326)
- time(time)datetime64[ns, UTC]2023-09-01T00:00:00+00:00 ... 20...
<DatetimeArray> ['2023-09-01 00:00:00+00:00', '2023-08-01 00:00:00+00:00', '2023-07-01 00:00:00+00:00', '2023-06-01 00:00:00+00:00', '2023-05-01 00:00:00+00:00', '2023-04-01 00:00:00+00:00', '2023-03-01 00:00:00+00:00', '2023-02-01 00:00:00+00:00', '2023-01-01 00:00:00+00:00', '2022-12-01 00:00:00+00:00', '2022-11-01 00:00:00+00:00', '2022-10-01 00:00:00+00:00', '2022-09-01 00:00:00+00:00', '2022-08-01 00:00:00+00:00', '2022-07-01 00:00:00+00:00', '2022-06-01 00:00:00+00:00', '2022-05-01 00:00:00+00:00', '2022-04-01 00:00:00+00:00', '2022-03-01 00:00:00+00:00', '2022-02-01 00:00:00+00:00', '2022-01-01 00:00:00+00:00', '2021-12-01 00:00:00+00:00', '2021-11-01 00:00:00+00:00', '2021-10-01 00:00:00+00:00', '2021-09-01 00:00:00+00:00', '2021-08-01 00:00:00+00:00', '2021-07-01 00:00:00+00:00', '2021-06-01 00:00:00+00:00', '2021-05-01 00:00:00+00:00', '2021-04-01 00:00:00+00:00', '2021-03-01 00:00:00+00:00', '2021-02-01 00:00:00+00:00', '2021-01-01 00:00:00+00:00', '2020-12-01 00:00:00+00:00', '2020-11-01 00:00:00+00:00', '2020-10-01 00:00:00+00:00', '2020-09-01 00:00:00+00:00', '2020-08-01 00:00:00+00:00', '2020-07-01 00:00:00+00:00', '2020-06-01 00:00:00+00:00', '2020-05-01 00:00:00+00:00', '2020-04-01 00:00:00+00:00', '2020-03-01 00:00:00+00:00', '2020-02-01 00:00:00+00:00', '2020-01-01 00:00:00+00:00', '2019-12-01 00:00:00+00:00', '2019-11-01 00:00:00+00:00', '2019-10-01 00:00:00+00:00', '2019-09-01 00:00:00+00:00', '2019-08-01 00:00:00+00:00', '2019-07-01 00:00:00+00:00', '2019-06-01 00:00:00+00:00', '2019-05-01 00:00:00+00:00', '2019-04-01 00:00:00+00:00', '2019-03-01 00:00:00+00:00', '2019-02-01 00:00:00+00:00', '2019-01-01 00:00:00+00:00', '2018-12-01 00:00:00+00:00', '2018-11-01 00:00:00+00:00', '2018-10-01 00:00:00+00:00', '2018-09-01 00:00:00+00:00', '2018-08-01 00:00:00+00:00', '2018-07-01 00:00:00+00:00', '2018-06-01 00:00:00+00:00', '2018-05-01 00:00:00+00:00', '2018-04-01 00:00:00+00:00', '2018-03-01 00:00:00+00:00', '2018-02-01 00:00:00+00:00', '2018-01-01 00:00:00+00:00', '2017-12-01 00:00:00+00:00', '2017-11-01 00:00:00+00:00', '2017-10-01 00:00:00+00:00', '2017-09-01 00:00:00+00:00', '2017-08-01 00:00:00+00:00', '2017-07-01 00:00:00+00:00', '2017-06-01 00:00:00+00:00', '2017-05-01 00:00:00+00:00', '2017-04-01 00:00:00+00:00', '2017-03-01 00:00:00+00:00', '2017-02-01 00:00:00+00:00', '2017-01-01 00:00:00+00:00', '2016-12-01 00:00:00+00:00', '2016-11-01 00:00:00+00:00', '2016-10-01 00:00:00+00:00', '2016-09-01 00:00:00+00:00', '2016-08-01 00:00:00+00:00', '2016-07-01 00:00:00+00:00', '2016-06-01 00:00:00+00:00', '2016-05-01 00:00:00+00:00', '2016-04-01 00:00:00+00:00', '2016-03-01 00:00:00+00:00', '2016-02-01 00:00:00+00:00', '2016-01-01 00:00:00+00:00'] Length: 93, dtype: datetime64[ns, UTC]
- 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 :
- 73.65000000000002 0.09999999999999998 0.0 53.55 0.0 -0.09999999999999999
array(0)
- xPandasIndex
PandasIndex(Index([ 73.70000000000002, 73.80000000000001, 73.9, 74.0, 74.10000000000002, 74.20000000000002, 74.30000000000001, 74.4, 74.5, 74.60000000000002, ... 134.10000000000002, 134.20000000000005, 134.3, 134.40000000000003, 134.5, 134.60000000000002, 134.70000000000005, 134.8, 134.90000000000003, 135.0], dtype='float64', name='x', length=614))
- yPandasIndex
PandasIndex(Index([ 53.5, 53.4, 53.3, 53.199999999999996, 53.1, 53.0, 52.9, 52.8, 52.699999999999996, 52.6, ... 19.099999999999994, 19.0, 18.89999999999999, 18.799999999999997, 18.700000000000003, 18.599999999999994, 18.5, 18.39999999999999, 18.299999999999997, 18.200000000000003], dtype='float64', name='y', length=354))
- timePandasIndex
PandasIndex(DatetimeIndex(['2023-09-01 00:00:00+00:00', '2023-08-01 00:00:00+00:00', '2023-07-01 00:00:00+00:00', '2023-06-01 00:00:00+00:00', '2023-05-01 00:00:00+00:00', '2023-04-01 00:00:00+00:00', '2023-03-01 00:00:00+00:00', '2023-02-01 00:00:00+00:00', '2023-01-01 00:00:00+00:00', '2022-12-01 00:00:00+00:00', '2022-11-01 00:00:00+00:00', '2022-10-01 00:00:00+00:00', '2022-09-01 00:00:00+00:00', '2022-08-01 00:00:00+00:00', '2022-07-01 00:00:00+00:00', '2022-06-01 00:00:00+00:00', '2022-05-01 00:00:00+00:00', '2022-04-01 00:00:00+00:00', '2022-03-01 00:00:00+00:00', '2022-02-01 00:00:00+00:00', '2022-01-01 00:00:00+00:00', '2021-12-01 00:00:00+00:00', '2021-11-01 00:00:00+00:00', '2021-10-01 00:00:00+00:00', '2021-09-01 00:00:00+00:00', '2021-08-01 00:00:00+00:00', '2021-07-01 00:00:00+00:00', '2021-06-01 00:00:00+00:00', '2021-05-01 00:00:00+00:00', '2021-04-01 00:00:00+00:00', '2021-03-01 00:00:00+00:00', '2021-02-01 00:00:00+00:00', '2021-01-01 00:00:00+00:00', '2020-12-01 00:00:00+00:00', '2020-11-01 00:00:00+00:00', '2020-10-01 00:00:00+00:00', '2020-09-01 00:00:00+00:00', '2020-08-01 00:00:00+00:00', '2020-07-01 00:00:00+00:00', '2020-06-01 00:00:00+00:00', '2020-05-01 00:00:00+00:00', '2020-04-01 00:00:00+00:00', '2020-03-01 00:00:00+00:00', '2020-02-01 00:00:00+00:00', '2020-01-01 00:00:00+00:00', '2019-12-01 00:00:00+00:00', '2019-11-01 00:00:00+00:00', '2019-10-01 00:00:00+00:00', '2019-09-01 00:00:00+00:00', '2019-08-01 00:00:00+00:00', '2019-07-01 00:00:00+00:00', '2019-06-01 00:00:00+00:00', '2019-05-01 00:00:00+00:00', '2019-04-01 00:00:00+00:00', '2019-03-01 00:00:00+00:00', '2019-02-01 00:00:00+00:00', '2019-01-01 00:00:00+00:00', '2018-12-01 00:00:00+00:00', '2018-11-01 00:00:00+00:00', '2018-10-01 00:00:00+00:00', '2018-09-01 00:00:00+00:00', '2018-08-01 00:00:00+00:00', '2018-07-01 00:00:00+00:00', '2018-06-01 00:00:00+00:00', '2018-05-01 00:00:00+00:00', '2018-04-01 00:00:00+00:00', '2018-03-01 00:00:00+00:00', '2018-02-01 00:00:00+00:00', '2018-01-01 00:00:00+00:00', '2017-12-01 00:00:00+00:00', '2017-11-01 00:00:00+00:00', '2017-10-01 00:00:00+00:00', '2017-09-01 00:00:00+00:00', '2017-08-01 00:00:00+00:00', '2017-07-01 00:00:00+00:00', '2017-06-01 00:00:00+00:00', '2017-05-01 00:00:00+00:00', '2017-04-01 00:00:00+00:00', '2017-03-01 00:00:00+00:00', '2017-02-01 00:00:00+00:00', '2017-01-01 00:00:00+00:00', '2016-12-01 00:00:00+00:00', '2016-11-01 00:00:00+00:00', '2016-10-01 00:00:00+00:00', '2016-09-01 00:00:00+00:00', '2016-08-01 00:00:00+00:00', '2016-07-01 00:00:00+00:00', '2016-06-01 00:00:00+00:00', '2016-05-01 00:00:00+00:00', '2016-04-01 00:00:00+00:00', '2016-03-01 00:00:00+00:00', '2016-02-01 00:00:00+00:00', '2016-01-01 00:00:00+00:00'], dtype='datetime64[ns, UTC]', name='time', freq=None))
- spec :
- RasterSpec(epsg=4326, bounds=(-180.0, -90.0, 180.0, 90.0), resolutions_xy=(0.1, 0.1))
- resolution :
- 0.1
Aggregate the data
Calculate the mean at each time across regional data. Note this is the first time that the data is actually loaded.
Plot the mean monthly NO2 using hvplot