import xarray as xr
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt # simple plotting
import holoviews as hv # simple plotting
import hvplot.xarray # simple plotting
import cmocean
IO zarr dataset
Minh Phan (UW Varanasi intern 2023)
This tutorial guides you through some of the fundamental functions you may use while exploring the Indian Ocean zarr dataset.
This tutorial utilizes the xarray library. You can also use the Zarr library which is specialized in handling this type of dataset. Xarray is more well-known in the Python developer community, hence the preference. It also works seamlessly with other popular data libraries like Pandas, NumPy, and Dask.
About our product
Our final product INDIAN_OCEAN_025GRID_DAILY.zarr
is a blended dataset formated as a .zarr
file, containing daily cleaned and interpolated data from fifteen variables across multiple sources, mostly from processed NASA/NOAA and Copernicus collections:
Note dataset updated in 2024 with more CHL variables
adt
: sea surface height above geoid (m)air_temp
: air temperature (K)CHL
: chlorophyll-a concentration (mg/m**3)CHL_uncertainty
: chlorophyll-a concentration uncertainty (%)mlotst
: mean ocean mixed layer thickness (m)sla
: sea level anomaly (m)so
: sea salinity concentration (m**-3 or PSL)sst
: sea surface temperature (K)topo
: topography (m)u_curr
: u-component of total surface currents (m/s)v_curr
: v-component of total surface currents (m/s)ug_curr
: u-component of geostrophic surface currents (m/s)vg_curr
: v-component of geostrophic surface currents (m/s)u_wind
: u-component of surface wind (m/s)v_wind
: v-component of surface wind (m/s)
We also computed four additional components, namely: * curr_speed
: total current speed (m/s) * curr_dir
: total current direction (degrees) * wind_speed
: surface wind speed (m/s) * wind_dir
: surface wind direction (degrees)
All variables have been broadcasted to all fit in the temporal range we have. Therefore, not all variable data are available at any time. Check out each individual variable before use.
Load necessary libraries
Read data
<xarray.Dataset> Dimensions: (time: 16071, lat: 177, lon: 241) Coordinates: * lat (lat) float32 32.0 31.75 31.5 31.25 ... -11.5 -11.75 -12.0 * lon (lon) float32 42.0 42.25 42.5 42.75 ... 101.5 101.8 102.0 * time (time) datetime64[ns] 1979-01-01 1979-01-02 ... 2022-12-31 Data variables: (12/19) CHL (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> CHL_uncertainty (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> adt (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> air_temp (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> curr_dir (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> curr_speed (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> ... ... ug_curr (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> v_curr (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> v_wind (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> vg_curr (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> wind_dir (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> wind_speed (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> Attributes: (12/17) creator_email: minhphan@uw.edu creator_name: Minh Phan creator_type: person date_created: 2023-07-19 geospatial_lat_max: 32.0 geospatial_lat_min: -12.0 ... ... geospatial_lon_units: degrees_east source: Earth & Space Research (ESR), Copernicus Clim... summary: Daily mean of 0.25 x 0.25 degrees gridded dat... time_coverage_end: 2022-12-31T23:59:59 time_coverage_start: 1979-01-01T00:00:00 title: Climate Data for Coastal Upwelling Machine Le...
- time: 16071
- lat: 177
- lon: 241
- lat(lat)float3232.0 31.75 31.5 ... -11.75 -12.0
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([ 32. , 31.75, 31.5 , 31.25, 31. , 30.75, 30.5 , 30.25, 30. , 29.75, 29.5 , 29.25, 29. , 28.75, 28.5 , 28.25, 28. , 27.75, 27.5 , 27.25, 27. , 26.75, 26.5 , 26.25, 26. , 25.75, 25.5 , 25.25, 25. , 24.75, 24.5 , 24.25, 24. , 23.75, 23.5 , 23.25, 23. , 22.75, 22.5 , 22.25, 22. , 21.75, 21.5 , 21.25, 21. , 20.75, 20.5 , 20.25, 20. , 19.75, 19.5 , 19.25, 19. , 18.75, 18.5 , 18.25, 18. , 17.75, 17.5 , 17.25, 17. , 16.75, 16.5 , 16.25, 16. , 15.75, 15.5 , 15.25, 15. , 14.75, 14.5 , 14.25, 14. , 13.75, 13.5 , 13.25, 13. , 12.75, 12.5 , 12.25, 12. , 11.75, 11.5 , 11.25, 11. , 10.75, 10.5 , 10.25, 10. , 9.75, 9.5 , 9.25, 9. , 8.75, 8.5 , 8.25, 8. , 7.75, 7.5 , 7.25, 7. , 6.75, 6.5 , 6.25, 6. , 5.75, 5.5 , 5.25, 5. , 4.75, 4.5 , 4.25, 4. , 3.75, 3.5 , 3.25, 3. , 2.75, 2.5 , 2.25, 2. , 1.75, 1.5 , 1.25, 1. , 0.75, 0.5 , 0.25, 0. , -0.25, -0.5 , -0.75, -1. , -1.25, -1.5 , -1.75, -2. , -2.25, -2.5 , -2.75, -3. , -3.25, -3.5 , -3.75, -4. , -4.25, -4.5 , -4.75, -5. , -5.25, -5.5 , -5.75, -6. , -6.25, -6.5 , -6.75, -7. , -7.25, -7.5 , -7.75, -8. , -8.25, -8.5 , -8.75, -9. , -9.25, -9.5 , -9.75, -10. , -10.25, -10.5 , -10.75, -11. , -11.25, -11.5 , -11.75, -12. ], dtype=float32)
- lon(lon)float3242.0 42.25 42.5 ... 101.8 102.0
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([ 42. , 42.25, 42.5 , ..., 101.5 , 101.75, 102. ], dtype=float32)
- time(time)datetime64[ns]1979-01-01 ... 2022-12-31
- axis :
- T
- comment :
- Data is averaged over the day
- long_name :
- time centered on the day
- standard_name :
- time
- time_bounds :
- 2000-01-01 00:00:00 to 2000-01-01 23:59:59
array(['1979-01-01T00:00:00.000000000', '1979-01-02T00:00:00.000000000', '1979-01-03T00:00:00.000000000', ..., '2022-12-29T00:00:00.000000000', '2022-12-30T00:00:00.000000000', '2022-12-31T00:00:00.000000000'], dtype='datetime64[ns]')
- CHL(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 256, 256]
- ancillary_variables :
- flags CHL_uncertainty
- coverage_content_type :
- modelResult
- input_files_reprocessings :
- Processors versions: MODIS R2022.0NRT/VIIRSN R2022.0NRT/OLCIA 07.02/VIIRSJ1 R2022.0NRT/OLCIB 07.02
- long_name :
- Chlorophyll-a concentration - Mean of the binned pixels
- standard_name :
- mass_concentration_of_chlorophyll_a_in_sea_water
- type :
- surface
- units :
- milligram m-3
- valid_max :
- 1000.0
- valid_min :
- 0.0
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - CHL_uncertainty(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 256, 256]
- coverage_content_type :
- qualityInformation
- long_name :
- Chlorophyll-a concentration - Uncertainty estimation
- units :
- %
- valid_max :
- 32767
- valid_min :
- 0
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - adt(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- comment :
- The absolute dynamic topography is the sea surface height above geoid; the adt is obtained as follows: adt=sla+mdt where mdt is the mean dynamic topography; see the product user manual for details
- grid_mapping :
- crs
- long_name :
- Absolute dynamic topography
- standard_name :
- sea_surface_height_above_geoid
- units :
- m
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - air_temp(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- long_name :
- 2 metre temperature
- nameCDM :
- 2_metre_temperature_surface
- nameECMWF :
- 2 metre temperature
- product_type :
- analysis
- shortNameECMWF :
- 2t
- standard_name :
- air_temperature
- units :
- K
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - curr_dir(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- comments :
- Computed from total surface current velocity elements. Velocities are an average over the top 30m of the mixed layer
- depth :
- 15m
- long_name :
- average direction of total surface currents
- units :
- degrees
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - curr_speed(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- comments :
- Velocities are an average over the top 30m of the mixed layer
- depth :
- 15m
- long_name :
- average total surface current speed
- units :
- m s**-1
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - mlotst(time, lat, lon)float32dask.array<chunksize=(500, 177, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 681, 1440]
- cell_methods :
- area: mean
- long_name :
- Density ocean mixed layer thickness
- standard_name :
- ocean_mixed_layer_thickness_defined_by_sigma_theta
- unit_long :
- Meters
- units :
- m
Array Chunk Bytes 2.55 GiB 81.36 MiB Shape (16071, 177, 241) (500, 177, 241) Dask graph 33 chunks in 2 graph layers Data type float32 numpy.ndarray - sla(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- ancillary_variables :
- err_sla
- comment :
- The sea level anomaly is the sea surface height above mean sea surface; it is referenced to the [1993, 2012] period; see the product user manual for details
- grid_mapping :
- crs
- long_name :
- Sea level anomaly
- standard_name :
- sea_surface_height_above_sea_level
- units :
- m
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - so(time, lat, lon)float32dask.array<chunksize=(500, 177, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 7, 341, 720]
- cell_methods :
- area: mean
- long_name :
- mean sea water salinity at 0.49 metres below ocean surface
- standard_name :
- sea_water_salinity
- unit_long :
- Practical Salinity Unit
- units :
- 1e-3
- valid_max :
- 28336
- valid_min :
- 1
Array Chunk Bytes 2.55 GiB 81.36 MiB Shape (16071, 177, 241) (500, 177, 241) Dask graph 33 chunks in 2 graph layers Data type float32 numpy.ndarray - sst(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- long_name :
- Sea surface temperature
- nameCDM :
- Sea_surface_temperature_surface
- nameECMWF :
- Sea surface temperature
- product_type :
- analysis
- shortNameECMWF :
- sst
- standard_name :
- sea_surface_temperature
- units :
- K
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - topo(lat, lon)float64dask.array<chunksize=(177, 241), meta=np.ndarray>
- colorBarMaximum :
- 8000.0
- colorBarMinimum :
- -8000.0
- colorBarPalette :
- Topography
- grid_mapping :
- GDAL_Geographics
- ioos_category :
- Location
- long_name :
- Topography
- standard_name :
- altitude
- units :
- meters
Array Chunk Bytes 333.26 kiB 333.26 kiB Shape (177, 241) (177, 241) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray - u_curr(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- zonal total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - u_wind(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- long_name :
- 10 metre U wind component
- nameCDM :
- 10_metre_U_wind_component_surface
- nameECMWF :
- 10 metre U wind component
- product_type :
- analysis
- shortNameECMWF :
- 10u
- standard_name :
- eastward_wind
- units :
- m s**-1
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - ug_curr(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- comment :
- Geostrophic velocities calculated from absolute dynamic topography
- depth :
- 15m
- long_name :
- zonal geostrophic surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148
- standard_name :
- geostrophic_eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - v_curr(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- meridional total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- northward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - v_wind(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- long_name :
- 10 metre V wind component
- nameCDM :
- 10_metre_V_wind_component_surface
- nameECMWF :
- 10 metre V wind component
- product_type :
- analysis
- shortNameECMWF :
- 10v
- standard_name :
- northward_wind
- units :
- m s**-1
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - vg_curr(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- comment :
- Geostrophic velocities calculated from absolute dynamic topography
- depth :
- 15m
- long_name :
- meridional geostrophic surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148
- standard_name :
- geostrophic_northward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - wind_dir(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- long_name :
- 10 metre wind direction
- units :
- degrees
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - wind_speed(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- long_name :
- 10 metre absolute speed
- units :
- m s**-1
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray
- latPandasIndex
PandasIndex(Index([ 32.0, 31.75, 31.5, 31.25, 31.0, 30.75, 30.5, 30.25, 30.0, 29.75, ... -9.75, -10.0, -10.25, -10.5, -10.75, -11.0, -11.25, -11.5, -11.75, -12.0], dtype='float32', name='lat', length=177))
- lonPandasIndex
PandasIndex(Index([ 42.0, 42.25, 42.5, 42.75, 43.0, 43.25, 43.5, 43.75, 44.0, 44.25, ... 99.75, 100.0, 100.25, 100.5, 100.75, 101.0, 101.25, 101.5, 101.75, 102.0], dtype='float32', name='lon', length=241))
- timePandasIndex
PandasIndex(DatetimeIndex(['1979-01-01', '1979-01-02', '1979-01-03', '1979-01-04', '1979-01-05', '1979-01-06', '1979-01-07', '1979-01-08', '1979-01-09', '1979-01-10', ... '2022-12-22', '2022-12-23', '2022-12-24', '2022-12-25', '2022-12-26', '2022-12-27', '2022-12-28', '2022-12-29', '2022-12-30', '2022-12-31'], dtype='datetime64[ns]', name='time', length=16071, freq=None))
- creator_email :
- minhphan@uw.edu
- creator_name :
- Minh Phan
- creator_type :
- person
- date_created :
- 2023-07-19
- geospatial_lat_max :
- 32.0
- geospatial_lat_min :
- -12.0
- geospatial_lat_resolution :
- 0.25
- geospatial_lat_units :
- degrees_north
- geospatial_lon_max :
- 102.0
- geospatial_lon_min :
- 42.0
- geospatial_lon_resolution :
- 0.25
- geospatial_lon_units :
- degrees_east
- source :
- Earth & Space Research (ESR), Copernicus Climate Change Service (C3S), Copernicus Marine Environment Monitoring Service (CMEMS), United States Geological Survey (USGS)
- summary :
- Daily mean of 0.25 x 0.25 degrees gridded data from multiple climate variables that may influence the patterns of coastal upwelling in the focused area
- time_coverage_end :
- 2022-12-31T23:59:59
- time_coverage_start :
- 1979-01-01T00:00:00
- title :
- Climate Data for Coastal Upwelling Machine Learning Project in Indian Ocean
We can slice data by the dimensions (latitude, longitude, time) and data variables.
<xarray.Dataset> Dimensions: (time: 16071, lat: 49, lon: 241) Coordinates: * lat (lat) float32 0.0 -0.25 -0.5 -0.75 ... -11.5 -11.75 -12.0 * lon (lon) float32 42.0 42.25 42.5 42.75 ... 101.5 101.8 102.0 * time (time) datetime64[ns] 1979-01-01 1979-01-02 ... 2022-12-31 Data variables: (12/19) CHL (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> CHL_uncertainty (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> adt (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> air_temp (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> curr_dir (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> curr_speed (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> ... ... ug_curr (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> v_curr (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> v_wind (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> vg_curr (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> wind_dir (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> wind_speed (time, lat, lon) float32 dask.array<chunksize=(100, 49, 241), meta=np.ndarray> Attributes: (12/17) creator_email: minhphan@uw.edu creator_name: Minh Phan creator_type: person date_created: 2023-07-19 geospatial_lat_max: 32.0 geospatial_lat_min: -12.0 ... ... geospatial_lon_units: degrees_east source: Earth & Space Research (ESR), Copernicus Clim... summary: Daily mean of 0.25 x 0.25 degrees gridded dat... time_coverage_end: 2022-12-31T23:59:59 time_coverage_start: 1979-01-01T00:00:00 title: Climate Data for Coastal Upwelling Machine Le...
- time: 16071
- lat: 49
- lon: 241
- lat(lat)float320.0 -0.25 -0.5 ... -11.75 -12.0
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([ 0. , -0.25, -0.5 , -0.75, -1. , -1.25, -1.5 , -1.75, -2. , -2.25, -2.5 , -2.75, -3. , -3.25, -3.5 , -3.75, -4. , -4.25, -4.5 , -4.75, -5. , -5.25, -5.5 , -5.75, -6. , -6.25, -6.5 , -6.75, -7. , -7.25, -7.5 , -7.75, -8. , -8.25, -8.5 , -8.75, -9. , -9.25, -9.5 , -9.75, -10. , -10.25, -10.5 , -10.75, -11. , -11.25, -11.5 , -11.75, -12. ], dtype=float32)
- lon(lon)float3242.0 42.25 42.5 ... 101.8 102.0
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([ 42. , 42.25, 42.5 , ..., 101.5 , 101.75, 102. ], dtype=float32)
- time(time)datetime64[ns]1979-01-01 ... 2022-12-31
- axis :
- T
- comment :
- Data is averaged over the day
- long_name :
- time centered on the day
- standard_name :
- time
- time_bounds :
- 2000-01-01 00:00:00 to 2000-01-01 23:59:59
array(['1979-01-01T00:00:00.000000000', '1979-01-02T00:00:00.000000000', '1979-01-03T00:00:00.000000000', ..., '2022-12-29T00:00:00.000000000', '2022-12-30T00:00:00.000000000', '2022-12-31T00:00:00.000000000'], dtype='datetime64[ns]')
- CHL(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 256, 256]
- ancillary_variables :
- flags CHL_uncertainty
- coverage_content_type :
- modelResult
- input_files_reprocessings :
- Processors versions: MODIS R2022.0NRT/VIIRSN R2022.0NRT/OLCIA 07.02/VIIRSJ1 R2022.0NRT/OLCIB 07.02
- long_name :
- Chlorophyll-a concentration - Mean of the binned pixels
- standard_name :
- mass_concentration_of_chlorophyll_a_in_sea_water
- type :
- surface
- units :
- milligram m-3
- valid_max :
- 1000.0
- valid_min :
- 0.0
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - CHL_uncertainty(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 256, 256]
- coverage_content_type :
- qualityInformation
- long_name :
- Chlorophyll-a concentration - Uncertainty estimation
- units :
- %
- valid_max :
- 32767
- valid_min :
- 0
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - adt(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- comment :
- The absolute dynamic topography is the sea surface height above geoid; the adt is obtained as follows: adt=sla+mdt where mdt is the mean dynamic topography; see the product user manual for details
- grid_mapping :
- crs
- long_name :
- Absolute dynamic topography
- standard_name :
- sea_surface_height_above_geoid
- units :
- m
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - air_temp(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- long_name :
- 2 metre temperature
- nameCDM :
- 2_metre_temperature_surface
- nameECMWF :
- 2 metre temperature
- product_type :
- analysis
- shortNameECMWF :
- 2t
- standard_name :
- air_temperature
- units :
- K
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - curr_dir(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- comments :
- Computed from total surface current velocity elements. Velocities are an average over the top 30m of the mixed layer
- depth :
- 15m
- long_name :
- average direction of total surface currents
- units :
- degrees
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - curr_speed(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- comments :
- Velocities are an average over the top 30m of the mixed layer
- depth :
- 15m
- long_name :
- average total surface current speed
- units :
- m s**-1
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - mlotst(time, lat, lon)float32dask.array<chunksize=(500, 49, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 681, 1440]
- cell_methods :
- area: mean
- long_name :
- Density ocean mixed layer thickness
- standard_name :
- ocean_mixed_layer_thickness_defined_by_sigma_theta
- unit_long :
- Meters
- units :
- m
Array Chunk Bytes 723.96 MiB 22.52 MiB Shape (16071, 49, 241) (500, 49, 241) Dask graph 33 chunks in 3 graph layers Data type float32 numpy.ndarray - sla(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- ancillary_variables :
- err_sla
- comment :
- The sea level anomaly is the sea surface height above mean sea surface; it is referenced to the [1993, 2012] period; see the product user manual for details
- grid_mapping :
- crs
- long_name :
- Sea level anomaly
- standard_name :
- sea_surface_height_above_sea_level
- units :
- m
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - so(time, lat, lon)float32dask.array<chunksize=(500, 49, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 7, 341, 720]
- cell_methods :
- area: mean
- long_name :
- mean sea water salinity at 0.49 metres below ocean surface
- standard_name :
- sea_water_salinity
- unit_long :
- Practical Salinity Unit
- units :
- 1e-3
- valid_max :
- 28336
- valid_min :
- 1
Array Chunk Bytes 723.96 MiB 22.52 MiB Shape (16071, 49, 241) (500, 49, 241) Dask graph 33 chunks in 3 graph layers Data type float32 numpy.ndarray - sst(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- long_name :
- Sea surface temperature
- nameCDM :
- Sea_surface_temperature_surface
- nameECMWF :
- Sea surface temperature
- product_type :
- analysis
- shortNameECMWF :
- sst
- standard_name :
- sea_surface_temperature
- units :
- K
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - topo(lat, lon)float64dask.array<chunksize=(49, 241), meta=np.ndarray>
- colorBarMaximum :
- 8000.0
- colorBarMinimum :
- -8000.0
- colorBarPalette :
- Topography
- grid_mapping :
- GDAL_Geographics
- ioos_category :
- Location
- long_name :
- Topography
- standard_name :
- altitude
- units :
- meters
Array Chunk Bytes 92.26 kiB 92.26 kiB Shape (49, 241) (49, 241) Dask graph 1 chunks in 3 graph layers Data type float64 numpy.ndarray - u_curr(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- zonal total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - u_wind(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- long_name :
- 10 metre U wind component
- nameCDM :
- 10_metre_U_wind_component_surface
- nameECMWF :
- 10 metre U wind component
- product_type :
- analysis
- shortNameECMWF :
- 10u
- standard_name :
- eastward_wind
- units :
- m s**-1
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - ug_curr(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- comment :
- Geostrophic velocities calculated from absolute dynamic topography
- depth :
- 15m
- long_name :
- zonal geostrophic surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148
- standard_name :
- geostrophic_eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - v_curr(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- meridional total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- northward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - v_wind(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- long_name :
- 10 metre V wind component
- nameCDM :
- 10_metre_V_wind_component_surface
- nameECMWF :
- 10 metre V wind component
- product_type :
- analysis
- shortNameECMWF :
- 10v
- standard_name :
- northward_wind
- units :
- m s**-1
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - vg_curr(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- comment :
- Geostrophic velocities calculated from absolute dynamic topography
- depth :
- 15m
- long_name :
- meridional geostrophic surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148
- standard_name :
- geostrophic_northward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - wind_dir(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- long_name :
- 10 metre wind direction
- units :
- degrees
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - wind_speed(time, lat, lon)float32dask.array<chunksize=(100, 49, 241), meta=np.ndarray>
- long_name :
- 10 metre absolute speed
- units :
- m s**-1
Array Chunk Bytes 723.96 MiB 4.50 MiB Shape (16071, 49, 241) (100, 49, 241) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray
- latPandasIndex
PandasIndex(Index([ 0.0, -0.25, -0.5, -0.75, -1.0, -1.25, -1.5, -1.75, -2.0, -2.25, -2.5, -2.75, -3.0, -3.25, -3.5, -3.75, -4.0, -4.25, -4.5, -4.75, -5.0, -5.25, -5.5, -5.75, -6.0, -6.25, -6.5, -6.75, -7.0, -7.25, -7.5, -7.75, -8.0, -8.25, -8.5, -8.75, -9.0, -9.25, -9.5, -9.75, -10.0, -10.25, -10.5, -10.75, -11.0, -11.25, -11.5, -11.75, -12.0], dtype='float32', name='lat'))
- lonPandasIndex
PandasIndex(Index([ 42.0, 42.25, 42.5, 42.75, 43.0, 43.25, 43.5, 43.75, 44.0, 44.25, ... 99.75, 100.0, 100.25, 100.5, 100.75, 101.0, 101.25, 101.5, 101.75, 102.0], dtype='float32', name='lon', length=241))
- timePandasIndex
PandasIndex(DatetimeIndex(['1979-01-01', '1979-01-02', '1979-01-03', '1979-01-04', '1979-01-05', '1979-01-06', '1979-01-07', '1979-01-08', '1979-01-09', '1979-01-10', ... '2022-12-22', '2022-12-23', '2022-12-24', '2022-12-25', '2022-12-26', '2022-12-27', '2022-12-28', '2022-12-29', '2022-12-30', '2022-12-31'], dtype='datetime64[ns]', name='time', length=16071, freq=None))
- creator_email :
- minhphan@uw.edu
- creator_name :
- Minh Phan
- creator_type :
- person
- date_created :
- 2023-07-19
- geospatial_lat_max :
- 32.0
- geospatial_lat_min :
- -12.0
- geospatial_lat_resolution :
- 0.25
- geospatial_lat_units :
- degrees_north
- geospatial_lon_max :
- 102.0
- geospatial_lon_min :
- 42.0
- geospatial_lon_resolution :
- 0.25
- geospatial_lon_units :
- degrees_east
- source :
- Earth & Space Research (ESR), Copernicus Climate Change Service (C3S), Copernicus Marine Environment Monitoring Service (CMEMS), United States Geological Survey (USGS)
- summary :
- Daily mean of 0.25 x 0.25 degrees gridded data from multiple climate variables that may influence the patterns of coastal upwelling in the focused area
- time_coverage_end :
- 2022-12-31T23:59:59
- time_coverage_start :
- 1979-01-01T00:00:00
- title :
- Climate Data for Coastal Upwelling Machine Learning Project in Indian Ocean
<xarray.Dataset> Dimensions: (time: 16071, lat: 177, lon: 13) Coordinates: * lat (lat) float32 32.0 31.75 31.5 31.25 ... -11.5 -11.75 -12.0 * lon (lon) float32 42.0 42.25 42.5 42.75 ... 44.5 44.75 45.0 * time (time) datetime64[ns] 1979-01-01 1979-01-02 ... 2022-12-31 Data variables: (12/19) CHL (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> CHL_uncertainty (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> adt (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> air_temp (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> curr_dir (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> curr_speed (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> ... ... ug_curr (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> v_curr (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> v_wind (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> vg_curr (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> wind_dir (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> wind_speed (time, lat, lon) float32 dask.array<chunksize=(100, 177, 13), meta=np.ndarray> Attributes: (12/17) creator_email: minhphan@uw.edu creator_name: Minh Phan creator_type: person date_created: 2023-07-19 geospatial_lat_max: 32.0 geospatial_lat_min: -12.0 ... ... geospatial_lon_units: degrees_east source: Earth & Space Research (ESR), Copernicus Clim... summary: Daily mean of 0.25 x 0.25 degrees gridded dat... time_coverage_end: 2022-12-31T23:59:59 time_coverage_start: 1979-01-01T00:00:00 title: Climate Data for Coastal Upwelling Machine Le...
- time: 16071
- lat: 177
- lon: 13
- lat(lat)float3232.0 31.75 31.5 ... -11.75 -12.0
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([ 32. , 31.75, 31.5 , 31.25, 31. , 30.75, 30.5 , 30.25, 30. , 29.75, 29.5 , 29.25, 29. , 28.75, 28.5 , 28.25, 28. , 27.75, 27.5 , 27.25, 27. , 26.75, 26.5 , 26.25, 26. , 25.75, 25.5 , 25.25, 25. , 24.75, 24.5 , 24.25, 24. , 23.75, 23.5 , 23.25, 23. , 22.75, 22.5 , 22.25, 22. , 21.75, 21.5 , 21.25, 21. , 20.75, 20.5 , 20.25, 20. , 19.75, 19.5 , 19.25, 19. , 18.75, 18.5 , 18.25, 18. , 17.75, 17.5 , 17.25, 17. , 16.75, 16.5 , 16.25, 16. , 15.75, 15.5 , 15.25, 15. , 14.75, 14.5 , 14.25, 14. , 13.75, 13.5 , 13.25, 13. , 12.75, 12.5 , 12.25, 12. , 11.75, 11.5 , 11.25, 11. , 10.75, 10.5 , 10.25, 10. , 9.75, 9.5 , 9.25, 9. , 8.75, 8.5 , 8.25, 8. , 7.75, 7.5 , 7.25, 7. , 6.75, 6.5 , 6.25, 6. , 5.75, 5.5 , 5.25, 5. , 4.75, 4.5 , 4.25, 4. , 3.75, 3.5 , 3.25, 3. , 2.75, 2.5 , 2.25, 2. , 1.75, 1.5 , 1.25, 1. , 0.75, 0.5 , 0.25, 0. , -0.25, -0.5 , -0.75, -1. , -1.25, -1.5 , -1.75, -2. , -2.25, -2.5 , -2.75, -3. , -3.25, -3.5 , -3.75, -4. , -4.25, -4.5 , -4.75, -5. , -5.25, -5.5 , -5.75, -6. , -6.25, -6.5 , -6.75, -7. , -7.25, -7.5 , -7.75, -8. , -8.25, -8.5 , -8.75, -9. , -9.25, -9.5 , -9.75, -10. , -10.25, -10.5 , -10.75, -11. , -11.25, -11.5 , -11.75, -12. ], dtype=float32)
- lon(lon)float3242.0 42.25 42.5 ... 44.5 44.75 45.0
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([42. , 42.25, 42.5 , 42.75, 43. , 43.25, 43.5 , 43.75, 44. , 44.25, 44.5 , 44.75, 45. ], dtype=float32)
- time(time)datetime64[ns]1979-01-01 ... 2022-12-31
- axis :
- T
- comment :
- Data is averaged over the day
- long_name :
- time centered on the day
- standard_name :
- time
- time_bounds :
- 2000-01-01 00:00:00 to 2000-01-01 23:59:59
array(['1979-01-01T00:00:00.000000000', '1979-01-02T00:00:00.000000000', '1979-01-03T00:00:00.000000000', ..., '2022-12-29T00:00:00.000000000', '2022-12-30T00:00:00.000000000', '2022-12-31T00:00:00.000000000'], dtype='datetime64[ns]')
- CHL(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- _ChunkSizes :
- [1, 256, 256]
- ancillary_variables :
- flags CHL_uncertainty
- coverage_content_type :
- modelResult
- input_files_reprocessings :
- Processors versions: MODIS R2022.0NRT/VIIRSN R2022.0NRT/OLCIA 07.02/VIIRSJ1 R2022.0NRT/OLCIB 07.02
- long_name :
- Chlorophyll-a concentration - Mean of the binned pixels
- standard_name :
- mass_concentration_of_chlorophyll_a_in_sea_water
- type :
- surface
- units :
- milligram m-3
- valid_max :
- 1000.0
- valid_min :
- 0.0
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - CHL_uncertainty(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- _ChunkSizes :
- [1, 256, 256]
- coverage_content_type :
- qualityInformation
- long_name :
- Chlorophyll-a concentration - Uncertainty estimation
- units :
- %
- valid_max :
- 32767
- valid_min :
- 0
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - adt(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- comment :
- The absolute dynamic topography is the sea surface height above geoid; the adt is obtained as follows: adt=sla+mdt where mdt is the mean dynamic topography; see the product user manual for details
- grid_mapping :
- crs
- long_name :
- Absolute dynamic topography
- standard_name :
- sea_surface_height_above_geoid
- units :
- m
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - air_temp(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- long_name :
- 2 metre temperature
- nameCDM :
- 2_metre_temperature_surface
- nameECMWF :
- 2 metre temperature
- product_type :
- analysis
- shortNameECMWF :
- 2t
- standard_name :
- air_temperature
- units :
- K
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - curr_dir(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- comments :
- Computed from total surface current velocity elements. Velocities are an average over the top 30m of the mixed layer
- depth :
- 15m
- long_name :
- average direction of total surface currents
- units :
- degrees
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - curr_speed(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- comments :
- Velocities are an average over the top 30m of the mixed layer
- depth :
- 15m
- long_name :
- average total surface current speed
- units :
- m s**-1
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - mlotst(time, lat, lon)float32dask.array<chunksize=(500, 177, 13), meta=np.ndarray>
- _ChunkSizes :
- [1, 681, 1440]
- cell_methods :
- area: mean
- long_name :
- Density ocean mixed layer thickness
- standard_name :
- ocean_mixed_layer_thickness_defined_by_sigma_theta
- unit_long :
- Meters
- units :
- m
Array Chunk Bytes 141.07 MiB 4.39 MiB Shape (16071, 177, 13) (500, 177, 13) Dask graph 33 chunks in 3 graph layers Data type float32 numpy.ndarray - sla(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- ancillary_variables :
- err_sla
- comment :
- The sea level anomaly is the sea surface height above mean sea surface; it is referenced to the [1993, 2012] period; see the product user manual for details
- grid_mapping :
- crs
- long_name :
- Sea level anomaly
- standard_name :
- sea_surface_height_above_sea_level
- units :
- m
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - so(time, lat, lon)float32dask.array<chunksize=(500, 177, 13), meta=np.ndarray>
- _ChunkSizes :
- [1, 7, 341, 720]
- cell_methods :
- area: mean
- long_name :
- mean sea water salinity at 0.49 metres below ocean surface
- standard_name :
- sea_water_salinity
- unit_long :
- Practical Salinity Unit
- units :
- 1e-3
- valid_max :
- 28336
- valid_min :
- 1
Array Chunk Bytes 141.07 MiB 4.39 MiB Shape (16071, 177, 13) (500, 177, 13) Dask graph 33 chunks in 3 graph layers Data type float32 numpy.ndarray - sst(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- long_name :
- Sea surface temperature
- nameCDM :
- Sea_surface_temperature_surface
- nameECMWF :
- Sea surface temperature
- product_type :
- analysis
- shortNameECMWF :
- sst
- standard_name :
- sea_surface_temperature
- units :
- K
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - topo(lat, lon)float64dask.array<chunksize=(177, 13), meta=np.ndarray>
- colorBarMaximum :
- 8000.0
- colorBarMinimum :
- -8000.0
- colorBarPalette :
- Topography
- grid_mapping :
- GDAL_Geographics
- ioos_category :
- Location
- long_name :
- Topography
- standard_name :
- altitude
- units :
- meters
Array Chunk Bytes 17.98 kiB 17.98 kiB Shape (177, 13) (177, 13) Dask graph 1 chunks in 3 graph layers Data type float64 numpy.ndarray - u_curr(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- zonal total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - u_wind(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- long_name :
- 10 metre U wind component
- nameCDM :
- 10_metre_U_wind_component_surface
- nameECMWF :
- 10 metre U wind component
- product_type :
- analysis
- shortNameECMWF :
- 10u
- standard_name :
- eastward_wind
- units :
- m s**-1
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - ug_curr(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- comment :
- Geostrophic velocities calculated from absolute dynamic topography
- depth :
- 15m
- long_name :
- zonal geostrophic surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148
- standard_name :
- geostrophic_eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - v_curr(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- meridional total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- northward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - v_wind(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- long_name :
- 10 metre V wind component
- nameCDM :
- 10_metre_V_wind_component_surface
- nameECMWF :
- 10 metre V wind component
- product_type :
- analysis
- shortNameECMWF :
- 10v
- standard_name :
- northward_wind
- units :
- m s**-1
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - vg_curr(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- comment :
- Geostrophic velocities calculated from absolute dynamic topography
- depth :
- 15m
- long_name :
- meridional geostrophic surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148
- standard_name :
- geostrophic_northward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - wind_dir(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- long_name :
- 10 metre wind direction
- units :
- degrees
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - wind_speed(time, lat, lon)float32dask.array<chunksize=(100, 177, 13), meta=np.ndarray>
- long_name :
- 10 metre absolute speed
- units :
- m s**-1
Array Chunk Bytes 141.07 MiB 898.83 kiB Shape (16071, 177, 13) (100, 177, 13) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray
- latPandasIndex
PandasIndex(Index([ 32.0, 31.75, 31.5, 31.25, 31.0, 30.75, 30.5, 30.25, 30.0, 29.75, ... -9.75, -10.0, -10.25, -10.5, -10.75, -11.0, -11.25, -11.5, -11.75, -12.0], dtype='float32', name='lat', length=177))
- lonPandasIndex
PandasIndex(Index([ 42.0, 42.25, 42.5, 42.75, 43.0, 43.25, 43.5, 43.75, 44.0, 44.25, 44.5, 44.75, 45.0], dtype='float32', name='lon'))
- timePandasIndex
PandasIndex(DatetimeIndex(['1979-01-01', '1979-01-02', '1979-01-03', '1979-01-04', '1979-01-05', '1979-01-06', '1979-01-07', '1979-01-08', '1979-01-09', '1979-01-10', ... '2022-12-22', '2022-12-23', '2022-12-24', '2022-12-25', '2022-12-26', '2022-12-27', '2022-12-28', '2022-12-29', '2022-12-30', '2022-12-31'], dtype='datetime64[ns]', name='time', length=16071, freq=None))
- creator_email :
- minhphan@uw.edu
- creator_name :
- Minh Phan
- creator_type :
- person
- date_created :
- 2023-07-19
- geospatial_lat_max :
- 32.0
- geospatial_lat_min :
- -12.0
- geospatial_lat_resolution :
- 0.25
- geospatial_lat_units :
- degrees_north
- geospatial_lon_max :
- 102.0
- geospatial_lon_min :
- 42.0
- geospatial_lon_resolution :
- 0.25
- geospatial_lon_units :
- degrees_east
- source :
- Earth & Space Research (ESR), Copernicus Climate Change Service (C3S), Copernicus Marine Environment Monitoring Service (CMEMS), United States Geological Survey (USGS)
- summary :
- Daily mean of 0.25 x 0.25 degrees gridded data from multiple climate variables that may influence the patterns of coastal upwelling in the focused area
- time_coverage_end :
- 2022-12-31T23:59:59
- time_coverage_start :
- 1979-01-01T00:00:00
- title :
- Climate Data for Coastal Upwelling Machine Learning Project in Indian Ocean
<xarray.Dataset> Dimensions: (time: 730, lat: 177, lon: 241) Coordinates: * lat (lat) float32 32.0 31.75 31.5 31.25 ... -11.5 -11.75 -12.0 * lon (lon) float32 42.0 42.25 42.5 42.75 ... 101.5 101.8 102.0 * time (time) datetime64[ns] 1998-01-01 1998-01-02 ... 1999-12-31 Data variables: (12/19) CHL (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> CHL_uncertainty (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> adt (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> air_temp (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> curr_dir (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> curr_speed (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> ... ... ug_curr (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> v_curr (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> v_wind (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> vg_curr (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> wind_dir (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> wind_speed (time, lat, lon) float32 dask.array<chunksize=(60, 177, 241), meta=np.ndarray> Attributes: (12/17) creator_email: minhphan@uw.edu creator_name: Minh Phan creator_type: person date_created: 2023-07-19 geospatial_lat_max: 32.0 geospatial_lat_min: -12.0 ... ... geospatial_lon_units: degrees_east source: Earth & Space Research (ESR), Copernicus Clim... summary: Daily mean of 0.25 x 0.25 degrees gridded dat... time_coverage_end: 2022-12-31T23:59:59 time_coverage_start: 1979-01-01T00:00:00 title: Climate Data for Coastal Upwelling Machine Le...
- time: 730
- lat: 177
- lon: 241
- lat(lat)float3232.0 31.75 31.5 ... -11.75 -12.0
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([ 32. , 31.75, 31.5 , 31.25, 31. , 30.75, 30.5 , 30.25, 30. , 29.75, 29.5 , 29.25, 29. , 28.75, 28.5 , 28.25, 28. , 27.75, 27.5 , 27.25, 27. , 26.75, 26.5 , 26.25, 26. , 25.75, 25.5 , 25.25, 25. , 24.75, 24.5 , 24.25, 24. , 23.75, 23.5 , 23.25, 23. , 22.75, 22.5 , 22.25, 22. , 21.75, 21.5 , 21.25, 21. , 20.75, 20.5 , 20.25, 20. , 19.75, 19.5 , 19.25, 19. , 18.75, 18.5 , 18.25, 18. , 17.75, 17.5 , 17.25, 17. , 16.75, 16.5 , 16.25, 16. , 15.75, 15.5 , 15.25, 15. , 14.75, 14.5 , 14.25, 14. , 13.75, 13.5 , 13.25, 13. , 12.75, 12.5 , 12.25, 12. , 11.75, 11.5 , 11.25, 11. , 10.75, 10.5 , 10.25, 10. , 9.75, 9.5 , 9.25, 9. , 8.75, 8.5 , 8.25, 8. , 7.75, 7.5 , 7.25, 7. , 6.75, 6.5 , 6.25, 6. , 5.75, 5.5 , 5.25, 5. , 4.75, 4.5 , 4.25, 4. , 3.75, 3.5 , 3.25, 3. , 2.75, 2.5 , 2.25, 2. , 1.75, 1.5 , 1.25, 1. , 0.75, 0.5 , 0.25, 0. , -0.25, -0.5 , -0.75, -1. , -1.25, -1.5 , -1.75, -2. , -2.25, -2.5 , -2.75, -3. , -3.25, -3.5 , -3.75, -4. , -4.25, -4.5 , -4.75, -5. , -5.25, -5.5 , -5.75, -6. , -6.25, -6.5 , -6.75, -7. , -7.25, -7.5 , -7.75, -8. , -8.25, -8.5 , -8.75, -9. , -9.25, -9.5 , -9.75, -10. , -10.25, -10.5 , -10.75, -11. , -11.25, -11.5 , -11.75, -12. ], dtype=float32)
- lon(lon)float3242.0 42.25 42.5 ... 101.8 102.0
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([ 42. , 42.25, 42.5 , ..., 101.5 , 101.75, 102. ], dtype=float32)
- time(time)datetime64[ns]1998-01-01 ... 1999-12-31
- axis :
- T
- comment :
- Data is averaged over the day
- long_name :
- time centered on the day
- standard_name :
- time
- time_bounds :
- 2000-01-01 00:00:00 to 2000-01-01 23:59:59
array(['1998-01-01T00:00:00.000000000', '1998-01-02T00:00:00.000000000', '1998-01-03T00:00:00.000000000', ..., '1999-12-29T00:00:00.000000000', '1999-12-30T00:00:00.000000000', '1999-12-31T00:00:00.000000000'], dtype='datetime64[ns]')
- CHL(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 256, 256]
- ancillary_variables :
- flags CHL_uncertainty
- coverage_content_type :
- modelResult
- input_files_reprocessings :
- Processors versions: MODIS R2022.0NRT/VIIRSN R2022.0NRT/OLCIA 07.02/VIIRSJ1 R2022.0NRT/OLCIB 07.02
- long_name :
- Chlorophyll-a concentration - Mean of the binned pixels
- standard_name :
- mass_concentration_of_chlorophyll_a_in_sea_water
- type :
- surface
- units :
- milligram m-3
- valid_max :
- 1000.0
- valid_min :
- 0.0
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - CHL_uncertainty(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 256, 256]
- coverage_content_type :
- qualityInformation
- long_name :
- Chlorophyll-a concentration - Uncertainty estimation
- units :
- %
- valid_max :
- 32767
- valid_min :
- 0
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - adt(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- comment :
- The absolute dynamic topography is the sea surface height above geoid; the adt is obtained as follows: adt=sla+mdt where mdt is the mean dynamic topography; see the product user manual for details
- grid_mapping :
- crs
- long_name :
- Absolute dynamic topography
- standard_name :
- sea_surface_height_above_geoid
- units :
- m
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - air_temp(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- long_name :
- 2 metre temperature
- nameCDM :
- 2_metre_temperature_surface
- nameECMWF :
- 2 metre temperature
- product_type :
- analysis
- shortNameECMWF :
- 2t
- standard_name :
- air_temperature
- units :
- K
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - curr_dir(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- comments :
- Computed from total surface current velocity elements. Velocities are an average over the top 30m of the mixed layer
- depth :
- 15m
- long_name :
- average direction of total surface currents
- units :
- degrees
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - curr_speed(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- comments :
- Velocities are an average over the top 30m of the mixed layer
- depth :
- 15m
- long_name :
- average total surface current speed
- units :
- m s**-1
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - mlotst(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 681, 1440]
- cell_methods :
- area: mean
- long_name :
- Density ocean mixed layer thickness
- standard_name :
- ocean_mixed_layer_thickness_defined_by_sigma_theta
- unit_long :
- Meters
- units :
- m
Array Chunk Bytes 118.79 MiB 81.36 MiB Shape (730, 177, 241) (500, 177, 241) Dask graph 3 chunks in 3 graph layers Data type float32 numpy.ndarray - sla(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- ancillary_variables :
- err_sla
- comment :
- The sea level anomaly is the sea surface height above mean sea surface; it is referenced to the [1993, 2012] period; see the product user manual for details
- grid_mapping :
- crs
- long_name :
- Sea level anomaly
- standard_name :
- sea_surface_height_above_sea_level
- units :
- m
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - so(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- _ChunkSizes :
- [1, 7, 341, 720]
- cell_methods :
- area: mean
- long_name :
- mean sea water salinity at 0.49 metres below ocean surface
- standard_name :
- sea_water_salinity
- unit_long :
- Practical Salinity Unit
- units :
- 1e-3
- valid_max :
- 28336
- valid_min :
- 1
Array Chunk Bytes 118.79 MiB 81.36 MiB Shape (730, 177, 241) (500, 177, 241) Dask graph 3 chunks in 3 graph layers Data type float32 numpy.ndarray - sst(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- long_name :
- Sea surface temperature
- nameCDM :
- Sea_surface_temperature_surface
- nameECMWF :
- Sea surface temperature
- product_type :
- analysis
- shortNameECMWF :
- sst
- standard_name :
- sea_surface_temperature
- units :
- K
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - topo(lat, lon)float64dask.array<chunksize=(177, 241), meta=np.ndarray>
- colorBarMaximum :
- 8000.0
- colorBarMinimum :
- -8000.0
- colorBarPalette :
- Topography
- grid_mapping :
- GDAL_Geographics
- ioos_category :
- Location
- long_name :
- Topography
- standard_name :
- altitude
- units :
- meters
Array Chunk Bytes 333.26 kiB 333.26 kiB Shape (177, 241) (177, 241) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray - u_curr(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- zonal total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - u_wind(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- long_name :
- 10 metre U wind component
- nameCDM :
- 10_metre_U_wind_component_surface
- nameECMWF :
- 10 metre U wind component
- product_type :
- analysis
- shortNameECMWF :
- 10u
- standard_name :
- eastward_wind
- units :
- m s**-1
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - ug_curr(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- comment :
- Geostrophic velocities calculated from absolute dynamic topography
- depth :
- 15m
- long_name :
- zonal geostrophic surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148
- standard_name :
- geostrophic_eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - v_curr(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- meridional total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- northward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - v_wind(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- long_name :
- 10 metre V wind component
- nameCDM :
- 10_metre_V_wind_component_surface
- nameECMWF :
- 10 metre V wind component
- product_type :
- analysis
- shortNameECMWF :
- 10v
- standard_name :
- northward_wind
- units :
- m s**-1
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - vg_curr(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- comment :
- Geostrophic velocities calculated from absolute dynamic topography
- depth :
- 15m
- long_name :
- meridional geostrophic surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148
- standard_name :
- geostrophic_northward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - wind_dir(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- long_name :
- 10 metre wind direction
- units :
- degrees
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - wind_speed(time, lat, lon)float32dask.array<chunksize=(60, 177, 241), meta=np.ndarray>
- long_name :
- 10 metre absolute speed
- units :
- m s**-1
Array Chunk Bytes 118.79 MiB 16.27 MiB Shape (730, 177, 241) (100, 177, 241) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray
- latPandasIndex
PandasIndex(Index([ 32.0, 31.75, 31.5, 31.25, 31.0, 30.75, 30.5, 30.25, 30.0, 29.75, ... -9.75, -10.0, -10.25, -10.5, -10.75, -11.0, -11.25, -11.5, -11.75, -12.0], dtype='float32', name='lat', length=177))
- lonPandasIndex
PandasIndex(Index([ 42.0, 42.25, 42.5, 42.75, 43.0, 43.25, 43.5, 43.75, 44.0, 44.25, ... 99.75, 100.0, 100.25, 100.5, 100.75, 101.0, 101.25, 101.5, 101.75, 102.0], dtype='float32', name='lon', length=241))
- timePandasIndex
PandasIndex(DatetimeIndex(['1998-01-01', '1998-01-02', '1998-01-03', '1998-01-04', '1998-01-05', '1998-01-06', '1998-01-07', '1998-01-08', '1998-01-09', '1998-01-10', ... '1999-12-22', '1999-12-23', '1999-12-24', '1999-12-25', '1999-12-26', '1999-12-27', '1999-12-28', '1999-12-29', '1999-12-30', '1999-12-31'], dtype='datetime64[ns]', name='time', length=730, freq=None))
- creator_email :
- minhphan@uw.edu
- creator_name :
- Minh Phan
- creator_type :
- person
- date_created :
- 2023-07-19
- geospatial_lat_max :
- 32.0
- geospatial_lat_min :
- -12.0
- geospatial_lat_resolution :
- 0.25
- geospatial_lat_units :
- degrees_north
- geospatial_lon_max :
- 102.0
- geospatial_lon_min :
- 42.0
- geospatial_lon_resolution :
- 0.25
- geospatial_lon_units :
- degrees_east
- source :
- Earth & Space Research (ESR), Copernicus Climate Change Service (C3S), Copernicus Marine Environment Monitoring Service (CMEMS), United States Geological Survey (USGS)
- summary :
- Daily mean of 0.25 x 0.25 degrees gridded data from multiple climate variables that may influence the patterns of coastal upwelling in the focused area
- time_coverage_end :
- 2022-12-31T23:59:59
- time_coverage_start :
- 1979-01-01T00:00:00
- title :
- Climate Data for Coastal Upwelling Machine Learning Project in Indian Ocean
<xarray.Dataset> Dimensions: (time: 16071, lat: 177, lon: 241) Coordinates: * lat (lat) float32 32.0 31.75 31.5 31.25 ... -11.25 -11.5 -11.75 -12.0 * lon (lon) float32 42.0 42.25 42.5 42.75 ... 101.2 101.5 101.8 102.0 * time (time) datetime64[ns] 1979-01-01 1979-01-02 ... 2022-12-31 Data variables: u_curr (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> u_wind (time, lat, lon) float32 dask.array<chunksize=(100, 177, 241), meta=np.ndarray> Attributes: (12/17) creator_email: minhphan@uw.edu creator_name: Minh Phan creator_type: person date_created: 2023-07-19 geospatial_lat_max: 32.0 geospatial_lat_min: -12.0 ... ... geospatial_lon_units: degrees_east source: Earth & Space Research (ESR), Copernicus Clim... summary: Daily mean of 0.25 x 0.25 degrees gridded dat... time_coverage_end: 2022-12-31T23:59:59 time_coverage_start: 1979-01-01T00:00:00 title: Climate Data for Coastal Upwelling Machine Le...
- time: 16071
- lat: 177
- lon: 241
- lat(lat)float3232.0 31.75 31.5 ... -11.75 -12.0
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([ 32. , 31.75, 31.5 , 31.25, 31. , 30.75, 30.5 , 30.25, 30. , 29.75, 29.5 , 29.25, 29. , 28.75, 28.5 , 28.25, 28. , 27.75, 27.5 , 27.25, 27. , 26.75, 26.5 , 26.25, 26. , 25.75, 25.5 , 25.25, 25. , 24.75, 24.5 , 24.25, 24. , 23.75, 23.5 , 23.25, 23. , 22.75, 22.5 , 22.25, 22. , 21.75, 21.5 , 21.25, 21. , 20.75, 20.5 , 20.25, 20. , 19.75, 19.5 , 19.25, 19. , 18.75, 18.5 , 18.25, 18. , 17.75, 17.5 , 17.25, 17. , 16.75, 16.5 , 16.25, 16. , 15.75, 15.5 , 15.25, 15. , 14.75, 14.5 , 14.25, 14. , 13.75, 13.5 , 13.25, 13. , 12.75, 12.5 , 12.25, 12. , 11.75, 11.5 , 11.25, 11. , 10.75, 10.5 , 10.25, 10. , 9.75, 9.5 , 9.25, 9. , 8.75, 8.5 , 8.25, 8. , 7.75, 7.5 , 7.25, 7. , 6.75, 6.5 , 6.25, 6. , 5.75, 5.5 , 5.25, 5. , 4.75, 4.5 , 4.25, 4. , 3.75, 3.5 , 3.25, 3. , 2.75, 2.5 , 2.25, 2. , 1.75, 1.5 , 1.25, 1. , 0.75, 0.5 , 0.25, 0. , -0.25, -0.5 , -0.75, -1. , -1.25, -1.5 , -1.75, -2. , -2.25, -2.5 , -2.75, -3. , -3.25, -3.5 , -3.75, -4. , -4.25, -4.5 , -4.75, -5. , -5.25, -5.5 , -5.75, -6. , -6.25, -6.5 , -6.75, -7. , -7.25, -7.5 , -7.75, -8. , -8.25, -8.5 , -8.75, -9. , -9.25, -9.5 , -9.75, -10. , -10.25, -10.5 , -10.75, -11. , -11.25, -11.5 , -11.75, -12. ], dtype=float32)
- lon(lon)float3242.0 42.25 42.5 ... 101.8 102.0
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([ 42. , 42.25, 42.5 , ..., 101.5 , 101.75, 102. ], dtype=float32)
- time(time)datetime64[ns]1979-01-01 ... 2022-12-31
- axis :
- T
- comment :
- Data is averaged over the day
- long_name :
- time centered on the day
- standard_name :
- time
- time_bounds :
- 2000-01-01 00:00:00 to 2000-01-01 23:59:59
array(['1979-01-01T00:00:00.000000000', '1979-01-02T00:00:00.000000000', '1979-01-03T00:00:00.000000000', ..., '2022-12-29T00:00:00.000000000', '2022-12-30T00:00:00.000000000', '2022-12-31T00:00:00.000000000'], dtype='datetime64[ns]')
- u_curr(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- zonal total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray - u_wind(time, lat, lon)float32dask.array<chunksize=(100, 177, 241), meta=np.ndarray>
- long_name :
- 10 metre U wind component
- nameCDM :
- 10_metre_U_wind_component_surface
- nameECMWF :
- 10 metre U wind component
- product_type :
- analysis
- shortNameECMWF :
- 10u
- standard_name :
- eastward_wind
- units :
- m s**-1
Array Chunk Bytes 2.55 GiB 16.27 MiB Shape (16071, 177, 241) (100, 177, 241) Dask graph 161 chunks in 2 graph layers Data type float32 numpy.ndarray
- latPandasIndex
PandasIndex(Index([ 32.0, 31.75, 31.5, 31.25, 31.0, 30.75, 30.5, 30.25, 30.0, 29.75, ... -9.75, -10.0, -10.25, -10.5, -10.75, -11.0, -11.25, -11.5, -11.75, -12.0], dtype='float32', name='lat', length=177))
- lonPandasIndex
PandasIndex(Index([ 42.0, 42.25, 42.5, 42.75, 43.0, 43.25, 43.5, 43.75, 44.0, 44.25, ... 99.75, 100.0, 100.25, 100.5, 100.75, 101.0, 101.25, 101.5, 101.75, 102.0], dtype='float32', name='lon', length=241))
- timePandasIndex
PandasIndex(DatetimeIndex(['1979-01-01', '1979-01-02', '1979-01-03', '1979-01-04', '1979-01-05', '1979-01-06', '1979-01-07', '1979-01-08', '1979-01-09', '1979-01-10', ... '2022-12-22', '2022-12-23', '2022-12-24', '2022-12-25', '2022-12-26', '2022-12-27', '2022-12-28', '2022-12-29', '2022-12-30', '2022-12-31'], dtype='datetime64[ns]', name='time', length=16071, freq=None))
- creator_email :
- minhphan@uw.edu
- creator_name :
- Minh Phan
- creator_type :
- person
- date_created :
- 2023-07-19
- geospatial_lat_max :
- 32.0
- geospatial_lat_min :
- -12.0
- geospatial_lat_resolution :
- 0.25
- geospatial_lat_units :
- degrees_north
- geospatial_lon_max :
- 102.0
- geospatial_lon_min :
- 42.0
- geospatial_lon_resolution :
- 0.25
- geospatial_lon_units :
- degrees_east
- source :
- Earth & Space Research (ESR), Copernicus Climate Change Service (C3S), Copernicus Marine Environment Monitoring Service (CMEMS), United States Geological Survey (USGS)
- summary :
- Daily mean of 0.25 x 0.25 degrees gridded data from multiple climate variables that may influence the patterns of coastal upwelling in the focused area
- time_coverage_end :
- 2022-12-31T23:59:59
- time_coverage_start :
- 1979-01-01T00:00:00
- title :
- Climate Data for Coastal Upwelling Machine Learning Project in Indian Ocean
# combine multiple slicing options all at once
ds[['u_curr', 'u_wind']].sel(time=slice('1998', '1999'),
lat=slice(0, -12),
lon=slice(42, 45))
<xarray.Dataset> Dimensions: (time: 730, lat: 49, lon: 13) Coordinates: * lat (lat) float32 0.0 -0.25 -0.5 -0.75 ... -11.25 -11.5 -11.75 -12.0 * lon (lon) float32 42.0 42.25 42.5 42.75 43.0 ... 44.25 44.5 44.75 45.0 * time (time) datetime64[ns] 1998-01-01 1998-01-02 ... 1999-12-31 Data variables: u_curr (time, lat, lon) float32 dask.array<chunksize=(60, 49, 13), meta=np.ndarray> u_wind (time, lat, lon) float32 dask.array<chunksize=(60, 49, 13), meta=np.ndarray> Attributes: (12/17) creator_email: minhphan@uw.edu creator_name: Minh Phan creator_type: person date_created: 2023-07-19 geospatial_lat_max: 32.0 geospatial_lat_min: -12.0 ... ... geospatial_lon_units: degrees_east source: Earth & Space Research (ESR), Copernicus Clim... summary: Daily mean of 0.25 x 0.25 degrees gridded dat... time_coverage_end: 2022-12-31T23:59:59 time_coverage_start: 1979-01-01T00:00:00 title: Climate Data for Coastal Upwelling Machine Le...
- time: 730
- lat: 49
- lon: 13
- lat(lat)float320.0 -0.25 -0.5 ... -11.75 -12.0
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([ 0. , -0.25, -0.5 , -0.75, -1. , -1.25, -1.5 , -1.75, -2. , -2.25, -2.5 , -2.75, -3. , -3.25, -3.5 , -3.75, -4. , -4.25, -4.5 , -4.75, -5. , -5.25, -5.5 , -5.75, -6. , -6.25, -6.5 , -6.75, -7. , -7.25, -7.5 , -7.75, -8. , -8.25, -8.5 , -8.75, -9. , -9.25, -9.5 , -9.75, -10. , -10.25, -10.5 , -10.75, -11. , -11.25, -11.5 , -11.75, -12. ], dtype=float32)
- lon(lon)float3242.0 42.25 42.5 ... 44.5 44.75 45.0
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([42. , 42.25, 42.5 , 42.75, 43. , 43.25, 43.5 , 43.75, 44. , 44.25, 44.5 , 44.75, 45. ], dtype=float32)
- time(time)datetime64[ns]1998-01-01 ... 1999-12-31
- axis :
- T
- comment :
- Data is averaged over the day
- long_name :
- time centered on the day
- standard_name :
- time
- time_bounds :
- 2000-01-01 00:00:00 to 2000-01-01 23:59:59
array(['1998-01-01T00:00:00.000000000', '1998-01-02T00:00:00.000000000', '1998-01-03T00:00:00.000000000', ..., '1999-12-29T00:00:00.000000000', '1999-12-30T00:00:00.000000000', '1999-12-31T00:00:00.000000000'], dtype='datetime64[ns]')
- u_curr(time, lat, lon)float32dask.array<chunksize=(60, 49, 13), meta=np.ndarray>
- comment :
- Velocities are an average over the top 30m of the mixed layer
- coverage_content_type :
- modelResult
- depth :
- 15m
- long_name :
- zonal total surface current
- source :
- SSH source: CMEMS SSALTO/DUACS SEALEVEL_GLO_PHY_L4_MY_008_047 DOI: 10.48670/moi-00148 ; WIND source: ECMWF ERA5 10m wind DOI: 10.24381/cds.adbb2d47 ; SST source: CMC 0.2 deg SST V2.0 DOI: 10.5067/GHCMC-4FM02
- standard_name :
- eastward_sea_water_velocity
- units :
- m s-1
- valid_max :
- 3.0
- valid_min :
- -3.0
Array Chunk Bytes 1.77 MiB 248.83 kiB Shape (730, 49, 13) (100, 49, 13) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray - u_wind(time, lat, lon)float32dask.array<chunksize=(60, 49, 13), meta=np.ndarray>
- long_name :
- 10 metre U wind component
- nameCDM :
- 10_metre_U_wind_component_surface
- nameECMWF :
- 10 metre U wind component
- product_type :
- analysis
- shortNameECMWF :
- 10u
- standard_name :
- eastward_wind
- units :
- m s**-1
Array Chunk Bytes 1.77 MiB 248.83 kiB Shape (730, 49, 13) (100, 49, 13) Dask graph 8 chunks in 3 graph layers Data type float32 numpy.ndarray
- latPandasIndex
PandasIndex(Index([ 0.0, -0.25, -0.5, -0.75, -1.0, -1.25, -1.5, -1.75, -2.0, -2.25, -2.5, -2.75, -3.0, -3.25, -3.5, -3.75, -4.0, -4.25, -4.5, -4.75, -5.0, -5.25, -5.5, -5.75, -6.0, -6.25, -6.5, -6.75, -7.0, -7.25, -7.5, -7.75, -8.0, -8.25, -8.5, -8.75, -9.0, -9.25, -9.5, -9.75, -10.0, -10.25, -10.5, -10.75, -11.0, -11.25, -11.5, -11.75, -12.0], dtype='float32', name='lat'))
- lonPandasIndex
PandasIndex(Index([ 42.0, 42.25, 42.5, 42.75, 43.0, 43.25, 43.5, 43.75, 44.0, 44.25, 44.5, 44.75, 45.0], dtype='float32', name='lon'))
- timePandasIndex
PandasIndex(DatetimeIndex(['1998-01-01', '1998-01-02', '1998-01-03', '1998-01-04', '1998-01-05', '1998-01-06', '1998-01-07', '1998-01-08', '1998-01-09', '1998-01-10', ... '1999-12-22', '1999-12-23', '1999-12-24', '1999-12-25', '1999-12-26', '1999-12-27', '1999-12-28', '1999-12-29', '1999-12-30', '1999-12-31'], dtype='datetime64[ns]', name='time', length=730, freq=None))
- creator_email :
- minhphan@uw.edu
- creator_name :
- Minh Phan
- creator_type :
- person
- date_created :
- 2023-07-19
- geospatial_lat_max :
- 32.0
- geospatial_lat_min :
- -12.0
- geospatial_lat_resolution :
- 0.25
- geospatial_lat_units :
- degrees_north
- geospatial_lon_max :
- 102.0
- geospatial_lon_min :
- 42.0
- geospatial_lon_resolution :
- 0.25
- geospatial_lon_units :
- degrees_east
- source :
- Earth & Space Research (ESR), Copernicus Climate Change Service (C3S), Copernicus Marine Environment Monitoring Service (CMEMS), United States Geological Survey (USGS)
- summary :
- Daily mean of 0.25 x 0.25 degrees gridded data from multiple climate variables that may influence the patterns of coastal upwelling in the focused area
- time_coverage_end :
- 2022-12-31T23:59:59
- time_coverage_start :
- 1979-01-01T00:00:00
- title :
- Climate Data for Coastal Upwelling Machine Learning Project in Indian Ocean
We can also graph the data right from slicing, especially heatmaps from 2D arrays, or line charts. This is especially useful when we want to inspect elements on the go.
# make sure that the array you slice for a heatmap visualization is a 2D array
heatmap_arr = ds['wind_speed'].sel(time='2000-01-02')
heatmap_arr
<xarray.DataArray 'wind_speed' (lat: 177, lon: 241)> dask.array<getitem, shape=(177, 241), dtype=float32, chunksize=(177, 241), chunktype=numpy.ndarray> Coordinates: * lat (lat) float32 32.0 31.75 31.5 31.25 ... -11.25 -11.5 -11.75 -12.0 * lon (lon) float32 42.0 42.25 42.5 42.75 ... 101.2 101.5 101.8 102.0 time datetime64[ns] 2000-01-02 Attributes: long_name: 10 metre absolute speed units: m s**-1
- lat: 177
- lon: 241
- dask.array<chunksize=(177, 241), meta=np.ndarray>
Array Chunk Bytes 166.63 kiB 166.63 kiB Shape (177, 241) (177, 241) Dask graph 1 chunks in 3 graph layers Data type float32 numpy.ndarray - lat(lat)float3232.0 31.75 31.5 ... -11.75 -12.0
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([ 32. , 31.75, 31.5 , 31.25, 31. , 30.75, 30.5 , 30.25, 30. , 29.75, 29.5 , 29.25, 29. , 28.75, 28.5 , 28.25, 28. , 27.75, 27.5 , 27.25, 27. , 26.75, 26.5 , 26.25, 26. , 25.75, 25.5 , 25.25, 25. , 24.75, 24.5 , 24.25, 24. , 23.75, 23.5 , 23.25, 23. , 22.75, 22.5 , 22.25, 22. , 21.75, 21.5 , 21.25, 21. , 20.75, 20.5 , 20.25, 20. , 19.75, 19.5 , 19.25, 19. , 18.75, 18.5 , 18.25, 18. , 17.75, 17.5 , 17.25, 17. , 16.75, 16.5 , 16.25, 16. , 15.75, 15.5 , 15.25, 15. , 14.75, 14.5 , 14.25, 14. , 13.75, 13.5 , 13.25, 13. , 12.75, 12.5 , 12.25, 12. , 11.75, 11.5 , 11.25, 11. , 10.75, 10.5 , 10.25, 10. , 9.75, 9.5 , 9.25, 9. , 8.75, 8.5 , 8.25, 8. , 7.75, 7.5 , 7.25, 7. , 6.75, 6.5 , 6.25, 6. , 5.75, 5.5 , 5.25, 5. , 4.75, 4.5 , 4.25, 4. , 3.75, 3.5 , 3.25, 3. , 2.75, 2.5 , 2.25, 2. , 1.75, 1.5 , 1.25, 1. , 0.75, 0.5 , 0.25, 0. , -0.25, -0.5 , -0.75, -1. , -1.25, -1.5 , -1.75, -2. , -2.25, -2.5 , -2.75, -3. , -3.25, -3.5 , -3.75, -4. , -4.25, -4.5 , -4.75, -5. , -5.25, -5.5 , -5.75, -6. , -6.25, -6.5 , -6.75, -7. , -7.25, -7.5 , -7.75, -8. , -8.25, -8.5 , -8.75, -9. , -9.25, -9.5 , -9.75, -10. , -10.25, -10.5 , -10.75, -11. , -11.25, -11.5 , -11.75, -12. ], dtype=float32)
- lon(lon)float3242.0 42.25 42.5 ... 101.8 102.0
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([ 42. , 42.25, 42.5 , ..., 101.5 , 101.75, 102. ], dtype=float32)
- time()datetime64[ns]2000-01-02
- axis :
- T
- comment :
- Data is averaged over the day
- long_name :
- time centered on the day
- standard_name :
- time
- time_bounds :
- 2000-01-01 00:00:00 to 2000-01-01 23:59:59
array('2000-01-02T00:00:00.000000000', dtype='datetime64[ns]')
- latPandasIndex
PandasIndex(Index([ 32.0, 31.75, 31.5, 31.25, 31.0, 30.75, 30.5, 30.25, 30.0, 29.75, ... -9.75, -10.0, -10.25, -10.5, -10.75, -11.0, -11.25, -11.5, -11.75, -12.0], dtype='float32', name='lat', length=177))
- lonPandasIndex
PandasIndex(Index([ 42.0, 42.25, 42.5, 42.75, 43.0, 43.25, 43.5, 43.75, 44.0, 44.25, ... 99.75, 100.0, 100.25, 100.5, 100.75, 101.0, 101.25, 101.5, 101.75, 102.0], dtype='float32', name='lon', length=241))
- long_name :
- 10 metre absolute speed
- units :
- m s**-1
Line plots
We can add in parameters to customize our graphs, as additional arguments are passed to the underlying matplotlib plot()
function.
Histogram
# creating a new Axe object if there is no currently
# available one
ax = plt.gca()
ds['wind_dir'].plot.hist(ax = ax)
ax.set_xlabel('10 metre wind direction (degrees east)')
ax.set_ylabel('frequency')
ax.set_title('Daily average wind direction distribution over covered area (1979-2022)')
Text(0.5, 1.0, 'Daily average wind direction distribution over covered area (1979-2022)')
Resampling
With xarray
If your xarray version works just fine with resample()
, here’s the most straightforward way to resample your data temporally. It may take a long while for the data to finish resampling, especially if your dataset is big and your resampling frequency is small.
Without xarray
If not, which was the case we encountered for a bit during the documentation, we developed a roundabout using Pandas’ equivalent function with the same name, which also happened to also be the underlying function that the library itself depends on (of course, more optimized), to help us perform resampling on our dataset.
We can see that after resampling, our time dimension size is reduced from 8523 (days) to 280 (months). Resampling is successful!
# original ds_to_resample object before converting to dataframe
ds['CHL'].sel(lat=slice(10, 5), lon=slice(75, 80))
<xarray.DataArray 'CHL' (time: 16071, lat: 21, lon: 21)> dask.array<getitem, shape=(16071, 21, 21), dtype=float32, chunksize=(100, 21, 21), chunktype=numpy.ndarray> Coordinates: * lat (lat) float32 10.0 9.75 9.5 9.25 9.0 8.75 ... 6.0 5.75 5.5 5.25 5.0 * lon (lon) float32 75.0 75.25 75.5 75.75 76.0 ... 79.25 79.5 79.75 80.0 * time (time) datetime64[ns] 1979-01-01 1979-01-02 ... 2022-12-31 Attributes: _ChunkSizes: [1, 256, 256] ancillary_variables: flags CHL_uncertainty coverage_content_type: modelResult input_files_reprocessings: Processors versions: MODIS R2022.0NRT/VIIRSN ... long_name: Chlorophyll-a concentration - Mean of the bin... standard_name: mass_concentration_of_chlorophyll_a_in_sea_water type: surface units: milligram m-3 valid_max: 1000.0 valid_min: 0.0
- time: 16071
- lat: 21
- lon: 21
- dask.array<chunksize=(100, 21, 21), meta=np.ndarray>
Array Chunk Bytes 27.04 MiB 172.27 kiB Shape (16071, 21, 21) (100, 21, 21) Dask graph 161 chunks in 3 graph layers Data type float32 numpy.ndarray - lat(lat)float3210.0 9.75 9.5 9.25 ... 5.5 5.25 5.0
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
array([10. , 9.75, 9.5 , 9.25, 9. , 8.75, 8.5 , 8.25, 8. , 7.75, 7.5 , 7.25, 7. , 6.75, 6.5 , 6.25, 6. , 5.75, 5.5 , 5.25, 5. ], dtype=float32)
- lon(lon)float3275.0 75.25 75.5 ... 79.5 79.75 80.0
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
array([75. , 75.25, 75.5 , 75.75, 76. , 76.25, 76.5 , 76.75, 77. , 77.25, 77.5 , 77.75, 78. , 78.25, 78.5 , 78.75, 79. , 79.25, 79.5 , 79.75, 80. ], dtype=float32)
- time(time)datetime64[ns]1979-01-01 ... 2022-12-31
- axis :
- T
- comment :
- Data is averaged over the day
- long_name :
- time centered on the day
- standard_name :
- time
- time_bounds :
- 2000-01-01 00:00:00 to 2000-01-01 23:59:59
array(['1979-01-01T00:00:00.000000000', '1979-01-02T00:00:00.000000000', '1979-01-03T00:00:00.000000000', ..., '2022-12-29T00:00:00.000000000', '2022-12-30T00:00:00.000000000', '2022-12-31T00:00:00.000000000'], dtype='datetime64[ns]')
- latPandasIndex
PandasIndex(Index([10.0, 9.75, 9.5, 9.25, 9.0, 8.75, 8.5, 8.25, 8.0, 7.75, 7.5, 7.25, 7.0, 6.75, 6.5, 6.25, 6.0, 5.75, 5.5, 5.25, 5.0], dtype='float32', name='lat'))
- lonPandasIndex
PandasIndex(Index([ 75.0, 75.25, 75.5, 75.75, 76.0, 76.25, 76.5, 76.75, 77.0, 77.25, 77.5, 77.75, 78.0, 78.25, 78.5, 78.75, 79.0, 79.25, 79.5, 79.75, 80.0], dtype='float32', name='lon'))
- timePandasIndex
PandasIndex(DatetimeIndex(['1979-01-01', '1979-01-02', '1979-01-03', '1979-01-04', '1979-01-05', '1979-01-06', '1979-01-07', '1979-01-08', '1979-01-09', '1979-01-10', ... '2022-12-22', '2022-12-23', '2022-12-24', '2022-12-25', '2022-12-26', '2022-12-27', '2022-12-28', '2022-12-29', '2022-12-30', '2022-12-31'], dtype='datetime64[ns]', name='time', length=16071, freq=None))
- _ChunkSizes :
- [1, 256, 256]
- ancillary_variables :
- flags CHL_uncertainty
- coverage_content_type :
- modelResult
- input_files_reprocessings :
- Processors versions: MODIS R2022.0NRT/VIIRSN R2022.0NRT/OLCIA 07.02/VIIRSJ1 R2022.0NRT/OLCIB 07.02
- long_name :
- Chlorophyll-a concentration - Mean of the binned pixels
- standard_name :
- mass_concentration_of_chlorophyll_a_in_sea_water
- type :
- surface
- units :
- milligram m-3
- valid_max :
- 1000.0
- valid_min :
- 0.0
<xarray.Dataset> Dimensions: (time: 528, lon: 21, lat: 21) Coordinates: * time (time) datetime64[ns] 1979-01-31 1979-02-28 ... 2022-12-31 * lon (lon) float32 75.0 75.25 75.5 75.75 76.0 ... 79.25 79.5 79.75 80.0 * lat (lat) float32 5.0 5.25 5.5 5.75 6.0 6.25 ... 9.0 9.25 9.5 9.75 10.0 Data variables: CHL (time, lon, lat) float32 nan nan nan nan ... 3.221 2.768 nan 1.353
- time: 528
- lon: 21
- lat: 21
- time(time)datetime64[ns]1979-01-31 ... 2022-12-31
array(['1979-01-31T00:00:00.000000000', '1979-02-28T00:00:00.000000000', '1979-03-31T00:00:00.000000000', ..., '2022-10-31T00:00:00.000000000', '2022-11-30T00:00:00.000000000', '2022-12-31T00:00:00.000000000'], dtype='datetime64[ns]')
- lon(lon)float3275.0 75.25 75.5 ... 79.5 79.75 80.0
array([75. , 75.25, 75.5 , 75.75, 76. , 76.25, 76.5 , 76.75, 77. , 77.25, 77.5 , 77.75, 78. , 78.25, 78.5 , 78.75, 79. , 79.25, 79.5 , 79.75, 80. ], dtype=float32)
- lat(lat)float325.0 5.25 5.5 5.75 ... 9.5 9.75 10.0
array([ 5. , 5.25, 5.5 , 5.75, 6. , 6.25, 6.5 , 6.75, 7. , 7.25, 7.5 , 7.75, 8. , 8.25, 8.5 , 8.75, 9. , 9.25, 9.5 , 9.75, 10. ], dtype=float32)
- CHL(time, lon, lat)float32nan nan nan nan ... 2.768 nan 1.353
array([[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ... [0.2705628 , 0.25798783, 0.25561604, ..., 1.4041072 , 1.4939387 , 1.8776367 ], [0.32376617, 0.2919578 , 0.28656372, ..., 1.7322022 , 1.8477138 , 1.8143107 ], [0.30853522, 0.3436496 , 0.3281598 , ..., 2.5401766 , nan, 1.3396835 ]], [[0.23880072, 0.24270938, 0.24283718, ..., 0.20560512, 0.22738725, 0.3117161 ], [0.2311706 , 0.2247422 , 0.23030376, ..., 0.21133746, 0.24978474, 0.3144625 ], [0.22994642, 0.2216043 , 0.21443008, ..., 0.23380966, 0.27335462, 0.33697778], ..., [0.2801102 , 0.27076766, 0.28496662, ..., 1.4887002 , 1.4666241 , 1.7220622 ], [0.3205243 , 0.2954306 , 0.31341806, ..., 1.9154898 , 1.42821 , 1.6312736 ], [0.45734957, 0.3265505 , 0.33142075, ..., 2.7675717 , nan, 1.3527689 ]]], dtype=float32)
- timePandasIndex
PandasIndex(DatetimeIndex(['1979-01-31', '1979-02-28', '1979-03-31', '1979-04-30', '1979-05-31', '1979-06-30', '1979-07-31', '1979-08-31', '1979-09-30', '1979-10-31', ... '2022-03-31', '2022-04-30', '2022-05-31', '2022-06-30', '2022-07-31', '2022-08-31', '2022-09-30', '2022-10-31', '2022-11-30', '2022-12-31'], dtype='datetime64[ns]', name='time', length=528, freq='M'))
- lonPandasIndex
PandasIndex(Index([ 75.0, 75.25, 75.5, 75.75, 76.0, 76.25, 76.5, 76.75, 77.0, 77.25, 77.5, 77.75, 78.0, 78.25, 78.5, 78.75, 79.0, 79.25, 79.5, 79.75, 80.0], dtype='float32', name='lon'))
- latPandasIndex
PandasIndex(Index([ 5.0, 5.25, 5.5, 5.75, 6.0, 6.25, 6.5, 6.75, 7.0, 7.25, 7.5, 7.75, 8.0, 8.25, 8.5, 8.75, 9.0, 9.25, 9.5, 9.75, 10.0], dtype='float32', name='lat'))
… and as a matter of fact, we can graph this data, too!