Okay: So file_id is constructed as REALM.FREQUENCY'.'.join(DIMENSION for DIMENSION in DIMENSIONS', roughly, if that makes sense. We then also append a variable_cell_methods flag to the end of that, which is necessary to disambiguate in some circumstances.
In the instance you have, you can disambiguate like so:
>>> sub_esm_ds = Exp9tracerBudgetSigAvgs_datastore.search(variable="passive_maud_zflux_adv")
>>> sub_esm_ds
<test_cat_aviv-no-patterns catalog with 2 dataset(s) from 265 asset(s)>
>> sub_esm_ds.unique().file_id
['ocean.1mon.isopycnal_bins:19.xt_ocean:3600.yt_ocean:510',
'ocean.1mon.isopycnal_bins:19.nv:2.xt_ocean:3600.yt_ocean:510']
What this means is that you have two datasets with different (although potentially compatible, depending on what you might want to do?) dimensions here:
>>> sub_esm_ds.search(file_id='ocean.1mon.isopycnal_bins:19.xt_ocean:3600.yt_ocean:510').to_dask()
<xarray.Dataset> Size: 6GB
Dimensions: (time: 20, isopycnal_bins: 19, yt_ocean: 510,
xt_ocean: 3600)
Coordinates:
...
>>> sub_esm_ds.search(file_id='ocean.1mon.isopycnal_bins:19.nv:2.xt_ocean:3600.yt_ocean:510')
<xarray.Dataset> Size: 67GB
Dimensions: (time: 240, isopycnal_bins: 19, yt_ocean: 510,
xt_ocean: 3600, nv: 2)
Coordinates:
...
If you want to save a subset of the datastore, you could search for whichever file ID it was you wanted, and then save it as a new datastore, yeah. The intake-esm docs page on this has a pretty good example.