Add ISMIP7 fracture test case for shelf-collapse pathways - #975
Conversation
Add a 'fracture' test case to the ismip7_forcing test group that processes the ISMIP7 surface-melt-driven ice shelf collapse forcing (AIS) via three pathways, each as its own step: - process_excess_melt (Path A): remaps the excess meltwater field. Reconstructs x/y coordinates and corrects the y-axis orientation of the source file before conservative remapping. - process_lake_properties (Path B): remaps supraglacial lake mean depth and area fraction (Grau et al. 2025) via bilinear remapping. - process_shelf_collapse (Path C): remaps the annual ice shelf collapse mask via neareststod, rounding to 0/1. Add per-pathway remap-method config options and documentation.
Each fracture step returns early without processing its file when its [ismip7_fracture] remapping-method option is set to None. This lets a user process only the pathways whose source files are available, without adding separate enable/disable flags.
Capture the integer years from the time coordinate before renaming the time dimension to Time, since the rename also renames the coordinate variable. Drop the leftover Time coordinate from the output.
Convert the excess melt field from mm w.e. yr-1 to kg m-2 s-1 using 1 mm w.e. = 1 kg m-2 and a 365-day year, consistent with other MALI mass fluxes.
TestingProcessing these files took less than one minute on one Perlmutter node. shelf_collapse_mask.movCESM2-WACCM ssp5-8.5 lake depth and area: lakes.movCESM2-WACCM ssp5-8.5 excess surface melt: excess_melt.mov |
Move the duplicated extrapolation and rename/xtime boilerplate from the three fracture steps into a shared remap_utils module (extrapolate_source, open_rename_and_trim, add_xtime_and_write). The step-specific logic (unit conversion, mask rounding, per-variable attrs) stays in each step.
matthewhoffman
left a comment
There was a problem hiding this comment.
I reviewed the docs, cfgs, and all python files by inspection. I saw a handful of places where perhaps refactoring could be applied, performance improvements might be available, or minor convenience improvements, but I don't think those are worth pursuing for this specialized tool. One convenience thing worth mentioning is it is not clear to me how the new fracture steps are handled if the ice sheet is set to gis - it looks like it would be necessary to set the methods to 'none' to avoid an error, but it would be convenient if these steps were just ignored for gis. I'll leave it up to you if you want to bother implementing that or not - this certainly seems like it gets the job done.
Add a 'fracture' test case to the ismip7_forcing test group that processes the ISMIP7 surface-melt-driven ice shelf collapse forcing (AIS) via three pathways, each as its own step:
Add per-pathway remap-method config options and documentation.
Checklist
api.rst) has any new or modified class, method and/or functions listedTestingin this PR) any testing that was used to verify the changes