Single Indexing#

[1]:
import pyearthtools.data
import warnings

with warnings.catch_warnings(action="ignore"):
    import site_archive_nci

Variables#

[2]:
var = 'tcwv'

Advanced Single Indexing#

In addition to retrieving a single timestep, when calling a DataIndex, if the time is not fully defined, as in that the data is hourly but the time provided is merely day, all timesteps which could fit that criterion are automatically loaded. In this call an aggregation function can be provided, which will also be run.

First setting up the ERA5 DataIndex

[3]:
era5 = pyearthtools.data.archive.ERA5(var)

There are a variety of ways to now index into this DataIndex. We could specify a particular time.

[4]:
era5('2021-01-01T01')  # Fetch on hour of ERA5 data at a specific time and date
[4]:
<xarray.Dataset> Size: 8MB
Dimensions:    (longitude: 1440, latitude: 721, time: 1)
Coordinates:
  * longitude  (longitude) float32 6kB -180.0 -179.8 -179.5 ... 179.5 179.8
  * latitude   (latitude) float32 3kB 90.0 89.75 89.5 ... -89.5 -89.75 -90.0
  * time       (time) datetime64[ns] 8B 2021-01-01T01:00:00
Data variables:
    tcwv       (time, latitude, longitude) float64 8MB dask.array<chunksize=(1, 182, 360), meta=np.ndarray>
Attributes:
    Conventions:  CF-1.6
    history:      2021-07-04 08:07:33 UTC+1000 by era5_replication_tools-1.9....
    license:      Licence to use Copernicus Products: https://apps.ecmwf.int/...
    summary:      ERA5 is the fifth generation ECMWF atmospheric reanalysis o...
    title:        ERA5 single-levels reanalysis total_column_water_vapour 202...

Retrieving all data on a certain day.

[5]:
era5('2021-01-01')  # Fetches 24 hours of data from a specific date.
[5]:
<xarray.Dataset> Size: 199MB
Dimensions:    (longitude: 1440, latitude: 721, time: 24)
Coordinates:
  * longitude  (longitude) float32 6kB -180.0 -179.8 -179.5 ... 179.5 179.8
  * latitude   (latitude) float32 3kB 90.0 89.75 89.5 ... -89.5 -89.75 -90.0
  * time       (time) datetime64[ns] 192B 2021-01-01 ... 2021-01-01T23:00:00
Data variables:
    tcwv       (time, latitude, longitude) float64 199MB dask.array<chunksize=(24, 182, 360), meta=np.ndarray>
Attributes:
    Conventions:  CF-1.6
    history:      2021-07-04 08:07:33 UTC+1000 by era5_replication_tools-1.9....
    license:      Licence to use Copernicus Products: https://apps.ecmwf.int/...
    summary:      ERA5 is the fifth generation ECMWF atmospheric reanalysis o...
    title:        ERA5 single-levels reanalysis total_column_water_vapour 202...

Providing an aggreagation function to find the ‘mean’

[6]:
era5('2021-01-01', aggregation = 'mean')
[6]:
<xarray.Dataset> Size: 8MB
Dimensions:    (longitude: 1440, latitude: 721)
Coordinates:
  * longitude  (longitude) float32 6kB -180.0 -179.8 -179.5 ... 179.5 179.8
  * latitude   (latitude) float32 3kB 90.0 89.75 89.5 ... -89.5 -89.75 -90.0
Data variables:
    tcwv       (latitude, longitude) float64 8MB dask.array<chunksize=(182, 360), meta=np.ndarray>
Attributes:
    Conventions:  CF-1.6
    history:      2021-07-04 08:07:33 UTC+1000 by era5_replication_tools-1.9....
    license:      Licence to use Copernicus Products: https://apps.ecmwf.int/...
    summary:      ERA5 is the fifth generation ECMWF atmospheric reanalysis o...
    title:        ERA5 single-levels reanalysis total_column_water_vapour 202...

Another Data source#

[7]:
sat = pyearthtools.data.archive.Himawari()
[8]:
sat('2021-01-01T01')
[8]:
<xarray.Dataset> Size: 2GB
Dimensions:                     (time: 6, latitude: 1726, longitude: 2214)
Coordinates:
  * time                        (time) datetime64[ns] 48B 2021-01-01T01:00:00...
  * latitude                    (latitude) float32 7kB -44.5 -44.48 ... -10.0
  * longitude                   (longitude) float32 9kB 112.0 112.0 ... 156.3
Data variables:
    crs                         (time) int32 24B -2147483647 ... -2147483647
    surface_global_irradiance   (time, latitude, longitude) float64 183MB dask.array<chunksize=(1, 1726, 2214), meta=np.ndarray>
    direct_normal_irradiance    (time, latitude, longitude) float64 183MB dask.array<chunksize=(1, 1726, 2214), meta=np.ndarray>
    surface_diffuse_irradiance  (time, latitude, longitude) float64 183MB dask.array<chunksize=(1, 1726, 2214), meta=np.ndarray>
    quality_mask                (time, latitude, longitude) float64 183MB dask.array<chunksize=(1, 1726, 2214), meta=np.ndarray>
    cloud_type                  (time, latitude, longitude) float32 92MB dask.array<chunksize=(1, 1726, 2214), meta=np.ndarray>
    cloud_optical_depth         (time, latitude, longitude) float64 183MB dask.array<chunksize=(1, 1726, 2214), meta=np.ndarray>
    solar_elevation             (time, latitude, longitude) float64 183MB dask.array<chunksize=(1, 1726, 2214), meta=np.ndarray>
    solar_azimuth               (time, latitude, longitude) float64 183MB dask.array<chunksize=(1, 1726, 2214), meta=np.ndarray>
    julian_date                 (time, latitude, longitude) float64 183MB dask.array<chunksize=(1, 1726, 2214), meta=np.ndarray>
Attributes: (12/52)
    Conventions:                      CF-1.7
    Metadata_Conventions:             Unidata Dataset Discovery v1.0
    acknowledgment:                   The following acknowledgement is requir...
    cdm_data_type:                    grid
    comment:                          Solar radiation data derived from satel...
    contributor_name:                 Mines ParisTech; Commonwealth of Austra...
    ...                               ...
    bias_correction_applied_meaning:  0: not applied; 1:applied
    quality:                          0
    quality_meaning:                  0: no_known_issues 1: known_issue
    project:                          Gridded Solar Observations
    references:                       Poulsen C., Majewski L. J. (2022) Gridd...
    NCO:                              netCDF Operators version 4.7.7 (Homepag...
[ ]: