-
Notifications
You must be signed in to change notification settings - Fork 0
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
make cice grid #8
Conversation
@aekiss & @ezhilsabareesh8 . This is ready for review. I haven't tested with OM2 or OM3 yet. This change is in conjunction with COSIMA/esmgrids#6 |
So grids for all three resolutions need to be updated with non-trivial (more than metadata) changes? |
That's my suggestion. We have to come up with a plan on how to validate the changes though. |
When running the OM3 MOM6-CICE6 0.25-degree configuration using the make_cice_grid.py script in conjunction with the esmgrids tool (pull request), an error related to mask mismatch has been encountered. This issue arises specifically with the newly generated kmt.nc file, whereas there is no such error when using the OM2's The error occurs within the code section linked here.
|
@ezhilsabareesh8 Did you generate the ice grid I havent got the mask mismatch yet, but using the make_cice_grid.py along with the esmgrids tool, I got the ice mesh mismatch, which was encountered in #101
|
Thanks both Can you both try using pbs_make_cice_grids.sh to confirm its not due to different input files? i.e. |
Thanks @anton-seaice. I ran pbs_make_cice_grids.sh to execute make_cice_grid.py and generate grid and mask files, still I am experiencing the mask mismatch error, however there is no issues with the |
Ok. I am not sure then. It works with the OM3 in 1degree configuration. Can you share your configuration ? |
I have just updated the 025 deg configuration in this branch of MOM6-CICE6. Please have a look and change the input |
It turns out the ocean_mask I was using was out of date. I updated to the one from |
I am guessing your mesh file was made without the wrap_lons set to True? om3-scripts/mesh_generation/generate_mesh.py Line 365 in bbc2a56
|
@anton-seaice I had some settings mixed up earlier. Now the grid works fine now. |
The mesh file was generated using
|
Can I suggest you add tests to make sure this is doing what you think it should. e.g. you could start with a test grid, generate the inputs from it and check it recreates the grid correctly. |
I second that, as it looks like it is critical that this script works correctly and might need to use it a few times while setting up the different configurations. In order to have tests+CI+coverage out-of-the-box, might be worth moving this to https://github.com/COSIMA/om3-utils |
Thanks both - I will work on some tests. I am planning on covering:
We could probably extend it to test against the esmf mesh files too. |
Moving to COSIMA/om3-utils#5 |
Created a cice grid generation script, using the esmgrids package.
The script creates a cice grid from the mom supergrid and the ocean mask file. The scripts adds the git commit of this script and the input path and md5sum of the mom files to the netcdf output. I added as close as we can get to cf-compliance and a CRS (See #7).
The differences between versions are in ... notebook and explored below in more detail. By the look of things, 1 deg and 0.25 degree files are inherited / historical and 0.1 deg was made for OM2 using the esmgrids package.
Differences ( I filtered differences less than 2e-6):
1deg
new vars not in old?
{'tripolar'}
missing vars in new?
{'lont_bonds', 'lonu_bonds', 'latu_bonds', 'latt_bonds', 'hue', 'hun'}
htn anom min: nan, anom max: nan
uarea anom min: -1186349698.6215067, anom max: 33617654.79803729
tlat anom min: nan, anom max: nan
ulon anom min: nan, anom max: nan
angle anom min: nan, anom max: nan
tlon anom min: nan, anom max: nan
hte anom min: nan, anom max: nan
ulat anom min: nan, anom max: nan
tarea anom min: -19085417.985637665, anom max: 9877771.11514306
angleT anom min: nan, anom max: nan
025deg
new vars not in old?
{'tripolar'}
missing vars in new?
set()
htn anom min: nan, anom max: nan
uarea anom min: -69552757.44506374, anom max: 7366673.800787419
tlat anom min: nan, anom max: nan
ulon anom min: 3.620558794636963e-05, anom max: 3.141592653589793
angle anom min: -1.5707963267948966, anom max: 1.5707963267948966
tlon anom min: nan, anom max: nan
hte anom min: nan, anom max: nan
ulat anom min: -0.0018422347075643941, anom max: 0.0018422347075643941
tarea anom min: nan, anom max: nan
angleT anom min: nan, anom max: nan
01deg
new vars not in old?
{'tripolar'}
missing vars in new?
{'clat_t', 'clon_t', 'clat_u', 'clon_u'}
htn anom min: nan, anom max: nan
uarea anom min: nan, anom max: nan
tlat anom min: nan, anom max: nan
ulon anom min: nan, anom max: nan
angle anom min: nan, anom max: nan
tlon anom min: nan, anom max: nan
hte anom min: nan, anom max: nan
ulat anom min: nan, anom max: nan
tarea anom min: nan, anom max: nan
angleT anom min: -3.139931603248902, anom max: 1.1133153100325133
Even ignoring the join, its not clear why 0.25 deg uarea has changed, but it looks like it was set equal to tarea in the old grid
Known issues:
See companion PR for esmgrids repo
To-do: