Sorry Andy, only just looking at this now.
I’ve had a look at the ESM Datastore for the catalog, and it looks like for whatever reason, the model stopped writing net_sfc_heating
out at that time step?
>>> import intake
>>> cat = intake.cat.access_nri
>>> esm_ds = cat['01deg_jra55v13_ryf9091']
>>> esm_ds.search(variable='net_sfc_heating').df.path
0 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output000/ocean/ocean_month.nc
1 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output001/ocean/ocean_month.nc
2 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output002/ocean/ocean_month.nc
3 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output003/ocean/ocean_month.nc
4 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output004/ocean/ocean_month.nc
5 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output005/ocean/ocean_month.nc
6 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output006/ocean/ocean_month.nc
7 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output007/ocean/ocean_month.nc
Name: path, dtype: object
# Did something funny happen with ocean_month files?
>>> esm_ds.search(file_id='ocean_month').df.path.head(20)
0 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output000/ocean/ocean_month.nc
1 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output001/ocean/ocean_month.nc
2 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output002/ocean/ocean_month.nc
3 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output003/ocean/ocean_month.nc
4 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output004/ocean/ocean_month.nc
5 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output005/ocean/ocean_month.nc
6 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output006/ocean/ocean_month.nc
7 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output007/ocean/ocean_month.nc
8 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output008/ocean/ocean_month.nc
9 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output009/ocean/ocean_month.nc
10 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output010/ocean/ocean_month.nc
11 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output011/ocean/ocean_month.nc
12 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output012/ocean/ocean_month.nc
13 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output013/ocean/ocean_month.nc
14 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output014/ocean/ocean_month.nc
15 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output015/ocean/ocean_month.nc
16 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output016/ocean/ocean_month.nc
17 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output017/ocean/ocean_month.nc
18 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output018/ocean/ocean_month.nc
19 /g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output019/ocean/ocean_month.nc
Name: path, dtype: object
# Nope - so let's look at the files manually (ie. is this an intake problem)
>>> import xarray as xr
>>> ds1 = xr.open_dataset("/g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output007/ocean/ocean_month.nc")
>>> vars1 = [v for v in ds1.variables]
>>> ds2 = xr.open_dataset("/g/data/ik11/outputs/access-om2-01/01deg_jra55v13_ryf9091/output008/ocean/ocean_month.nc")
>>> vars2 = [v for v in ds.variables]
>>> set(vars1) - set(vars2)
{'net_sfc_heating'}
So it looks like net_sfc_heating
output was turned off to me?
I can load that data just fine though:
>>> from dask.distributed import Client
>>> client = Client(threads_per_worker=1)
>>> esm_ds.search(variable='net_sfc_heating').to_dask()
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.02/lib/python3.11/site-packages/intake_esm/source.py:82: FutureWarning: In a future version of xarray decode_timedelta will default to False rather than None. To silence this warning, set decode_timedelta to True, False, or a 'CFTimedeltaCoder' instance.
ds = xr.open_dataset(url, **xarray_open_kwargs)
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.02/lib/python3.11/site-packages/intake_esm/source.py:82: FutureWarning: In a future version of xarray decode_timedelta will default to False rather than None. To silence this warning, set decode_timedelta to True, False, or a 'CFTimedeltaCoder' instance.
ds = xr.open_dataset(url, **xarray_open_kwargs)
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.02/lib/python3.11/site-packages/intake_esm/source.py:82: FutureWarning: In a future version of xarray decode_timedelta will default to False rather than None. To silence this warning, set decode_timedelta to True, False, or a 'CFTimedeltaCoder' instance.
ds = xr.open_dataset(url, **xarray_open_kwargs)
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.02/lib/python3.11/site-packages/intake_esm/source.py:82: FutureWarning: In a future version of xarray decode_timedelta will default to False rather than None. To silence this warning, set decode_timedelta to True, False, or a 'CFTimedeltaCoder' instance.
ds = xr.open_dataset(url, **xarray_open_kwargs)
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.02/lib/python3.11/site-packages/intake_esm/source.py:82: FutureWarning: In a future version of xarray decode_timedelta will default to False rather than None. To silence this warning, set decode_timedelta to True, False, or a 'CFTimedeltaCoder' instance.
ds = xr.open_dataset(url, **xarray_open_kwargs)
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.02/lib/python3.11/site-packages/intake_esm/source.py:82: FutureWarning: In a future version of xarray decode_timedelta will default to False rather than None. To silence this warning, set decode_timedelta to True, False, or a 'CFTimedeltaCoder' instance.
ds = xr.open_dataset(url, **xarray_open_kwargs)
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.02/lib/python3.11/site-packages/intake_esm/source.py:82: FutureWarning: In a future version of xarray decode_timedelta will default to False rather than None. To silence this warning, set decode_timedelta to True, False, or a 'CFTimedeltaCoder' instance.
ds = xr.open_dataset(url, **xarray_open_kwargs)
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.02/lib/python3.11/site-packages/intake_esm/source.py:82: FutureWarning: In a future version of xarray decode_timedelta will default to False rather than None. To silence this warning, set decode_timedelta to True, False, or a 'CFTimedeltaCoder' instance.
ds = xr.open_dataset(url, **xarray_open_kwargs)
<xarray.Dataset> Size: 1GB
Dimensions: (time: 33, yt_ocean: 2700, xt_ocean: 3600)
Coordinates:
* xt_ocean (xt_ocean) float64 29kB -279.9 -279.8 ... 79.85 79.95
* yt_ocean (yt_ocean) float64 22kB -81.11 -81.07 ... 89.94 89.98
* time (time) object 264B 1900-01-16 12:00:00 ... 1902-09-16 00...
Data variables:
net_sfc_heating (time, yt_ocean, xt_ocean) float32 1GB dask.array<chunksize=(1, 675, 900), meta=np.ndarray>
Attributes: (12/16)
filename: ocean_month.nc
title: ACCESS-OM2-01
grid_type: mosaic
grid_tile: 1
intake_esm_vars: ['net_sfc_heating']
intake_esm_attrs:filename: ocean_month.nc
... ...
intake_esm_attrs:variable_standard_name: ,,,,,,sea_surface_height_above_...
intake_esm_attrs:variable_cell_methods: ,,,,,,time: mean,time: mean,tim...
intake_esm_attrs:variable_units: degrees_E,degrees_N,days since ...
intake_esm_attrs:realm: ocean
intake_esm_attrs:_data_format_: netcdf
intake_esm_dataset_key: ocean_month.1mon