-
Notifications
You must be signed in to change notification settings - Fork 49
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
WIP: Add osnap T S climtransects #899
base: develop
Are you sure you want to change the base?
WIP: Add osnap T S climtransects #899
Conversation
Yes, I would split them.
I'll let @xylar reply to this. My standalone script plots the mpas normalVelocity at the transect mask edges: so, no interpolation but unpleasant noisy visuals. I think Xylar has a more pleasant-to-the-eye alternative. |
Hmm, I don't think we've plotted velocities at transects except for SOSE. There, we just plot zonal, meridional or magnitude. Instead, you would want velocity normal to the transect, which would require a computation based on the zonal and meridional components, and the angle of the transect edge with respect to east. I think that would be fun to do but it hasn't been done yet. |
We actually don't plot velocities for the SOSE transects, only for the SOSE 2d maps. |
At least in the analysis I'm looking at, we do plot the velocities (zonal, meridional and magnitude): |
mpas_analysis/default.cfg
Outdated
# Horizontal bounds of the plot (in km), or an empty list for automatic bounds | ||
# The bounds are a 2-element list of the minimum and maximum distance along the | ||
# transect. Note: A21=Drake Passage; A23=South Atlantic; A12=Prime Meridian | ||
horizontalBounds = {'WOCE_A21': [], | ||
'WOCE_A23': [], | ||
'WOCE_A12': []} |
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 think you can just get rid of this. The horizontal bounds can be the whole transect unless you think you would ever want to plot part of it.
An update on this:
At the moment, runnning the analysis in a new directory fails with
but re-running it a second time (without purging) works and generates the plots. I am wondering if there is something in the order of operations that is off. After the first failure, the only logs available are:
|
@alicebarthel, you're getting close! Because you are using a development environment that doesn't support system MPI, you need these config options from the tutorial: https://mpas-dev.github.io/MPAS-Analysis/latest/tutorials/dev_getting_started.html#execute That way, ESMF_RegridWeightGen won't be called with srun. |
Thanks @xylar ! It seems to work ok now that I added the |
A couple of questions/comments:
|
I have no idea. I wouldn't expect that to be the case. |
Maybe too deep?
Yes, I'll run a test, too, if you think it's ready. |
Absolutely no worries. It's confusing and I hope we can move to the approach in compass soon, where ESMF is built with system MPI. |
I actually think this is OK, especially for OSNAP West. Here are two sections I plotted in the past, and they go to 3500 and 4000 m, respectively: I can also give this a try. |
Ok, thanks @milenaveneziani! I may need to adjust the plot options like range. I did not see observed densities. Did you recalculate these or did you have them? |
FYI, 2 year clim for the v2.amoc.baseline (EC30to60) |
This is really great, @alicebarthel! |
analyses.append(ocean.OsnapTransects(config, oceanClimatolgyTasks['avg'], | ||
controlConfig)) | ||
|
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.
You'll need to rebase onto the current develop
when you get a chance. After doing that, it will be important to fix this typo that got fixed elsewhere in this file.
analyses.append(ocean.OsnapTransects(config, oceanClimatolgyTasks['avg'], | |
controlConfig)) | |
analyses.append(ocean.OsnapTransects(config, oceanClimatologyTasks['avg'], | |
controlConfig)) | |
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.
Things are looking great!
I ran the test suite and results are here:
https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.xasay-davis/analysis_testing/chrysalis/add_OSNAP_TSclimtransects/
In addition to a couple of very small code changes, the only thing left (other than the check-list at the top of this PR for me) are:
- add the task to the API docs here: https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.xasay-davis/analysis_testing/chrysalis/add_OSNAP_TSclimtransects/
- add a new file to the docs for this analysis (with an example image), similar to: https://github.com/MPAS-Dev/MPAS-Analysis/blob/develop/docs/users_guide/tasks/woceTransects.rst
|
||
from mpas_analysis.shared.io.utility import build_obs_path | ||
|
||
from collections import OrderedDict |
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.
from collections import OrderedDict |
Let's take this out. I'm sure it was copied from elsewhere in MPAS-Analysis but it's an old concept from pyhton 2.7. In python 3, the default dict
is ordered (whereas in python 2, it could end up being in random order).
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.
It doesn't look like it's actually used anyway.
The task that produced the climatology to be remapped and plotted | ||
as a transect | ||
|
||
controlconfig : mpas_tools.config.MpasConfigParser, optional |
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.
Incorrect capitalization (no doubt my fault, copied from elsewhere).
controlconfig : mpas_tools.config.MpasConfigParser, optional | |
controlConfig : mpas_tools.config.MpasConfigParser, optional |
""" | ||
# Authors | ||
# ------- | ||
# Xylar Asay-Davis |
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.
# Xylar Asay-Davis | |
# Alice Barthel |
ocean | ||
</component> | ||
<description> | ||
OSNAP,designed to provide a continuous record of the full-water column, trans-basin fluxes of heat, mass and freshwater in the subpolar North Atlantic,consists oftwo legs: one extending from southern Labrador to the southwestern tip of Greenland across the mouth of the Labrador Sea (OSNAP West), and the second from the southeastern tip of Greenland to Scotland (OSNAP East). The observing system also includes subsurface floats (OSNAP Floats) in order to trace the pathways of overflow waters in the basin and to assess the connectivity of currents crossing the OSNAP line. The location of the OSNAP East and West legs purposefully melds with a number of long-term observational efforts in the North Atlantic: the Canadian repeat AR7W program in the Labrador Sea; the German Labrador Sea western boundary array at 53°N; the global Ocean Observatories Initiative node to be placed in the southwestern Irminger Sea; the repeat A1E/AR7E hydrographic sections across the Irminger and Iceland basins; and the Ellett line in the Rockall region. Importantly, this observing system, in conjunction with the RAPID/MOCHA array at 26ºNand the EU THOR/NACLIM program, will provide a comprehensive measure of the Atlantic Meridional Overturning Circulation (AMOC) and provide a means to evaluate intergyre connectivity in the North Atlantic. OSNAP is a collaborative effort, which includes several countries including US, Canada, China, France, Germany, Netherlands and the UK. |
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.
Could you split this across several lines for simplicity? There seems to be a Nand
that should be N and
.
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.
Please take a look at:
https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.xasay-davis/analysis_testing/chrysalis/add_OSNAP_TSclimtransects/docs/users_guide/obs/osnap_t_s.html#osnap-t-s
and make sure the resulting output looks like it should. It looks good to me other than the missing space I pointed out above.
I ran analysis on |
hmm, a bias of 2deg is pretty high in those regions.. We could extend the range to +-3 for the bias. Do you understand why the range above 0 (in the vertical) is plotted? @alicebarthel : no, I computed the sigma0's myself. They were not in the obs data set I used. |
But I agree this is looking great. Thanks @alicebarthel! |
@milenaveneziani, I think that's because it plots up to the actual sea surface height, which goes at least slightly above zero. It doesn't bound the data range too tightly but instead leaves a little margin of error around it. We can manually set the vertical range in the config options if this bugs you. |
yes, I would probably add |
@alicebarthel: I think you can remove the WIP in the title and work in progress label for this one :) |
This is to plot T,S transects at OSNAP transects, based on the obs dataset [downloaded in 2022].
I based it on woce_transects.py
A couple of questions for @milenaveneziani @xylar:
I saw that WOCE is a collection of separate transects. Currently, the obs dataset has both East and West transects in one file, is it better to split them in pre-processing to give us separate plots?
I currently only added T,S (we have no measured density).
I did not add velocities in the variables but it is in the obs dataset. I suspected the process for plotting MPAS-O velocity at transect should be separate from tracer fields. Let me know if you think otherwise.
Checklist (for @xylar) before merging:
/lcrc/group/e3sm/diagnostics/observations/Ocean/OSNAP
to/lcrc/group/e3sm/public_html/diagnostics/observations/Ocean/OSNAP
obs.xml
and copy to/lcrc/group/e3sm/public_html/diagnostics/observations/Ocean/OSNAP