Support NEMO tripolar T and F pivots. Add option to follow latitude circles#45
Conversation
- tripolar-Tpivot for NEMO orca2 orca025 orca12 orca36 -- and maybe MOM6? - tripolar-Fpivot for NEMO orca1 orca05 - curve="latitude circle" option follows latitude=constant curves. Other curves can be added by providing two functions, one that measures closeness to the desired curve, and one that measures closeness to the endpoint. - kwargs argument added to GriddedSection.__init__ to allow passing through `topology` argument - Removed modulo nx operations where not necessary in `infer_grid_path`, but added a check on initial i values that I have not seen fail - build lons_c_seg, lats_c_seg as numpy arrays directly, rather than appending to a list - examples/4_sections_on_global_tripolar_grid.ipynb updated to show `curve="latitude circle"` and `topology="tripolar-Tpivot"`. Testing `topology="tripolar-Fpivot"` will require some other dataset.
|
I left I found the MOM5 elements manual section 9.4.3 specifies that the northern seam for U points (same as F points, as that document is written for an Arakawa B-grid) operates as From
Oddly, I thought the issue might be with the (i,j) walk algorithm, so I made a separate branch with a new algorithm over in https://github.com/geoffstanley/sectionate/tree/dev--walk-algorithm . More on that later. I get good results with following various transects across the north fold with a mesh_mask from NEMO's eorca1 ( |



New options for the
topologyargument:topology = "tripolar-Tpivot"handles the NEMO tripolar grid pivoting on the T (tracer) pointtopology = "tripolar-Fpivot"handles the NEMO tripolar grid pivoting on the F (vorticity) pointThe formulas for how to cross the north fold were created by studying Appendix E of the NEMO manual, v4.2.
New argument
curve:curve = "great circle"is the default; no changes from previous behaviourcurve = "latitude circle"is new; the walk through grid space will approximate a latitude circle.Minor updates to
examples/4_sections_on_global_tripolar_grid.ipynbto showcasecurve = "latitude circle".Minor edits to
docs/environment.ymlandexamples/load_example_model_grid.pythat I needed to make to get started.