Skip to content

Conversation

alexolinhager
Copy link

This PR creates the option (max_res_in_ocn=True) to maintain the highest resolution used on land ice cells in all ocean cells when generating the GIS MALI mesh. This is done to resolve fjord geometry and coastal bathymetry necessary to translate ocean properties to glacier termini when coupling MALI to MPAS-Ocean (or prescribing ocean forcing to MALI in standalone mode). As this has the potential to drastically increase mesh generation time, so there is an additional option define_bnds_by_geojson=True that performs an initial cull of the BedMachine dataset according to the bounds set by compass/landice/tests/greenland/gis_contShelfExtent_PS.geojson before generating the mesh in Jigsaw.

Checklist

  • User's Guide has been updated
  • Developer's Guide has been updated
  • API documentation in the Developer's Guide (api.rst) has any new or modified class, method and/or functions listed
  • Documentation has been built locally and changes look as expected
  • Document (in a comment titled Testing in this PR) any testing that was used to verify the changes

andrewdnolan and others added 4 commits February 21, 2025 09:44
Creates the option to maintain resolution in the ocean. Used to resolve
fjords and bathymetry when coupling to MPAS-Ocean.
This commit creates the option to maintain high resolution in all ocean
cells (same resolution as what is prescribed at outlet glacier termini).
This is necessary to resolve the fjord geometry that thermal forcing
parameterizations rely on. To reduce time when generating these higher
resolution meshes, this commit also introduces an option to do an
initial cull of the bedMachine dataset using the extent of the
contintental shelf before generating the GIS mesh.
This commit moves the calculation of geom_points and geom_edges
using a geojson of the gis contintental shelf extent
to compass/landice/tests/greenland/mesh.py, instead of
compass/landice/mesh.py. If this options is not being used, thn
geom_points and geom_edges are calculated within build_cell_width, as
per usual
@@ -31,7 +33,7 @@ def __init__(self, test_case):
Parameters
----------
test_case : compass.TestCase
The test case this step belongs to
The test case this step belongs to/
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The test case this step belongs to/
The test case this step belongs to

@@ -265,12 +265,10 @@ def set_cell_width(self, section_name, thk, bed=None, vx=None, vy=None,
low_bed = section.getfloat('low_bed')
high_bed = section.getfloat('high_bed')

# convert km to m
cull_distance = section.getfloat('cull_distance') * 1.e3
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We definitely don't want to remove culling by distance entirely.

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

Successfully merging this pull request may close these issues.

3 participants