Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Naming convention for grid aliases #70

Open
ekluzek opened this issue Nov 23, 2022 · 14 comments
Open

Naming convention for grid aliases #70

ekluzek opened this issue Nov 23, 2022 · 14 comments
Labels
question Further information is requested

Comments

@ekluzek
Copy link
Contributor

ekluzek commented Nov 23, 2022

We talked about this at the Nov/15/2022 CSEG meeting. We agreed on a few things to put into practice for a naming convention of grid aliases.

  • Try to keep aliases short
  • Standard form for a grid with a full ocean is {atm-grid}_{ocn/ice-grid}
  • Standard form when ocean runs on the atm grid with a ocean mask is {atm-grid}_{ocn-ice-grid}_m{mask}
  • Other grids are to be listed in the same order they are in the grid long name (currently atm_lnd_oi_rof_glc_wav_z_mask)
  • Grids that can use the standard default for a component don't need to be specified
  • From above the mask is last
  • Components not always in the list should be proceeded by a underscore and the applicable component letter (i.e. _r for ROF and _g for GLC)

Examples:

  • f09_g17 (Fully coupled atmosphere/ocean)
  • f09_f09_mg17 (CAM)
  • TL319_t061_wt061 (MOM)
  • ne30_ne30_lf19_mg17 (tri grid)
  • hcru_hcru_rHDMAlk_mt13 (mizuRoute with lakes)

Some of the the things we said in the 11/15 meeting were:

Grid for mizuRoute with lakes
Erik - I need to distinguish the grid for mizuRoute when lakes are active with not. So plan to have a grid alias like: f09_f09_mg17_rHDMA-lake.

Jim would prefer if this alias were shorter.

Mike suggests _rH and _rHl or something like that
Cheryl likes this, too; prefers not having a dash
Where should the mask go in the alias? Note this is currently inconsistent between runoff vs glacier aliases. Feeling is we should be consistent, and probably have the mask at the end. That would also be consistent with the ordering in long names.
@ekluzek ekluzek added the question Further information is requested label Nov 23, 2022
@ekluzek
Copy link
Contributor Author

ekluzek commented Nov 23, 2022

In ccs_config_cesm0.0.38 we have 183 aliases.
From above the following 61 grid aliases follow the convention for atm/lnd grids:

C192_C192_mg17
C24_C24_mg17
C384_C384_mg17
C48_C48_mg17
C96_C96_mg17
C96_C96_mt061
f02_f02_mg16
f02_f02_mg17
05_f05_mg17
f09_f09_mg16
f09_f09_mg17
f09_f09_mnull
f10_f10_ais8gris4_mg37
f10_f10_ais8_mg37
f10_f10_mg37
f10_f10_musgs
f19_f19_mg16
f19_f19_mg17
f19_f19_mnull
f25_f25_mg16
f25_f25_mg17
f45_f45_mg37
hcru_hcru_mt13
mpasa3p75_mpasa3p75_mg17
mpasa7p5_mpasa7p5_mg17
ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12
ne0ARCTICne30x4_ne0ARCTICne30x4_mt12
ne0CONUSne30x8_ne0CONUSne30x8_mg17
ne0CONUSne30x8_ne0CONUSne30x8_mt12
ne0TESTONLYne5x4_ne0TESTONLYne5x4_mg37
ne120_ne120_mg16
ne120_ne120_mg17
ne120pg2_ne120pg2_mg17
ne120pg2_ne120pg2_mt12
ne120pg3_ne120pg3_mg17
ne120pg3_ne120pg3_mt13
ne120pg4_ne120pg4_mg17
ne16_ne16_mg17
ne16pg3_ne16pg3_mg17
ne30_ne30_mg16
ne30_ne30_mg17
ne30pg2_ne30pg2_mg17
ne30pg3_ne30pg3_mg17
ne30pg4_ne30pg4_mg17
ne5_ne5_mg37
ne5pg2_ne5pg2_mg37
ne5pg3_ne5pg3_mg37
ne5pg4_ne5pg4_mg37
ne60_ne60_mg16
ne60pg2_ne60pg2_mg17
ne60pg3_ne60pg3_mg17
ne60pg4_ne60pg4_mg17
nldas2_rnldas2_mnldas2
T42_T42_mg16
T42_T42_mg17
T5_T5_mg37
T85_T85_mg16
T85_T85_mg17

The following 3 atm/lnd grids have atmosphere running on the ocean grid:

1D_1D
g16_g16
g17_g17

List of 11 CLM single point/regional grids that are probably OK:

1x1_brazil
1x1_camdenNJ
1x1_mexicocityMEX
1x1_numaIA
1x1_smallvilleIA
1x1_urbanc_alpha
1x1_vancouverCAN
5x5_amazon
5x5_amazon_r05
5x5_amazon_rHDMA
CLM_USRDAT

The WAVE watch grid that's OK:

ww3a

The following 5 are for running with POP and good:

T62_g16
T62_g17
T62_g37
T62_t12
T62_t13

The following 2 are odd grids I'm not sure what to think about:

T62_s11
T62_oQU120 (not used)

Some grids for Paleo work that aren't being used anymore and maybe can be removed? (they should be removed or standardized)

T31_g37 (this is the only being used)
T31_g37_gris4
T31_g37_gl4
T31_g37_gris20
T31_g37_gl20

A set of 24 MOM grids:

f09_t061
ne30pg3_t061
C96_t025
C384_t025
TL319_g17
TL319_g17
TL319_t061
TL319_t12
TL319_t13
TL319_t13
TL639_g17
TL639_t061
T62_t061
T62_t025
T62_n0253
TL319_g17_wg17
TL319_t061_wt061
T62_t061_wt061
T62_g17_wg17
f09_n0253
f02_n0253
T62_n13
f02_n13
f09_n13

A set of 4 tri-grid grids to standardize: (these are no longer being used)

ne30_f19_g16
ne30_f19_g17
ne30_f09_g16
ne30_f09_g17

By above convention they should be:

ne30_ne30_lf19_mg16
ne30_ne30_lf19_mg17
ne30_ne30_lf09_mg16
ne30_ne30_lf09_mg17

A set of 10 atm-lnd cases that should be standardized or removed: (they are not used)

ne15_g17
ne60_g17
f05_g16
f02_t12
ne120_t12
ne240_f02_g16
ne240_f02_g17
f05_t12
ne120_t12
T341_f02_t12

A set of 9 mpas grids that should be standardized:

mpasa480_mpasa480
mpasa240_mpasa240
mpasa120_mpasa120
mpasa60_mpasa60
mpasa30_mpasa30
mpasa15_mpasa15
mpasa12_mpasa12
mpasa15-3_mpasa15-3
mpasa15-3-conus_mpasa15-3-conus

A set of 9 glacier grids to remove or standardize:

f19_g17_gl4 (this one is not used)
f09_g17_gris4
f09_g17_gl4
f09_g17_ais8
f09_g17_ais8gris4
f09_g17_gris20
f09_g17_gl20 (this one is not used)
f19_g17_gris4
f19_g17_gl4 (this one is not used)

The following 19 have a standardized alias and should be deprecated and removed from usage in components:

T42_T42 --> T42_T42_mg17
T85_f09_e12 --> T85_T85_mg17 (not used)
f02_g16 --> f02_f02_mg16 (not used)
f02_g17 --> f02_f02_mg17 (not used)
f05_g17 --> 05_f05_mg17 (not used)
f09_g16 --> f09_f09_mg16 (not used)
f09_g17 --> f09_f09_mg17
f19_g16 --> f19_f19_mg16 (not used)
f19_g17 --> f19_f19_mg17
f19_f19 --> f19_f19_mg17
f45_g37 --> f45_f45_mg37
f10_g37 --> f10_f10_mg37
ne30_g16 --> ne30_ne30_mg16 (not used)
ne30_g17 --> ne30_ne30_mg17
ne30pg3_g17 --> ne30pg3_ne30pg3_mg17 (not used)
ne60_g16 --> ne60_ne60_mg16 (not used)
ne120_g16 --> ne120_ne120_mg16 (not used)
ne120_g17 --> ne120_ne120_mg17 (not used)
ne120pg3_g17 --> ne120pg2_ne120pg2_mg17 (not used)
ne120pg3_t13 --> ne120pg3_ne120pg3_mt13 (not used)
ne0CONUSne30x8_g17 --> ne0CONUSne30x8_ne0CONUSne30x8_mg17 (not used)
C96_t061 --> C96_C96_mt061

the following 9 ROF grids should be standardized:

f19_g16_r01 (not used)
f19_g17_r01 (not used)
f19_g17_r05 (not used)
T31_g37_rx1
f45_g37_rx1
f19_g16_rx1
f19_g17_rx1
ne30_g16_rx1 (not used)
ne30_g17_rx1

The following 9 mizuRoute grids should be standardized:

nldas2_rUSGS_mnldas2
nldas2_rHDMA_mnldas2
nldas2_rMERIT_mnldas2
hcru_hcru_mt13_rMERIT
hcru_hcru_mt13_rHDMA
f09_f09_mg17_rHDMA
f09_f09_mg17_rMERIT
f19_f19_mg17_rHDMA
f19_f19_mg17_rMERIT

@rljacob
Copy link
Member

rljacob commented Nov 23, 2022

Following. E3SM would like to follow a common convention.

@rljacob
Copy link
Member

rljacob commented Nov 23, 2022

"Standard form for ocn is {ocn-grid}_{ice-grid}" Do you have cases where the sea ice and ocn grids are different?

@ekluzek
Copy link
Contributor Author

ekluzek commented Nov 24, 2022

@rljacob no we don't have ocean and ice on a different grid, and actually the long form format doesn't allow ocn and ice to be different. But, we do have these grids that reflect that convention:

1D_1D
g16_g16
g17_g17

I actually think we should probably think about changing that convention because of the exact thing you point out. So perhaps the above examples could be removed?

@mvertens
Copy link
Contributor

My understanding is that g16_g16 and g17_g17 and 1d_1d refer to having the atm and ocn on the same grid (g16, g17 and 1d) - not the ocn and ice on different grids. The ocean and ice cannot be allowed to be on different grids. That is a fundamental assumption for CESM and I believe E3SM as well.

@ekluzek
Copy link
Contributor Author

ekluzek commented Nov 24, 2022

Thanks for pointing that out @mvertens I've updated the top two to reflect that now.

@rljacob
Copy link
Member

rljacob commented Nov 27, 2022

Dont' forget about tri-grid cases. Those are usually {atm-grid}_{lnd/rof-grid}_{ocn/ice grid}

@billsacks
Copy link
Member

  • Standard form for atm is {atm-grid}_{lnd-grid}_m{mask}

My understanding (maybe wrong) is that the standard form for atm (i.e., F compsets) is still {atm-grid}_{ocn/ice-grid}_m{mask} – it's just that atm & ocn are on the same grid for F compsets. Others please correct me if I'm wrong here.

@billsacks
Copy link
Member

Thanks @ekluzek for laying this out, and especially for your careful analysis of the existing grids. Your idea of moving to more standardization in grid aliases seems good.

@ekluzek
Copy link
Contributor Author

ekluzek commented Dec 6, 2022

Using the following command I checked what grids are actually being tested in cesm2_3_alpha10c

find . -name 'testlist*.xml' -print -exec grep 'grid=' {} \; | awk -F\" '{print $4}' | sort -u

1x1_brazil
1x1_mexicocityMEX
1x1_numaIA
1x1_smallvilleIA
1x1_vancouverCAN
5x5_amazon
C48_C48_mg17
C96_C96_mg17
C96_t061
CLM_USRDAT
f05_f05_mg17
f09_f09
f09_f09_mg17
f09_g17
f09_g17_ais8
f09_g17_ais8gris4
f09_g17_gl4
f09_g17_gris20
f09_g17_gris4
f09_t061
f10_f10_ais8gris4_mg37
f10_f10_ais8_mg37
f10_f10_mg37
f19_f19
f19_f19_mg17
f19_g16_rx1
f19_g17
f19_g17_gris4
f19_g17_rx1
f45_f45_mg37
f45_g37
f45_g37_rx1
mpasa120_mpasa120
mpasa480_mpasa480
mpasa480z32_mpasa480
ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12
ne0ARCTICne30x4_ne0ARCTICne30x4_mt12
ne0CONUSne30x8_ne0CONUSne30x8_mt12
ne0TESTONLYne5x4_ne0TESTONLYne5x4_mg37
ne16_ne16_mg17
ne16pg3_ne16pg3_mg17
ne30_g17
ne30_g17_rx1
ne30_ne30_mg17
ne30pg2_ne30pg2_mg17
ne30pg3_ne30pg3_mg17
ne30pg3_t061
ne5_ne5_mg37
ne5pg2_ne5pg2_mg37
ne5pg3_ne5pg3_mg37
ne5pg4_ne5pg4_mg37
nldas2_rnldas2_mnldas2
T31_g37
T31_g37_rx1
T42_T42
T42_T42_mg17
T42z30_T42_mg17
T5_T5_mg37
T62_g16
T62_g17
T62_g37
T62_s11
T62_t061
T62_t12
T62_t13
T85z30_T85_mg17
T85z60_T85_mg17
TL319_g17
TL319_t061
TL319_t13
ww3a

@ekluzek
Copy link
Contributor Author

ekluzek commented Dec 13, 2022

In order to get these new standards in place, I think the steps are:

  • Remove a bunch of the grids that aren't standard and aren't being used
  • Add new grid aliases needed to replace ones that need to change
  • Figure out changes that CAM needs to make (mostly for the mpas grids) (make an issue for CAM)
  • Figure out the ROF grids that need to be standardized and what components need to change
  • Figure out changes that CISM needs to make (make an issue for CISM)
  • Remove more grids after components are updated
  • Add metadata so that you note things like the alias is being deprecated
  • Add naming convention parser that ensures the standard is being followed?

@ekluzek
Copy link
Contributor Author

ekluzek commented Dec 15, 2022

I met with Will and @briandobbins regarding this issue. I will do some background efforts on this again starting in January. The first two steps above are things that could be done, remove grids that aren't tested, add new aliases for grids that should be removed.

@briandobbins would like to work on this in order to make it easier for users, and having 183 grid aliases in the list is daunting for a new user! He suggests we could have a few simpler aliases for novice users that would do the most standard type of things 1-Degree for example. Doing that might need to have some control logic between the grid and the compset though.

One concern with this is that we need to know what SIMA plans on doing with grids. So we want to wait on this a bit for a final accepted grid alias naming convention.

We also pointed out that tri-grids are NOT being tested right now, but there is important functionality for them, so we should add back testing for them.

We'd also like to add some metadata so we can mark grids in various ways, like being deprecated. Maybe we could mark a few as the most standard ones. We mark what compset/grid combinations are considered "scientifically supported", and you have to run with --run-unsupported to run others, maybe we need something like that for grids?

fischer-ncar added a commit that referenced this issue Dec 17, 2022
This adds some new grids for mizuRoute lake HDMA-lake option, and also changes the mizuRoute grid aliases to the convention discussed previously.

Fixes #67
Uses the convention as addressed in #70
@gold2718
Copy link
Collaborator

We also pointed out that tri-grids are NOT being tested right now, but there is important functionality for them, so we should add back testing for them.

Is there any use of tri-grids in CESM? While the naming convention has to include tri-grids, I don't see any reason CESM folks need to spend time testing and/or supporting them.

@gold2718
Copy link
Collaborator

He suggests we could have a few simpler aliases for novice users that would do the most standard type of things 1-Degree for example. Doing that might need to have some control logic between the grid and the compset though.

One concern with this is that we need to know what SIMA plans on doing with grids. So we want to wait on this a bit for a final accepted grid alias naming convention.

Given that CAM supports 5 dycores (and I have not seen any plans to remove any), trying to introduce a simple description, such as 1-Degree, would introduce a new problem of creating a new way to specify the dycore in the create_nenwcase call. This is not super difficult but first be sure that the cure is not worse than the disease.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

5 participants