landice

Landice()

The collection of all test case for the MALI core

Utilities

calculate_decomp_core_pair(config, ...)

Get a pair of decomposition task counts based on available cores.

ISMIP7 framework

ice_sheet_params.get_params(config)

Get ice-sheet-specific parameters from the config.

archive.ForcingSource(directory, files, ...)

A resolved collection of ISMIP7 forcing files.

archive.resolve_atmosphere_source(config, ...)

Resolve one atmosphere variable from the native archive hierarchy.

archive.resolve_ocean_source(config[, choice])

Resolve ocean thermal forcing from the native archive hierarchy.

archive.resolve_fracture_source(config, ...)

Resolve one fracture product, keeping all pathways on one version.

archive.resolve_version_directory(base_path)

Resolve an explicit version or the numerically latest version directory.

archive.mapping_file_name(config, component, ...)

Build a mapping filename that identifies the selected source grid.

mapping.build_mapping_file(config, logger, ...)

Build a mapping file for regridding from an ISMIP7 polar stereographic grid to the MALI unstructured mesh.

remap.netcdf_file_is_valid(path[, varname, ...])

Return True if path exists, opens cleanly, contains varname and (optionally) a time coordinate, and its last time record can actually be read.

remap.extrapolate_source(input_file, ...)

Extrapolate fill/missing values on the source polar stereographic grid using nearest-neighbor via distance_transform_edt.

remap.open_rename_and_trim(remapped_file, ...)

Open a remapped file, rename dimensions/variables to MALI conventions, and restrict to the requested year range.

remap.add_xtime_and_write(ds, years, output_file)

Add an xtime variable (January 1st of each year), drop auxiliary remapping variables, and write the dataset.

Test Groups

antarctica

Antarctica(mpas_core)

A test group for Antarctica test cases

mesh_gen.MeshGen(test_group)

The default test case for the Antarctica test group simply creates the mesh and initial condition.

mesh.Mesh(test_case)

A step for creating a mesh and initial condition for Antarctica test cases

mesh.Mesh.run()

Run this step of the test case

calving_dt_convergence

CalvingDtConvergence(mpas_core)

A test group for a series of test cases for assessing timestep convergence related to calving.

dt_convergence_test.DtConvergenceTest(...)

A test case for running the same configuration with a series of values for config_adaptive_timestep_calvingCFL_fraction to check for convergence

dt_convergence_test.DtConvergenceTest.validate()

Test cases can override this method to perform validation of variables and timers

run_model.RunModel(test_case, name, mesh, ...)

A step for performing forward MALI runs as part of calving dt convergence test cases.

run_model.RunModel.run()

Run this step of the test case

circular_shelf

CircularShelf(mpas_core)

A test group for circular shelf test cases

decomposition_test.DecompositionTest(...)

A test case for performing two MALI runs of a circular shelf setup, one with one core and one with four.

decomposition_test.DecompositionTest.run()

This method is deprecated.

run_model.RunModel(test_case[, name, ...])

A step for performing forward MALI runs as part of circular_shelf test cases.

run_model.RunModel.run()

Run this step of the test case

setup_mesh.SetupMesh(test_case)

A step for creating a mesh and initial condition for circular_shelf test cases

setup_mesh.SetupMesh.run()

Run this step of the test case

visualize.Visualize(test_case[, name, ...])

A step for visualizing the output from a circular_shelf test case

visualize.Visualize.run()

Run this step of the test case

visualize.visualize_circular_shelf(config, ...)

Plot the output from a circular_shelf test case

crane

Crane(mpas_core)

A test group for Crane Glacier test cases.

mesh_gen.MeshGen(test_group)

The high resolution test case for the crane test group simply creates the mesh and initial condition.

mesh_gen.MeshGen.run()

This method is deprecated.

mesh.Mesh(test_case)

A step for creating a mesh and initial condition for thwaites test cases

mesh.Mesh.run()

Run this step of the test case

dome

Dome(mpas_core)

A test group for dome test cases

decomposition_test.DecompositionTest(...)

A test case for performing two MALI runs of a dome setup, one with one core and one with four.

decomposition_test.DecompositionTest.run()

This method is deprecated.

restart_test.RestartTest(test_group, ...)

A test case for performing two MALI runs of a dome setup, one full run and one run broken into two segments with a restart.

restart_test.RestartTest.run()

This method is deprecated.

smoke_test.SmokeTest(test_group, ...)

The default test case for the dome test group simply creates the mesh and initial condition, then performs a short forward run on 4 cores.

smoke_test.SmokeTest.run()

This method is deprecated.

run_model.RunModel(test_case, velo_solver, ...)

A step for performing forward MALI runs as part of dome test cases.

run_model.RunModel.setup()

Set up the test case in the work directory, including downloading any dependencies.

run_model.RunModel.run()

Run this step of the test case

setup_mesh.SetupMesh(test_case, mesh_type)

A step for creating a mesh and initial condition for dome test cases

setup_mesh.SetupMesh.run()

Run this step of the test case

visualize.Visualize(test_case, mesh_type[, ...])

A step for visualizing the output from a dome test case

visualize.Visualize.run()

Run this step of the test case

visualize.visualize_dome(config, logger, ...)

Plot the output from a dome test case

enthalpy_benchmark

EnthalpyBenchmark(mpas_core)

A test group for enthalpy benchmark test cases

A.A(test_group)

The Kleiner enthalpy benchmark test case A

A.A.configure()

Modify the configuration options for this test case

A.A.run()

This method is deprecated.

A.visualize.Visualize(test_case)

A step for visualizing the output from a dome test case

A.visualize.Visualize.run()

Run this step of the test case

B.B(test_group)

The Kleiner enthalpy benchmark test case B

B.B.configure()

Modify the configuration options for this test case

B.B.run()

This method is deprecated.

B.visualize.Visualize(test_case)

A step for visualizing the output from a dome test case

B.visualize.Visualize.run()

Run this step of the test case

run_model.RunModel(test_case, name[, ...])

A step for performing forward MALI runs as part of dome test cases.

run_model.RunModel.setup()

Set up the test case in the work directory, including downloading any dependencies.

run_model.RunModel.run()

Run this step of the test case

setup_mesh.SetupMesh(test_case)

A step for creating a mesh and initial condition for enthalpy benchmark test cases

setup_mesh.SetupMesh.run()

Run this step of the test case

eismint2

Eismint2(mpas_core)

A test group for eismint2 test cases

decomposition_test.DecompositionTest(...)

A test case for performing two MALI runs of a EISMINT2 setup, one with one core and one with four.

decomposition_test.DecompositionTest.run()

This method is deprecated.

restart_test.RestartTest(test_group, ...)

A test case for performing two MALI runs of an EISMINT2 setup, one full run and one run broken into two segments with a restart.

restart_test.RestartTest.run()

This method is deprecated.

standard_experiments.StandardExperiments(...)

A test case for performing the standard EISMINT2 experiments.

standard_experiments.StandardExperiments.run()

This method is deprecated.

standard_experiments.visualize.Visualize(...)

A step for visualizing the output from a EISMINT2 test case

standard_experiments.visualize.Visualize.run()

Run this step of the test case

standard_experiments.visualize.visualize_eismint2(...)

Plot the output from an EISMINT2 experiment

run_experiment.RunExperiment(test_case, ...)

A step for performing forward MALI runs as part of eismint2 test cases.

run_experiment.RunExperiment.setup()

Set up the test case in the work directory, including downloading any dependencies.

run_experiment.RunExperiment.run()

Run this step of the test case

setup_mesh.SetupMesh(test_case)

A step for creating a mesh and initial condition for EISMINT2 test cases

setup_mesh.SetupMesh.run()

Run this step of the test case

ensemble_generator

EnsembleGenerator(mpas_core)

A test group for generating ensembles of MALI simulations for uncertainty quantification or parameter sensitivity tests.

ensemble_manager.EnsembleManager(test_case)

A step for an ensemble manager.

ensemble_manager.EnsembleManager.setup()

Sets up the ensemble manager

ensemble_manager.EnsembleManager.run()

Use the ensemble manager to manage and launch jobs for each run Each ensemble member is a step of the test case.

ensemble_member.EnsembleMember(test_case, ...)

A step for setting up a single ensemble member

ensemble_member.EnsembleMember.setup()

Set up this run by setting up a baseline run configuration and then modifying parameters for this ensemble member based on an externally provided unit parameter vector

ensemble_member.EnsembleMember.run()

Run this member of the ensemble.

ensemble_template.get_ensemble_template_name(config)

Get the configured ensemble template name.

ensemble_template.get_spinup_template_package(config)

Get the package containing spinup ensemble template resources.

ensemble_template.get_branch_template_package(config)

Get the package containing branch ensemble template resources.

spinup_ensemble.SpinupEnsemble(test_group)

A test case for performing an ensemble of simulations for uncertainty quantification studies.

spinup_ensemble.SpinupEnsemble.configure()

Configure a parameter ensemble of MALI simulations.

branch_ensemble.BranchEnsemble(test_group)

A test case for performing an ensemble of simulations for uncertainty quantification studies.

branch_ensemble.BranchEnsemble.configure()

Configure a parameter ensemble of MALI simulations.

greenland

Greenland(mpas_core)

A test group for Greenland test cases

decomposition_test.DecompositionTest(...)

A test case for performing two MALI runs of the Greenland Ice Sheet setup with different decompositions.

decomposition_test.DecompositionTest.configure()

Choose decomposition sizes from framework-detected resources and add run steps.

decomposition_test.DecompositionTest.run()

This method is deprecated.

restart_test.RestartTest(test_group, velo_solver)

A test case for performing two MALI runs of the Greenland Ice Sheet setup, one full run and one run broken into two segments with a restart.

restart_test.RestartTest.run()

This method is deprecated.

smoke_test.SmokeTest(test_group, velo_solver)

The default test case for the Greenland test group simply downloads the mesh and initial condition, then performs a short forward run on 36 cores.

smoke_test.SmokeTest.run()

This method is deprecated.

run_model.RunModel(test_case, velo_solver[, ...])

A step for performing forward MALI runs as part of low-res 20km Greenland test cases.

run_model.RunModel.setup()

Set up the test case in the work directory, including downloading any dependencies.

run_model.RunModel.run()

Run this step of the test case

mesh.Mesh(test_case)

A step for creating a mesh and initial condition for greenland test cases

mesh.Mesh.setup()

Add the configured geojson cull-mask file as an input.

mesh.Mesh.run()

Run this step of the test case

mesh_gen.MeshGen(test_group)

The high resolution test case for the greenland test group simply creates the mesh and initial condition.

mesh_gen.MeshGen.run()

This method is deprecated.

humboldt

Humboldt(mpas_core)

A test group for humboldt test cases

mesh_gen.MeshGen(test_group)

The MeshGen test case for the humboldt test group simply creates the mesh and initial condition.

mesh_gen.MeshGen.run()

This method is deprecated.

mesh.Mesh(test_case)

A step for creating a mesh and initial condition for humboldt test cases

mesh.Mesh.run()

Run this step of the test case

run_model.RunModel(test_case, velo_solver, ...)

A step for performing forward MALI runs as part of Humboldt test cases.

run_model.RunModel.run()

Run this step of the test case

decomposition_test.DecompositionTest(...[, ...])

A test case for performing two MALI runs of a Humboldt setup with different decompositions.

decomposition_test.DecompositionTest.configure()

Choose decomposition sizes from framework-detected resources and add run steps.

decomposition_test.DecompositionTest.validate()

Test cases can override this method to perform validation of variables and timers

restart_test.RestartTest(test_group, ...[, ...])

A test case for performing two MALI runs of a Humboldt setup, one full run and one run broken into two segments with a restart.

restart_test.RestartTest.configure()

Set restart-test task counts from framework-detected resources.

restart_test.RestartTest.validate()

Test cases can override this method to perform validation of variables and timers

hydro_radial

HydroRadial(mpas_core)

A test group for radially symmetric hydrology test cases

decomposition_test.DecompositionTest(test_group)

A test case for performing two MALI runs of a radially symmetric hydrological setup, one with one core and one with three.

decomposition_test.DecompositionTest.run()

This method is deprecated.

restart_test.RestartTest(test_group)

A test case for performing two MALI runs of a radially symmetric hydrological setup, one full run and one run broken into two segments with a restart.

restart_test.RestartTest.run()

This method is deprecated.

spinup_test.SpinupTest(test_group)

A spin-up test case for the radially symmetric hydrological test group that creates the mesh and initial condition, then performs a long short forward run on 4 cores until a quasi-steady state is reached.

spinup_test.SpinupTest.run()

This method is deprecated.

steady_state_drift_test.SteadyStateDriftTest(...)

This test case assesses the drift of the model away from an initial condition that is a quasi-exact solution.

steady_state_drift_test.SteadyStateDriftTest.run()

This method is deprecated.

run_model.RunModel(test_case[, name, ...])

A step for performing forward MALI runs as part of radially symmetric

run_model.RunModel.setup()

Set up the test case in the work directory, including downloading any dependencies.

run_model.RunModel.run()

Run this step of the test case

setup_mesh.SetupMesh(test_case, ...)

A step for creating a mesh and initial condition for dome test cases

setup_mesh.SetupMesh.run()

Run this step of the test case

visualize.Visualize(test_case[, name, ...])

A step for visualizing the output from a dome test case

visualize.Visualize.run()

Run this step of the test case

visualize.visualize_hydro_radial(config, logger)

Plot the output from a hydro_radial test case

ismip6_forcing

Ismip6Forcing(mpas_core)

A test group for processing the ISMIP6 atmosphere, ocean and shelf-collapse forcing data

configure.configure(config, check_model_options)

A shared function for configuring options for all ismip6 forcing test cases

create_mapfile.build_mapping_file(config, ...)

Build a mapping file if it does not exist.

create_mapfile.create_scrip_from_latlon(...)

Create a scripfile based on the lat/lon coordinates of a source dataset.

atmosphere.Atmosphere(test_group)

A test case for processing the ISMIP6 atmosphere forcing data.

atmosphere.Atmosphere.configure()

Configures test case

atmosphere.process_smb.ProcessSMB(test_case)

A step for processing the ISMIP6 surface mass balance data

atmosphere.process_smb.ProcessSMB.setup()

Set up this step of the test case

atmosphere.process_smb.ProcessSMB.run()

Run this step of the test case

atmosphere.process_smb.ProcessSMB.remap_ismip6_smb_to_mali(...)

Remap the input ismip6 smb forcing data onto mali mesh

atmosphere.process_smb.ProcessSMB.rename_ismip6_smb_to_mali_vars(...)

Rename variables in the remapped source input data to the ones that MALI uses.

atmosphere.process_smb.ProcessSMB.correct_smb_anomaly_for_climatology(...)

Apply the MALI base SMB to the ismip6 SMB anomaly field

atmosphere.process_smb_racmo.ProcessSmbRacmo(...)

A step for processing the regional RACMO surface mass balance data

atmosphere.process_smb_racmo.ProcessSmbRacmo.setup()

Set up this step of the test case

atmosphere.process_smb_racmo.ProcessSmbRacmo.run()

Run this step of the test case

atmosphere.process_smb_racmo.ProcessSmbRacmo.remap_source_smb_to_mali(...)

Remap the input ismip6 smb forcing data onto mali mesh

atmosphere.process_smb_racmo.ProcessSmbRacmo.rename_source_smb_to_mali_vars(...)

Rename variables in the remapped source input data to the ones that MALI uses.

atmosphere.process_smb_racmo.ProcessSmbRacmo.correct_smb_anomaly_for_base_smb(...)

Apply the MALI base SMB to the ismip6 SMB anomaly field

ocean_basal.OceanBasal(test_group)

A test case for processing the ISMIP6 ocean basalmelt param.

ocean_basal.OceanBasal.configure()

Configures test case

ocean_basal.process_basal_melt.ProcessBasalMelt(...)

A step for processing (combine, remap and rename) the ISMIP6 basalmelt data

ocean_basal.process_basal_melt.ProcessBasalMelt.setup()

Set up this step of the test case

ocean_basal.process_basal_melt.ProcessBasalMelt.run()

Run this step of the test case

ocean_basal.process_basal_melt.ProcessBasalMelt.combine_ismip6_inputfiles(...)

Combine ismip6 input files before regridding onto mali mesh

ocean_basal.process_basal_melt.ProcessBasalMelt.remap_ismip6_basal_melt_to_mali_vars(...)

Remap the input ismip6 basal melt data onto mali mesh

ocean_basal.process_basal_melt.ProcessBasalMelt.rename_ismip6_basal_melt_to_mali_vars(...)

Rename variables in the remapped ismip6 input data to the ones that MALI uses.

ocean_thermal.OceanThermal(test_group, ...)

A test case for processing the ISMIP6 ocean thermal forcing data.

ocean_thermal.OceanThermal.configure()

Configures test case

ocean_thermal.process_thermal_forcing.ProcessThermalForcing(...)

A step for creating a mesh and initial condition for dome test cases

ocean_thermal.process_thermal_forcing.ProcessThermalForcing.setup()

Set up this step of the test case

ocean_thermal.process_thermal_forcing.ProcessThermalForcing.run()

Run this step of the test case

ocean_thermal.process_thermal_forcing.ProcessThermalForcing.remap_ismip6_thermal_forcing_to_mali_vars(...)

Remap the input ismip6 thermal forcing data onto mali mesh

ocean_thermal.process_thermal_forcing.ProcessThermalForcing.rename_ismip6_thermal_forcing_to_mali_vars(...)

Rename variables in the remapped ismip6 input data to the ones that MALI uses.

shelf_collapse.ShelfCollapse(test_group)

A test case for processing the ISMIP6 shelf-collapse mask data.

shelf_collapse.ShelfCollapse.configure()

Configures test case

shelf_collapse.process_shelf_collapse.ProcessShelfCollapse.setup()

Set up this step of the test case

shelf_collapse.process_shelf_collapse.ProcessShelfCollapse.run()

Run this step of the test case

shelf_collapse.process_shelf_collapse.ProcessShelfCollapse.remap_ismip6_shelf_mask_to_mali_vars(...)

Remap the input ismip6 ice shelf-collapse mask data onto mali mesh

shelf_collapse.process_shelf_collapse.ProcessShelfCollapse.rename_ismip6_shelf_mask_to_mali_vars(...)

Rename variables in the remapped ismip6 input data to the ones that MALI uses.

ismip6_run

Ismip6Run(mpas_core)

A test group for automated setup of a suite of standardized ISMIP6 simulations

ismip6_ais_proj2300.Ismip6AisProj2300(test_group)

A test case for automated setup of a suite of standardized simulations for ISMIP6-Projections2300-Antarctica See: https://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6-Projections2300-Antarctica) # noqa

ismip6_ais_proj2300.Ismip6AisProj2300.configure()

Set up the desired ISMIP6 AIS 2300 experiments.

ismip6_ais_proj2300.Ismip6AisProj2300.run()

A dummy run method

ismip6_ais_proj2300.set_up_experiment.SetUpExperiment(...)

A step for setting up an ISMIP6 experiment

ismip6_ais_proj2300.set_up_experiment.SetUpExperiment.setup()

Set up the test case in the work directory, including downloading any dependencies.

ismip6_ais_proj2300.set_up_experiment.SetUpExperiment.run()

Run this step of the test case

ismip7_calibration

Ismip7Calibration(mpas_core)

A test group for calibrating MALI's sub-shelf melt parameterization against the ISMIP7 Antarctic ice-ocean protocol (Reese et al., Sect.

configure.check_options(config, options)

Check that user-supplied config options have been set.

configure.melt_forms(config)

The melt forms to calibrate.

configure.objective_options(config)

The sample size and random seed for the parameter selection.

configure.parameter_name(melt_form)

The name of the parameter a melt form calibrates.

configure.parameter_values(config, melt_form)

The grid of parameter values to select from, for one melt form.

configure.weighting(config)

Which summands of J3 and J4 carry non-zero weight.

datasets.climatology_files(base_path)

Paths to the Zhou et al. present-day climatology TF and salinity.

datasets.load_targets(base_path)

Load the observational targets for the four objective-function terms.

datasets.mask_files(base_path[, resolution_km])

Paths to the ISMIP7 mask datasets on the ISMIP polar stereographic grid.

datasets.missing_files(states)

The input files of states that are not present on disk.

datasets.ocean_states(base_path[, subset])

The ocean states to run the melt module for.

objective.build_toolbox_terms(units, ...[, ...])

Assemble the arguments calculate_objective_function expects.

objective.run_optimisation(terms, param_values)

Sample the objective function and return the parameter distribution.

objective.scale_to_ensemble(unit_aggregate, ...)

Turn a unit-parameter aggregate into the (p1, p2, ...) ensemble.

quadratic.angle_from_sin_slope(sin_slope)

The slope angle corresponding to a sine, in radians.

quadratic.draft_slope(draft, dx, dy[, ...])

Ice-draft slope angle on a structured grid, in radians.

quadratic.local_quadratic_melt(k, ...[, ...])

Melt rate from the quadratic local parameterisation, in kg m-2 yr-1.

quadratic.mean_slope(draft, floating, dx, dy)

Antarctic-mean ice-draft slope angle over floating ice, in radians.

quadratic.nonlocal_quadratic_melt(gamma0, ...)

Melt rate from the ISMIP6 non-local quadratic, in kg m-2 yr-1.

quadratic.u_factor(salinity)

The velocity-scale factor of Jenkins et al. (2018).

terms.average_by_group(melt, area, mask, ...)

Area-weighted mean melt rate over each group, in kg m-2 yr-1.

terms.calculate_term1(ensemble, area, mask, ...)

J1: basin-integrated present-day melt, in Gt yr-1.

terms.calculate_term2(ensemble, area, mask, ...)

J2: melt integrated over buttressing (BFRN) bins, in Gt yr-1.

terms.calculate_term3(cold_ensemble, ...[, var])

J3: warm-minus-cold basin-mean melt difference, in kg m-2 yr-1.

terms.calculate_term4(obs_ensemble, area, ...)

J4: PIG/Dotson integrated melt per observation year, in Gt yr-1.

terms.integrate_by_group(melt, area, mask, ...)

Integrate a melt rate over each group, in Gt yr-1.

terms.stack_cells(da, cell_dims)

Flatten the cell dimensions of da into a single dimension.

terms.uniform_area(template, resolution, ...)

Build a uniform cell-area array, for structured grids.

toolbox.check_integrity()

Verify that the vendored toolbox still matches the recorded upstream copy.

toolbox.file_sha256()

The SHA256 of the vendored toolbox source file, as it is on disk.

toolbox.toolbox_path()

The path to the vendored toolbox source file.

replication.Replication(test_group)

A test case that reproduces the published ISMIP7 quadratic calibration on the ISMIP 8 km grid, through compass's own code path.

replication.Replication.configure()

Check that the ISMIP7 dataset path has been supplied

replication.Replication.validate()

Check the percentiles against the published values, and against a baseline if one was provided

replication.replicate.Replicate(test_case)

A step that reproduces the published 8 km quadratic calibration.

replication.replicate.Replicate.setup()

Check that the ISMIP7 datasets this step needs are present

replication.replicate.Replicate.run()

Run this step of the test case

replication.replicate.check_published(...)

Check the replicated percentiles against the published values.

ais.Ais(test_group)

A test case that calibrates MALI's sub-shelf melt parameterization on an Antarctic MALI mesh, following the ISMIP7 protocol.

ais.Ais.configure()

Add a step per ocean state and melt form, once the config is known

ais.Ais.validate()

Compare the calibration against a baseline, if one was provided

ais.aggregate.Aggregate(test_case, ...)

A step that turns the MALI melt fields into unit-parameter aggregates of the four objective-function terms.

ais.aggregate.Aggregate.setup()

Set up this step of the test case

ais.aggregate.Aggregate.run()

Run this step of the test case

ais.aggregate.unit_aggregates(filename)

Read the unit aggregates written by this step.

ais.aggregate.basin_coordinate(units)

The ISMIP7 basin numbers present in an aggregate, as integers.

ais.calibrate.Calibrate(test_case, melt_forms)

A step that runs the ISMIP7 parameter selection on the MALI ensemble.

ais.calibrate.Calibrate.run()

Run this step of the test case

ais.fit_delta_t.FitDeltaT(test_case, melt_forms)

A step that fits the basin thermal-forcing correction dT_b.

ais.fit_delta_t.FitDeltaT.setup()

Set up this step of the test case

ais.fit_delta_t.FitDeltaT.run()

Run this step of the test case

ais.make_graph.MakeGraph(test_case)

A step that builds a graph partition file for the MALI mesh.

ais.make_graph.MakeGraph.setup()

Set up this step of the test case

ais.make_graph.MakeGraph.run()

Run this step of the test case

ais.melt_model.basin_mean_tf(tf_draft, area, ...)

Area-weighted mean thermal forcing per basin, mapped back onto cells.

ais.melt_model.initial_draft(mesh_file[, ...])

Reconstruct the ice draft from the mesh file, before the timestep.

ais.melt_model.integrate_by_basin(melt, ...)

Integrate a melt rate over each basin, in Gt yr-1.

ais.melt_model.interpolate_to_draft(...[, ...])

Interpolate a 3-D ocean field to the ice draft.

ais.melt_model.melt_from_tf(melt_form, ...)

Recompute the melt field from the thermal forcing at the draft.

ais.melt_model.read_run(filename, mesh_file)

Read the fields a melt diagnostic run writes.

ais.remap_forcing.RemapForcing(test_case)

A step that remaps the ISMIP7 calibration thermal forcing onto the MALI mesh, one file per ocean state.

ais.remap_forcing.RemapForcing.setup()

Set up this step of the test case

ais.remap_forcing.RemapForcing.run()

Run this step of the test case

ais.remap_masks.RemapMasks(test_case)

A step that remaps the ISMIP7 masks onto the MALI mesh.

ais.remap_masks.RemapMasks.setup()

Set up this step of the test case

ais.remap_masks.RemapMasks.run()

Run this step of the test case

ais.report.Report(test_case, melt_forms)

A step that plots and tabulates the calibration result.

ais.report.Report.run()

Run this step of the test case

ais.run_state.RunState(test_case, ...[, ...])

A step that runs MALI for a single timestep to diagnose the melt field for one ocean state, using one melt form.

ais.run_state.RunState.setup()

Set up this step of the test case

ais.run_state.RunState.runtime_setup()

Set the number of ocean layers from the forcing file

ais.run_state.RunState.run()

Run this step of the test case

ais.verify_melt.VerifyMelt(test_case, ...[, ...])

A step that checks MALI's melt field against an independent Python implementation of the same equations.

ais.verify_melt.VerifyMelt.setup()

Set up this step of the test case

ais.verify_melt.VerifyMelt.run()

Run this step of the test case

ismip7_forcing

Ismip7Forcing(mpas_core)

A test group for processing ISMIP7 forcing data for the Antarctic Ice Sheet

configure.configure(config)

A shared function for configuring options for all ismip7 forcing test cases

atmosphere.Atmosphere(test_group)

A test case for processing ISMIP7 atmosphere forcing data.

atmosphere.Atmosphere.configure()

Configures test case

atmosphere.build_mapping_file.BuildMappingFile(...)

Build weights from the selected atmosphere grid to the MALI mesh.

atmosphere.build_mapping_file.BuildMappingFile.setup()

Set up the test case in the work directory, including downloading any dependencies.

atmosphere.build_mapping_file.BuildMappingFile.run()

Run the step.

atmosphere.process_smb.ProcessSmb(test_case)

A step for processing ISMIP7 surface mass balance (acabf) data.

atmosphere.process_smb.ProcessSmb.setup()

Set up this step of the test case

atmosphere.process_smb.ProcessSmb.run()

Run this step of the test case

atmosphere.process_temperature.ProcessTemperature(...)

A step for processing ISMIP7 ice surface temperature (ts) data.

atmosphere.process_temperature.ProcessTemperature.setup()

Set up this step of the test case

atmosphere.process_temperature.ProcessTemperature.run()

Run this step of the test case

atmosphere.process_smb_gradient.ProcessSmbGradient(...)

A step for processing ISMIP7 SMB elevation gradient (dacabfdz) data.

atmosphere.process_smb_gradient.ProcessSmbGradient.setup()

Set up this step of the test case

atmosphere.process_smb_gradient.ProcessSmbGradient.run()

Run this step of the test case

atmosphere.process_temperature_gradient.ProcessTemperatureGradient(...)

A step for processing ISMIP7 temperature elevation gradient (dtsdz) data.

atmosphere.process_temperature_gradient.ProcessTemperatureGradient.setup()

Set up this step of the test case

atmosphere.process_temperature_gradient.ProcessTemperatureGradient.run()

Run this step of the test case

atmosphere.process_runoff.ProcessRunoff(...)

A step for processing ISMIP7 ice sheet runoff (mrro) data.

atmosphere.process_runoff.ProcessRunoff.setup()

Set up this step of the test case

atmosphere.process_runoff.ProcessRunoff.run()

Run this step of the test case

ocean_thermal.OceanThermal(test_group)

A test case for processing ISMIP7 ocean thermal forcing data.

ocean_thermal.OceanThermal.configure()

Configures test case

ocean_thermal.build_mapping_file.BuildMappingFile(...)

Build weights from selected ocean grids to the MALI mesh.

ocean_thermal.build_mapping_file.BuildMappingFile.setup()

Set up the test case in the work directory, including downloading any dependencies.

ocean_thermal.build_mapping_file.BuildMappingFile.run()

Run the step.

ocean_thermal.process_thermal_forcing.ProcessThermalForcing(...)

A step for processing ISMIP7 ocean thermal forcing (tf) data.

ocean_thermal.process_thermal_forcing.ProcessThermalForcing.setup()

Set up this step of the test case

ocean_thermal.process_thermal_forcing.ProcessThermalForcing.run()

Run this step of the test case

ocean_thermal.build_3d_thermal_forcing.BuildGreenland3dThermalForcing(...)

A step that builds regional 3-D Greenland ocean thermal forcing from the 2-D forcing produced by ProcessThermalForcing.

ocean_thermal.build_3d_thermal_forcing.BuildGreenland3dThermalForcing.run()

Run this step of the test case

ocean_thermal.greenland_3d.Config(mesh_file, ...)

ocean_thermal.greenland_3d.run(cfg, logger)

fracture.Fracture(test_group)

A test case for processing ISMIP7 fracture forcing data.

fracture.Fracture.configure()

Configures test case

fracture.build_mapping_file.BuildMappingFile(...)

Build weights from the fracture grid to the MALI mesh.

fracture.build_mapping_file.BuildMappingFile.setup()

Set up the test case in the work directory, including downloading any dependencies.

fracture.build_mapping_file.BuildMappingFile.run()

Run the step.

fracture.process_excess_melt.ProcessExcessMelt(...)

A step for processing the ISMIP7 excess meltwater field (Path A).

fracture.process_excess_melt.ProcessExcessMelt.setup()

Set up this step of the test case

fracture.process_excess_melt.ProcessExcessMelt.run()

Run this step of the test case

fracture.process_lake_properties.ProcessLakeProperties(...)

A step for processing the ISMIP7 supraglacial lake properties (Path B).

fracture.process_lake_properties.ProcessLakeProperties.setup()

Set up this step of the test case

fracture.process_lake_properties.ProcessLakeProperties.run()

Run this step of the test case

fracture.process_shelf_collapse.ProcessShelfCollapse(...)

A step for processing the ISMIP7 ice shelf collapse mask (Path C).

fracture.process_shelf_collapse.ProcessShelfCollapse.setup()

Set up this step of the test case

fracture.process_shelf_collapse.ProcessShelfCollapse.run()

Run this step of the test case

ismip7_run

Ismip7Run(mpas_core)

A test group for automated setup of a suite of standardized ISMIP7 simulations for both AIS and GrIS.

gia_options.parse_gia_model(config[, section])

Parse the gia_model config option into sea_level_model and fastisostasy flags.

ismip7_ais.Ismip7Ais(test_group)

A test case for automated setup of a suite of standardized ISMIP7 simulations for the Antarctic Ice Sheet.

ismip7_ais.Ismip7Ais.configure()

Set up the desired ISMIP7 AIS experiments.

ismip7_ais.Ismip7Ais.run()

A dummy run method

ismip7_ais.set_up_experiment.SetUpExperiment(...)

A step for setting up an ISMIP7 AIS experiment

ismip7_ais.set_up_experiment.SetUpExperiment.setup()

Set up the experiment directory with all needed files.

ismip7_ais.set_up_experiment.SetUpExperiment.run()

Run this step of the test case

ismip7_ais.create_slm_mapping_files.CreateSlmMappingFiles(...)

A step for creating mapping files for the Sea Level Model

ismip7_ais.create_slm_mapping_files.CreateSlmMappingFiles.setup()

Set up the test case in the work directory, including downloading any dependencies.

ismip7_ais.create_slm_mapping_files.CreateSlmMappingFiles.run()

Run this step of the test case

ismip7_ais.create_fastiso_mapping_files.CreateFastIsoMappingFiles(...)

A step for creating mapping files for FastIsostasy bedrock model

ismip7_ais.create_fastiso_mapping_files.CreateFastIsoMappingFiles.setup()

Set up the test case in the work directory, including downloading any dependencies.

ismip7_ais.create_fastiso_mapping_files.CreateFastIsoMappingFiles.run()

Run this step of the test case

ismip7_ais.create_fastiso_mapping_files.create_ismip7_grid_file(...)

Create a minimal ISMIP7 standard grid file containing only x and y projected coordinate variables (metres).

ismip7_gris.Ismip7Gris(test_group)

A test case for automated setup of a suite of standardized ISMIP7 simulations for the Greenland Ice Sheet.

ismip7_gris.Ismip7Gris.configure()

Set up the desired ISMIP7 GrIS experiments.

ismip7_gris.Ismip7Gris.run()

A dummy run method

ismip7_gris.set_up_experiment.SetUpExperiment(...)

A step for setting up an ISMIP7 GrIS experiment

ismip7_gris.set_up_experiment.SetUpExperiment.setup()

Set up the experiment directory with all needed files.

ismip7_gris.set_up_experiment.SetUpExperiment.run()

Run this step of the test case

isunnguata_sermia

IsunnguataSermia(mpas_core)

A test group for isunnguata_sermia test cases

mesh_gen.MeshGen(test_group)

The MeshGen test case for the isunnguata_sermia test group simply creates the mesh and initial condition.

mesh_gen.MeshGen.run()

This method is deprecated.

mesh.Mesh(test_case)

A step for creating a mesh and initial condition for isunnguata sermia test cases

mesh.Mesh.run()

Run this step of the test case

kangerlussuaq

Kangerlussuaq(mpas_core)

A test group for kangerlussuaq test cases

mesh_gen.MeshGen(test_group)

The default test case for the Kangerlussuaq test group simply creates the mesh and initial condition.

mesh_gen.MeshGen.run()

This method is deprecated.

mesh.Mesh(test_case)

A step for creating a mesh and initial condition for kangerlussuaq test cases

mesh.Mesh.run()

Run this step of the test case

koge_bugt_s

KogeBugtS(mpas_core)

A test group for koge_bugt_s test cases

mesh_gen.MeshGen(test_group)

The default test case for the Koge_Bugt_S test group simply creates the mesh and initial condition.

mesh_gen.MeshGen.run()

This method is deprecated.

mesh.Mesh(test_case)

A step for creating a mesh and initial condition for koge_bugt_s test cases

mesh.Mesh.run()

Run this step of the test case

mesh_convergence

MeshConvergence(mpas_core)

A test group for convergence tests with MALI

conv_test_case.ConvTestCase(test_group, name)

A test case for various convergence tests on in MALI with planar, doubly periodic meshes

conv_test_case.ConvTestCase.configure()

Set config options for the test case

conv_test_case.ConvTestCase.update_cores()

Update the number of cores and min_tasks for each forward step

conv_init.ConvInit(test_case, resolution)

A step for creating a mesh for a given resolution in a mesh convergence test case.

conv_init.ConvInit.run()

Run this step of the test case

conv_analysis.ConvAnalysis(test_case, ...)

A step for visualizing and/or analyzing the output from a convergence test case

forward.Forward(test_case, resolution)

A step for performing forward MALI runs as part of a mesh convergence test case

forward.Forward.setup()

Set namelist options based on config options

forward.Forward.constrain_resources(...)

Update resources at runtime from config options

forward.Forward.run()

Run this step of the testcase

forward.Forward.get_dt_duration()

Get the time step and run duration as namelist options from config options

halfar.Halfar(test_group)

A test case for testing mesh convergence with the Halfar analytic test

halfar.Halfar.create_init(resolution)

Child class must override this to return an instance of a ConvInit step

halfar.Halfar.create_analysis(resolutions)

Child class must override this to return an instance of a ConvergenceInit step

halfar.init.Init(test_case, resolution)

A step for creating an initial_condition for advection convergence test case

halfar.init.Init.run()

Run this step of the test case

halfar.analysis.Analysis(test_case, resolutions)

A step for visualizing the output from the advection convergence test case

halfar.analysis.Analysis.run()

Run this step of the test case

halfar.analysis.Analysis.rmse(resolution)

Compute the RMSE for a given resolution

horizontal_advection.HorizontalAdvection(...)

A test case for testing horizontal advection in MALI with planar, doubly periodic meshes

horizontal_advection.HorizontalAdvection.create_init(...)

Child class must override this to return an instance of a ConvInit step

horizontal_advection.HorizontalAdvection.create_analysis(...)

Child class must override this to return an instance of a ConvergenceInit step

horizontal_advection.init.Init(test_case, ...)

A step for creating an initial_condition for advection convergence test case

horizontal_advection.init.Init.run()

Run this step of the test case

horizontal_advection.analysis.Analysis(...)

A step for visualizing the output from the advection convergence test case

horizontal_advection.analysis.Analysis.run()

Run this step of the test case

horizontal_advection.analysis.Analysis.rmse(...)

Compute the RMSE for a given resolution

horizontal_advection_thickness.HorizontalAdvectionThickness(...)

A test case for testing horizontal advection of thickness in MALI with planar, doubly periodic meshes

horizontal_advection_thickness.HorizontalAdvectionThickness.create_init(...)

Child class must override this to return an instance of a ConvInit step

horizontal_advection_thickness.HorizontalAdvectionThickness.create_analysis(...)

Child class must override this to return an instance of a ConvergenceInit step

horizontal_advection_thickness.init.Init(...)

A step for creating an initial_condition for advection convergence test case

horizontal_advection_thickness.init.Init.run()

Run this step of the test case

horizontal_advection_thickness.analysis.Analysis(...)

A step for visualizing the output from the advection convergence test case

horizontal_advection_thickness.analysis.Analysis.run()

Run this step of the test case

horizontal_advection_thickness.analysis.Analysis.rmse(...)

Compute the RMSE for a given resolution

mesh_modifications

MeshModifications(mpas_core)

A test group for automating modifications to existing meshes

subdomain_extractor.SubdomainExtractor(...)

A class for a test case that extracts a subdomain from a larger domain

subdomain_extractor.extract_region.ExtractRegion(...)

A step for extracting a regional domain from a larger domain

mismipplus

MISMIPplus(mpas_core)

A test group for MISMIP+ test cases.

smoke_test.SmokeTest(test_group, resolution)

A test case for running a smoke test of the MISMIP+ configuration

smoke_test.SmokeTest.validate()

Test cases can override this method to perform validation of variables and timers

spin_up.SpinUp(test_group)

Test case for creating the MISMIP+ mesh, initial conditions, input files, and runs a short segment of the spin up experiments

spin_up.SpinUp.configure()

Set up the directory structure, based on the requested resolution.

setup_mesh.SetupMesh(test_case, name[, subdir])

A step for creating a mesh and initial condition for MISMIP+ test cases Experimental protocol described in: Asay-Davis, et al. 2016.

setup_mesh.SetupMesh.run()

Run this step of the test case

setup_mesh.calculate_mesh_params(...[, Lx, ...])

Calculate the appropriate parameters for use by make_planar_hex_mesh from the desired nominal resolution (e.g. 8e3, 4e3, 2e3, 1e3...).

setup_mesh.mark_cull_cells_for_MISMIP(ds_mesh)

setup_mesh.center_trough(ds_mesh)

Shift the origin so that the bed trough is centered about the Y-axis and the X-axis is shifted all the way to the left.

run_model.RunModel(test_case, name[, ...])

A step for performing forward MALI runs as part of MISMIP+ test cases.

run_model.RunModel.setup()

Set the number of MPI tasks based on a tentative scaling of a the ncells_at_1km_res heuristic from the config file based on the desired resolution.

run_model.RunModel.constrain_resources(...)

Update resources at runtime from config options

run_model.RunModel.process_inputs_and_outputs()

Process inputs/outputs and apply optional mesh updates during setup.

run_model.RunModel.run()

Run this step of the test case

tasks.get_ntasks_from_cell_count(config, ...)

Computes ntasks and min_tasks based on mesh size (i.e. cell_count).

tasks.exact_cell_count(mesh_filename)

Get the number of cells from an already generated mesh file.

tasks.approx_cell_count(resolution, ...)

Approximate the number of cells based on the resolution ratio squared times the number of cells at 1km resolution.

slm_circ_icesheet ~~~

SlmCircIcesheet(mpas_core)

This test group generates an idealized, circular ice sheet that has a prescribed thickness evolution for testing coupling between MALI and the Sea-Level Model.

mesh_convergence.MeshConvergenceTest(test_group)

This test uses the circular ice sheet test case to test the convergence of the coupled MALI-SLM system with respect to mesh resolution of both MALI and the SLM.

mesh_convergence.MeshConvergenceTest.configure()

Set up the desired mesh-resolution tests

smoke_test.SmokeTest(test_group)

A lightweight smoke test using the baseline circ_icesheet configuration.

run_model.RunModel(test_case, res, nglv[, ...])

A step for performing forward MALI runs as part of dome test cases.

run_model.RunModel.setup()

Set up the test case in the work directory, including downloading any dependencies.

run_model.RunModel.run()

Run this step of the test case

setup_mesh.SetupMesh(test_case, name, res, nglv)

A step for creating a mesh with initial conditions plus forcing file for circular icesheet test

setup_mesh.SetupMesh.run()

Run this step of the test case

visualize.Visualize(test_case[, name, ...])

A step for visualizing the output from a dome test case

visualize.Visualize.setup()

visualize.Visualize.run()

Run this step of the test case

visualize.visualize_slm_circsheet(config, ...)

Plot the output from a circular ice sheet test case

thwaites

Thwaites(mpas_core)

A test group for low-res 4-14km Thwaites test cases.

decomposition_test.DecompositionTest(test_group)

A test case for performing two MALI runs of the Thwaites setup with different decompositions.

decomposition_test.DecompositionTest.configure()

Choose decomposition sizes from framework-detected resources and add run steps.

decomposition_test.DecompositionTest.run()

This method is deprecated.

restart_test.RestartTest(test_group[, ...])

A test case for performing two MALI runs of the Thwaites setup, one full run and one run broken into two segments with a restart.

restart_test.RestartTest.run()

This method is deprecated.

run_model.RunModel(test_case[, name, ...])

A step for performing forward MALI runs as part of Thwaites test cases.

run_model.RunModel.setup()

Set up the test case in the work directory, including downloading any dependencies.

run_model.RunModel.run()

Run this step of the test case

mesh_gen.MeshGen(test_group)

The high resolution test case for the thwaites test group simply creates the mesh and initial condition.

mesh_gen.MeshGen.run()

This method is deprecated.

mesh.Mesh(test_case)

A step for creating a mesh and initial condition for thwaites test cases

mesh.Mesh.run()

Run this step of the test case

Landice Framework

ais_observations

extrapolate.extrapolate_variable(nc_file, ...)

Function to extrapolate variable values into undefined regions

iceshelf_melt.calc_mean_TF(geometry_file, ...)

Function to calculate mean thermal forcing across all floating ice in a domain.

mesh.add_bedmachine_thk_to_ais_gridded_data(...)

Copy BedMachine thickness to AIS reference gridded dataset.

mesh.add_grid_imask_from_dst_scrip_hull(...)

Create a new source SCRIP file with grid_imask set to 1 only for cells that fall within the boundary (plus buffer) of the destination SCRIP footprint.

mesh.build_dst_scrip_hull(dest_scrip, domain)

Build a buffered concave boundary from the footprint of a destination SCRIP file and return it as a matplotlib.path.Path.

mesh.clean_up_after_interp(fname)

Perform some final clean up steps after interpolation

mesh.clip_mesh_to_bounding_box(mask_ds, ...)

Set cells to culled if they lay outside the bounding box

mesh.plot_hull_diagnostic(hull_path, ...[, ...])

Save a diagnostic PNG (mesh_boundary.png) showing the masking geometry.

mesh.get_mesh_config_bounding_box(section[, ...])

Get bounding-box coordinates from a mesh config section.

mesh.get_optional_interp_datasets(section, ...)

Determine whether optional interpolation inputs are configured.

mesh.gridded_flood_fill(field[, iStart, jStart])

Uses a flood fill to fill disconnected regions.

mesh.interp_gridded2mali(self, source_file, ...)

Interpolate gridded dataset (e.g. MEASURES, BedMachine) onto a MALI mesh.

mesh.mpas_flood_fill(seed_mask, grow_mask, ...)

Flood-fill for mpas meshes using mpas cells.

mesh.preprocess_ais_data(self, ...)

Perform adjustments to gridded AIS datasets needed for rest of compass workflow to utilize them

mesh.run_optional_interpolation(self, ...[, ...])

Run optional interpolation from high-resolution BedMachine and MEaSUREs datasets and perform some necessary cleanup.

mesh.set_rectangular_geom_points_and_edges(...)

Set node and edge coordinates to pass to mpas_tools.mesh.creation.build_mesh.build_planar_mesh().

mesh.set_cell_width(self, section_name, thk, bed)

Set cell widths based on settings in config file to pass to mpas_tools.mesh.creation.build_mesh.build_planar_mesh().

mesh.subset_gridded_dataset_to_bounds(...)

Subset a gridded source dataset to a bounding box.

mesh.get_dist_to_edge_and_gl(self, thk, ...)

Calculate distance from each point to ice edge and grounding line, to be used in mesh density functions in compass.landice.mesh.set_cell_width().

mesh.build_cell_width(self, section_name, ...)

Determine MPAS mesh cell size based on user-defined density function.

mesh.build_mali_mesh(self, cell_width, x1, ...)

Create the MALI mesh based on final cell widths determined by compass.landice.mesh.build_cell_width(), using Jigsaw and MPAS-Tools functions.

mesh.make_region_masks(self, mesh_filename, ...)

Create masks for ice-sheet subregions based on data in MPAS-Dev/geometric_fatures.