polaris.tasks.ocean.analysis.analysis_step.AnalysisStep

class polaris.tasks.ocean.analysis.analysis_step.AnalysisStep(component, name, subdir, start_year, end_year, **kwargs)[source]

A step of the ocean analysis suite

Every analysis step covers a range of simulation years and reads some of the simulation’s output, so both live here rather than being repeated by each product.

Variables:
  • start_year (int) – The first year of the range this step covers, inclusive

  • end_year (int) – The last year of the range this step covers, inclusive

  • input_filenames (list of str) – The local names of the simulation files symlinked into the step’s work directory, in the order they were added

  • manifest (polaris.analysis.manifest.Manifest) – The products this step has described so far, written to manifest.json in the step’s work directory as they are added. Steps add to it through add_product() rather than directly.

__init__(component, name, subdir, start_year, end_year, **kwargs)[source]

Create a new analysis step

Parameters:
  • component (polaris.tasks.ocean.Ocean) – The ocean component the step belongs to

  • name (str) – The name of the step

  • subdir (str) – The subdirectory for the step, which ends in the range key so that a step covering a different range is a different step

  • start_year (int) – The first year of the range this step covers, inclusive

  • end_year (int) – The last year of the range this step covers, inclusive

  • kwargs – Keyword arguments passed on to polaris.ocean.model.OceanIOStep

Methods

__init__(component, name, subdir, ...)

Create a new analysis step

add_dependency(step[, name])

Add step as a dependency of this step (i.e. this step can't run until the dependency has finished).

add_horiz_mesh_input_file(**kwargs)

Add the horizontal-mesh input file using a placeholder that is resolved to the configured filename at process_inputs_and_outputs() time.

add_init_input_file(**kwargs)

Add the initial-condition input file using a placeholder that is resolved to the configured filename at process_inputs_and_outputs() time.

add_input_file([filename, target, database, ...])

Add an input file to the step (but not necessarily to the MPAS model).

add_output_file(filename[, validate_vars, ...])

Add an output file, optionally resolving validate_class to a pre-defined list of variables from the Ocean component.

add_output_files_for_ocean_model_input([...])

Register output files that will be consumed by the ocean model as inputs (horizontal mesh, initial condition, and model-specific files).

add_produced_file(filename)

Register a file the step has just written as one of its outputs

add_product(plot, group, gallery, title[, data])

Describe one product this step has just made, and update the fragment

add_property_check(filename, check_properties)

Add a single conservation comparison for an output file

add_sim_input_file(path[, filename])

Symlink one file of simulation output into the step's work directory

add_sim_input_files(sim_files)

Symlink a list of simulation files into the step's work directory

add_vert_coord_input_file([filename])

Add the vertical-coordinate input file.

check_properties()

Check conservation properties of the output files of this step.

constrain_resources(available_resources)

Constrain cpus_per_task and ntasks based on the number of cores available to this step

get_horiz_mesh_filename()

Get the configured local filename for the horizontal mesh file.

get_init_filename()

Get the configured local filename for the initial-condition file.

get_sim_files()

Get the simulation's files, reporting where each path came from

get_vert_coord_filename()

Get the configured local filename for the vertical coordinate file.

log_inputs()

Report the simulation files this step reads

map_from_native_model_vars(ds)

If the model is Omega, rename dimensions and variables in a dataset from their Omega names to the MPAS-Ocean equivalent (appropriate for datasets that are output from the model)

map_to_native_model_vars(ds)

If the model is Omega, rename dimensions and variables in a dataset from their MPAS-Ocean names to the Omega equivalent (appropriate for input datasets like an initial condition)

open_model_dataset(filename[, config, ...])

Open the given dataset, mapping variable and dimension names from Omega to MPAS-Ocean names if appropriate

open_vert_coord_dataset(ds_init[, ...])

Return the dataset containing vertical-coordinate variables (bottomDepth, minLevelCell, maxLevelCell, vertCoordMovementWeights and either restingThickness or RefPseudoThickness).

process_inputs_and_outputs()

Resolve <<<placeholder>>> filenames to configured names and drop <<<vert_coord>>> entries for MPAS-Ocean before delegating to the base Step processing.

run()

Run the step.

runtime_setup()

Write the empty manifest fragment before the step runs

set_resources([cpus_per_task, ...])

Update the resources for the subtask.

set_shared_config(config[, link])

Replace the step's config parser with the shared config parser

setup()

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

validate_baselines()

Compare variables between output files in this step and in the same step from a baseline run if one was provided.

work_path(*filenames)

Get the absolute path to a file or directory in the step's work directory

write_horiz_mesh_dataset(ds, filename, config)

Write a horizontal mesh dataset, validating that all expected mesh variables are present before writing.

write_initial_state_dataset(ds, filename, config)

Write an initial-state dataset, converting the tracers to the convention the model expects and omitting horizontal mesh fields and (for Omega) vertical coordinate fields.

write_model_dataset(ds, filename, config)

Write out the given dataset, mapping dimension and variable names from MPAS-Ocean to Omega names if appropriate

write_vert_coord_dataset(ds, filename, config)

Write a vertical-coordinate dataset for Omega's InitialVertCoord stream.

Attributes

cores

the number of cores this step needs, in total

gpus

the number of GPUs this step needs, in total

makes_products

Whether this step makes products for the published gallery, and so writes a manifest fragment describing them.

may_span_nodes

whether this step's cores and GPUs may come from several nodes

min_cores

the number of cores this step needs in order to run at all

min_gpus

the number of GPUs this step requires, in total

component

config

input_data

logger