-
Notifications
You must be signed in to change notification settings - Fork 14
Adding Mixed Layer Depth Diagnostic #87
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
Conversation
- Mixed Layer depth diagnostic code added for analyzing model output - Takes MLD_003, MLD_EN1, MLD_EN2, OR MLD_EN3 as inputs. - Creates map of input (either min or max of monthly means) - Compares to similar field from obs (usually Argo based).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@breichl - Looks really good. Mostly a few minor nits.
Major comments:
- Please apply the black code formatter to your .py files
- Consider whether or not using xESMF for regridding would work better for this diagnostic
obs_lat = np.copy(ds_obs["Lat"]) | ||
obs_lon = np.copy(ds_obs["Lon"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copying in general increases the memory footprint. You can access the underlying NumPy arrays by using the .values
method, e.g.
obs_lat = ds_obs["Lat"].values
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in #111
# Gridding obs data to common grid. While obs data is already on the common grid, | ||
# it may need shuffled if crossing periodic longitude boundary. This is an easy | ||
# way to ensure that happens correctly. | ||
obs = griddata((obs_lat.flatten(),obs_lon.flatten()), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, there is a lot of code here to implement regridding functionality. I wonder if using xESMF would be more streamlined?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree xesmf should be used instead of griddata, there is a function in om4common to regrid data
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in #111
# Gridding obs data to common grid. While obs data is already on the common grid, | ||
# it may need shuffled if crossing periodic longitude boundary. This is an easy | ||
# way to ensure that happens correctly. | ||
obs = griddata((obs_lat.flatten(),obs_lon.flatten()), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree xesmf should be used instead of griddata, there is a function in om4common to regrid data
- CLim -> cbar_lim - Dim -> dim
…o user/bgr/MLD_diag
This PR is replaced by #111 |
Potential Issues:
Command to test:
om4labs mld --grid global --method max --mldvar MLD_EN1 -s /archive/bgr/FMS2019.01.03_mom6_20201020/OM4p25_JRA55do1.5_ePBLRL19_BBL01_VS_JHLtol/gfdl.ncrc4-intel18-prod/pp/ocean_monthly/ocean_monthly.static.nc /archive/bgr/FMS2019.01.03_mom6_20201020/OM4p25_JRA55do1.5_ePBLRL19_BBL01_VS_JHLtol/gfdl.ncrc4-intel18-prod/pp/ocean_monthly/ts/monthly/5yr/ocean_monthly.199801-200212.MLD_EN1.nc /archive/bgr/FMS2019.01.03_mom6_20201020/OM4p25_JRA55do1.5_ePBLRL19_BBL01_VS_JHLtol/gfdl.ncrc4-intel18-prod/pp/ocean_monthly/ts/monthly/5yr/ocean_monthly.200301-200712.MLD_EN1.nc /archive/bgr/FMS2019.01.03_mom6_20201020/OM4p25_JRA55do1.5_ePBLRL19_BBL01_VS_JHLtol/gfdl.ncrc4-intel18-prod/pp/ocean_monthly/ts/monthly/5yr/ocean_monthly.200801-201212.MLD_EN1.nc