NCAR / cesm-lens-aws

Examples of analysis of CESM LENS data publicly available on Amazon S3 (us-west-2 region) using xarray and dask
https://doi.org/10.26024/wt24-5j82
BSD 3-Clause "New" or "Revised" License
43 stars 23 forks source link

Added grid.zarr info to demo #62

Closed cspencerjones closed 3 years ago

cspencerjones commented 3 years ago

I added the location of grid.zarr files to the demo, since I think that info is in danger of being lost (and indeed it wasn't at all clear to me where to find these files).

Related to #59

rabernat commented 3 years ago

I support this 💯 ! Unless users are required to use poptools to access this data, it would be preferable to have the coordinates more readily available.

andersy005 commented 3 years ago

@cspencerjones, you can get the grid.zarr file directly from the catalog:

In [10]: _, grid = col.search(frequency="static", component="ocn", experiment="20C").to_dataset_dict(aggregate=False, zarr_kwa
    ...: rgs={'consolidated': True}).popitem()

--> The keys in the returned dictionary of datasets are constructed as follows:
    'component.frequency.experiment.variable.path.variable_long_name.dim_per_tstep.start.end'
 |██████████████████████████████████████████████████████████████████| 100.00% [1/1 00:00<00:00]
In [11]: grid
Out[11]:
<xarray.Dataset>
Dimensions:               (lat_aux_grid: 395, moc_comp: 3, moc_z: 61, nlat: 384, nlon: 320, transport_comp: 5, transport_reg: 2, z_t: 60, z_t_150m: 15, z_w: 60, z_w_bot: 60, z_w_top: 60)
Coordinates:
    ANGLE                 (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    ANGLET                (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    DXT                   (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    DXU                   (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    DYT                   (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    DYU                   (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    HT                    (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    HTE                   (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    HTN                   (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    HU                    (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    HUS                   (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    HUW                   (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    KMT                   (nlat, nlon) float64 dask.array<chunksize=(192, 320), meta=np.ndarray>
    KMU                   (nlat, nlon) float64 dask.array<chunksize=(192, 320), meta=np.ndarray>
    REGION_MASK           (nlat, nlon) float64 dask.array<chunksize=(192, 320), meta=np.ndarray>
    T0_Kelvin             float64 ...
    TAREA                 (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    TLAT                  (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    TLONG                 (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    UAREA                 (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    ULAT                  (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    ULONG                 (nlat, nlon) float64 dask.array<chunksize=(192, 160), meta=np.ndarray>
    cp_air                float64 ...
    cp_sw                 float64 ...
    days_in_norm_year     timedelta64[ns] ...
    dz                    (z_t) float32 dask.array<chunksize=(60,), meta=np.ndarray>
    dzw                   (z_w) float32 dask.array<chunksize=(60,), meta=np.ndarray>
    fwflux_factor         float64 ...
    grav                  float64 ...
    heat_to_PW            float64 ...
    hflux_factor          float64 ...
  * lat_aux_grid          (lat_aux_grid) float32 -79.48815 -78.952896 ... 90.0
    latent_heat_fusion    float64 ...
    latent_heat_vapor     float64 ...
    mass_to_Sv            float64 ...
    moc_components        (moc_comp) |S256 dask.array<chunksize=(3,), meta=np.ndarray>
  * moc_z                 (moc_z) float32 0.0 1000.0 ... 525000.94 549999.06
    momentum_factor       float64 ...
    nsurface_t            float64 ...
    nsurface_u            float64 ...
    ocn_ref_salinity      float64 ...
    omega                 float64 ...
    ppt_to_salt           float64 ...
    radius                float64 ...
    rho_air               float64 ...
    rho_fw                float64 ...
    rho_sw                float64 ...
    salinity_factor       float64 ...
    salt_to_Svppt         float64 ...
    salt_to_mmday         float64 ...
    salt_to_ppt           float64 ...
    sea_ice_salinity      float64 ...
    sflux_factor          float64 ...
    sound                 float64 ...
    stefan_boltzmann      float64 ...
    transport_components  (transport_comp) |S256 dask.array<chunksize=(5,), meta=np.ndarray>
    transport_regions     (transport_reg) |S256 dask.array<chunksize=(2,), meta=np.ndarray>
    vonkar                float64 ...
  * z_t                   (z_t) float32 500.0 1500.0 ... 512502.8 537500.0
  * z_t_150m              (z_t_150m) float32 500.0 1500.0 ... 13500.0 14500.0
  * z_w                   (z_w) float32 0.0 1000.0 2000.0 ... 500004.7 525000.94
  * z_w_bot               (z_w_bot) float32 1000.0 2000.0 ... 549999.06
  * z_w_top               (z_w_top) float32 0.0 1000.0 ... 500004.7 525000.94
Dimensions without coordinates: moc_comp, nlat, nlon, transport_comp, transport_reg
Data variables:
    *empty*
Attributes:
    intake_esm_varname:      None
    intake_esm_dataset_key:  ocn.static.20C.nan.s3://ncar-cesm-lens/ocn/stati...
andersy005 commented 3 years ago

since I think that info is in danger of being lost (and indeed it wasn't at all clear to me where to find these files).

Thank you for pointing this out, and getting this notebook updated. I will push a few changes to your branch later today to reflect a few other things that have changed since this notebook was published.

andersy005 commented 3 years ago

@cspencerjones, I updated the notebook with extra information. When you get a chance, could you take a look at https://nbviewer.jupyter.org/github/cspencerjones/cesm-lens-aws/blob/griddocs/notebooks/using-intake-catalog.ipynb and let me know what you think?

cspencerjones commented 3 years ago

@andersy005 thanks for looking at this. The new notebook looks great to me!