[15]:
import pandas as pd
import xarray as xr
from pprint import pprint
[4]:
# Load Catalog
a=pd.read_csv('/data/keeling/a/cristi/a/esm_data/cmip6_catalog.csv')
[23]:
# Search for files to be read
# variable in ESGF
path=a.loc[(a['variable_id']=='hur')&
# experiment
(a['experiment']=='AMIP')&
# modelname
(a['source_id'].str.contains('GFDL'))&
# realization
(a['variant_label'].str.contains('r1i1p1'))]['path'].to_list()
if path == []:
print('Your search did not match any files on Keeling. Please proceed to download.')
else:
pprint(path)
['/data/cristi/a/cristi/esm_data/cmip6/GFDL-CM4/amip/r1i1p1f1/hur_Amon_GFDL-CM4_amip_r1i1p1f1_gr1_197901-198412.nc',
'/data/cristi/a/cristi/esm_data/cmip6/GFDL-CM4/amip/r1i1p1f1/hur_Amon_GFDL-CM4_amip_r1i1p1f1_gr1_198501-199012.nc',
'/data/cristi/a/cristi/esm_data/cmip6/GFDL-CM4/amip/r1i1p1f1/hur_Amon_GFDL-CM4_amip_r1i1p1f1_gr1_199101-199612.nc',
'/data/cristi/a/cristi/esm_data/cmip6/GFDL-CM4/amip/r1i1p1f1/hur_Amon_GFDL-CM4_amip_r1i1p1f1_gr1_199701-200212.nc',
'/data/cristi/a/cristi/esm_data/cmip6/GFDL-CM4/amip/r1i1p1f1/hur_Amon_GFDL-CM4_amip_r1i1p1f1_gr1_200301-200812.nc',
'/data/cristi/a/cristi/esm_data/cmip6/GFDL-CM4/amip/r1i1p1f1/hur_Amon_GFDL-CM4_amip_r1i1p1f1_gr1_200901-201412.nc']
[5]:
# Read the files in Xarray
ds = xr.open_mfdataset(path,combine="by_coords",use_cftime=True)
ds
[5]:
<xarray.Dataset>
Dimensions: (bnds: 2, time: 432, plev: 19, lat: 180, lon: 288)
Coordinates:
* bnds (bnds) float64 1.0 2.0
* lat (lat) float64 -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5
* lon (lon) float64 0.625 1.875 3.125 4.375 ... 355.6 356.9 358.1 359.4
* plev (plev) float64 1e+05 9.25e+04 8.5e+04 7e+04 ... 1e+03 500.0 100.0
* time (time) object 1979-01-16 12:00:00 ... 2014-12-16 12:00:00
Data variables:
hur (time, plev, lat, lon) float32 dask.array<chunksize=(72, 19, 180, 288), meta=np.ndarray>
lat_bnds (time, lat, bnds) float64 dask.array<chunksize=(72, 180, 2), meta=np.ndarray>
lon_bnds (time, lon, bnds) float64 dask.array<chunksize=(72, 288, 2), meta=np.ndarray>
time_bnds (time, bnds) object dask.array<chunksize=(72, 2), meta=np.ndarray>
Attributes: (12/44)
external_variables: areacella
history: File was processed by fremetar (GFDL analog of CMO...
table_id: Amon
activity_id: CMIP
branch_method: no parent
branch_time_in_child: 0.0
... ...
title: NOAA GFDL GFDL-CM4 model output prepared for CMIP6...
tracking_id: hdl:21.14100/7c27e5b3-c207-42a3-a01a-40d264a01935
variable_id: hur
variant_info: N/A
references: see further_info_url attribute
variant_label: r1i1p1f1