TLDR: I want to build high-resolution transport matrices from ACCESS-OM2 outputs and use them to study ocean ventilation. I’ve had a couple back and forth emails with @aekiss about the outputs I need, and we thought it would be best to continue here so that others can chime in (to help but also maybe benefit) from the discussion.
To build Transport Matrices (TMs) from ACCESS-OM2 outputs, I need 3D mass transport in x/y directions, mixed-layer depths, and cell geometries (vertices, volume, area, and thickness). I can build the cell volumes from area and thickness, and I can get the cell vertices from the supergrid files separately. For the rest, I need these variables:
tx_transandty_trans(resolved mass transport)tx_trans_gmandty_trans_gm(GM mass transport; not for 0.01°),mld(mixed-layer depths)area_t(tracer cell horizontal area)dztordht(tracer cell thickness; quick question in passing, doesdzt = dht?)- and optionally
tx_trans_submesoandty_trans_submeso(sub-meso scale mass transport; “optionally” because these are small… right?)
In case it is useful to others (or if you find something wrong with it), I’m sharing the code I used to query the ACCESS-NRI catalog just below. It filters for all the ACCESS-OM2 runs that include the variables I listed above.
import intake
catalog = intake.cat.access_nri
# comment/uncomment to filter variables
variable=[
"tx_trans", "ty_trans",
# "tx_trans_gm", "ty_trans_gm",
# "tx_trans_submeso", "ty_trans_submeso",
"mld",
"area_t",
# "dzt",
"dht",
]
variables_set = set(variable)
query = dict(model="ACCESS-OM2.*", variable=variable)
df = catalog.search(**query).df
df = df.groupby('name', as_index=False)['variable'].sum()
df['variable'] = df['variable'].apply(lambda x: set(x))
filtered_df = df[df['variable'].apply(lambda x: variables_set.issubset(x))]
filtered_df.name
Here are all the experiments with everything I need (including GM for 0.25° and 1°, but ignoring whether submeso is included or not):
01deg_jra55_ryf_Control
01deg_jra55_ryf_ENFull
01deg_jra55_ryf_LNFull
01deg_jra55v13_ryf9091
01deg_jra55v13_ryf9091_easterlies_down10
01deg_jra55v13_ryf9091_easterlies_up10
01deg_jra55v13_ryf9091_easterlies_up10_meridional
01deg_jra55v13_ryf9091_easterlies_up10_zonal
01deg_jra55v13_ryf9091_qian_wthmp
01deg_jra55v13_ryf9091_qian_wthp
01deg_jra55v13_ryf9091_weddell_down2
01deg_jra55v13_ryf9091_weddell_up1
01deg_jra55v140_iaf
01deg_jra55v140_iaf_cycle2
01deg_jra55v140_iaf_cycle3
01deg_jra55v140_iaf_cycle4
01deg_jra55v140_iaf_cycle4_jra55v150_extension
01deg_jra55v150_iaf_cycle1
025deg_jra55_iaf_omip2_cycle1
025deg_jra55_iaf_omip2_cycle2
025deg_jra55_iaf_omip2_cycle3
025deg_jra55_iaf_omip2_cycle4
025deg_jra55_iaf_omip2_cycle5
025deg_jra55_iaf_omip2_cycle6
1deg_jra55_iaf_omip2_cycle1
1deg_jra55_iaf_omip2_cycle2
1deg_jra55_iaf_omip2_cycle3
1deg_jra55_iaf_omip2_cycle4
1deg_jra55_iaf_omip2_cycle5
1deg_jra55_iaf_omip2_cycle6
1deg_jra55_iaf_omip2spunup_cycle1
1deg_jra55_iaf_omip2spunup_cycle2
1deg_jra55_iaf_omip2spunup_cycle3
1deg_jra55_iaf_omip2spunup_cycle34
1deg_jra55_iaf_omip2spunup_cycle35
1deg_jra55_iaf_omip2spunup_cycle36
1deg_jra55_iaf_omip2spunup_cycle37
1deg_jra55_iaf_omip2spunup_cycle38
1deg_jra55_iaf_omip2spunup_cycle39
1deg_jra55_iaf_omip2spunup_cycle4
1deg_jra55_iaf_omip2spunup_cycle5
1deg_jra55_iaf_omip2spunup_cycle6
1deg_jra55_ryf9091_gadi
Unless I forgot something or made a mistake, any other ACCESS-OM2 run is missing one of the variables I need. My issue is that the only 0.25° runs with GM are the 025deg_jra55_iaf_omip2_cycle* ones, and while it’s great to have the corresponding 1° runs (1deg_jra55_iaf_omip2_cycle*), as far as I know there are no corresponding OMIP2 0.1° runs… Is that right? Is there a consistent set of (1° + 0.25° + 0.1°) runs with the outputs I need that I may have missed? Is the Intake catalog up to date or should I go digging for these outputs “by hand”?
Also happy to discuss any other aspect of this project
just let me know!