Skip to content

Add ISMIP7 postprocessing framework#733

Draft
hollyhan wants to merge 33 commits into
MPAS-Dev:masterfrom
hollyhan:hollyhan/landice
Draft

Add ISMIP7 postprocessing framework#733
hollyhan wants to merge 33 commits into
MPAS-Dev:masterfrom
hollyhan:hollyhan/landice

Conversation

@hollyhan

@hollyhan hollyhan commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Last updated: 2026/06/24

This PR updates the MALI postprocessing scripts for ISMIP7 based on the ISMIP6 postprocessing scripts.

Completed

  • Updated 2D flux processing to use MALI's online time-averaged flux outputs directly, removing the legacy offline time-averaging workflow.
  • Updated mandatory 1D scalar flux outputs to match the ISMIP7 variable request:
    • Added tendlibmassbfgr
    • Updated tendlifmassbf to represent ice-front melting only
    • Removed the legacy total basal mass balance scalar output

Remaining work

  • (Optional) Implement the remaining optional ISMIP7 variables. (That is, variables highlighted in purple and litempavg in the ISMIP7 variable spreadsheet https://docs.google.com/spreadsheets/d/1yWDxk8pRwwp3gvRT6j0lsWA_5hAkAXqZdLGtgpnLSNE/edit?gid=2113789754#gid=2113789754
  • Testing with simulation outputs in the directory /global/cfs/cdirs/fanssie/MALI_projects/ISMIP7/june30_runs/AIS on Perlmutter.
  • Validate the generated NetCDF files against the ISMIP7 variable request (as of 2026/06/24, standard name is incomplete for variables tendlifmassbf, tendligroundf in the ISMIP7 variable spreadsheet.

This is an exact copy of ISMIP6 postprocessing as a starting point
@trhille trhille marked this pull request as draft June 22, 2026 17:07
hollyhan added 4 commits June 24, 2026 18:02
This change follows updates to MALI in which flux outputs are averaged
online over each output interval.
Also update flux-variable metadata to match the ISMIP7 variable request
(https://docs.google.com/spreadsheets/d/1yWDxk8pRwwp3gvRT6j0lsWA_5hAkAXqZdLGtgpnLSNE/edit?gid=2113789754#gid=2113789754) and stop calling the legacy flux cleaning/time-averaging functions from the main script: post_process_mali_to_ismip7.py
MALI now provides interval-averaged flux outputs directly, so these legacy
ISMIP6 preprocessing steps are no longer needed.
Add the grounded basal mass balance scalar output required by ISMIP7,
update the ice-front melting scalar to use face melting only, and
remove the legacy total basal mass balance scalar output.
* eliminate mapping file name and mali grid name
  and replace with pre-generated map file name
* add option to reuse existing map file
* Renames create_mapfile_mali_to_ismip7.py to grid_and_mapping.py
* moves grid check stuff from main script to the new module
* if grid is invalid, err instead of generating grid
* rename function to "check"
This eliminates need to cat files ahead of time.
* allow authors and group to be input
* created single metadata dict for all stages to use
This makes it easy to set for DOE and Arete submissions
Move multifile validation to a helper module and call from both 1d and 2d state processing.
Fixes a number of small problems and general cleanup
I set up masks that could be used for flux vars, but then I disabled
using them altogether.  This is because the masks at the end of the year
will not necessarily be consistent with where fluxes were applied during
the year.  It makes more sense to me to leave fluxes unmasked and just
have 0 values for the flux at places where they did not occur.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants