Running workflows#
Run a workflow with the GeoIPS CLI:
geoips run order_based <workflow> <filepaths> [options]
Two positional arguments are required and ordered:
workflow— the name of a registered workflow plugin, or a path to a.yaml/.jsonunregistered workflow, or a dictionary evaluated as a workflow.filepaths— the data files to feed the workflow.
geoips run order_based abi_static_infrared_imagery_clean \
$GEOIPS_TESTDATA_DIR/test_data_abi/data/goes16_20200918_1950/*
To run a workflow’s built-in test section (comparison outputs, output checkers) instead:
geoips test workflow abi_static_infrared_imagery_clean
Overrides#
Overrides let you change step arguments without editing the workflow. They come in two equivalent forms.
String overrides (-s, -k, -g)#
Lowercase flags take one or more key=value strings — step (-s),
kind (-k), and global (-g):
geoips run order_based test_product $GEOIPS_TESTDATA_DIR/test_data_abi/data/goes16_20200918_1950/* \
-s abi_Infrared.spec.steps.algorithm.output_units=Kelvin \
-s reader.area_def=null \
-k readers.satellite_zenith_angle_cutoff=80 \
-g sector_list=global_cylindrical \
-g logging_level=info
Formats:
Step:
<step_id>.<path...>.<argument>=<value>— the key path maps to the expanded workflow (rungeoips expand <workflow>to see it).Kind:
<kind>.<argument>=<value>— applies to every step of that interface kind.Global:
<name>=<value>— applies to (or adds at) every step.
You can list several overrides after one flag; group by type and add the next flag when you switch. Arguments a plugin does not accept are dropped automatically.
Dictionary overrides (-S, -K, -G)#
Uppercase flags take a single dictionary each, matching the structure used in a
workflow’s test section:
geoips run order_based test_product $GEOIPS_TESTDATA_DIR/test_data_abi/data/goes16_20200918_1950/* \
-S '{"reader": {"self_register": "LOW"}, "abi_Infrared": {"spec": {"steps": {"algorithm": {"output_units": "kelvin"}}}}}' \
-K '{"readers": {"satellite_zenith_angle_cutoff": 80}}' \
-G '{"sector_list": "global_cylindrical", "logging_level": "info"}'
These are harder to type by hand but are convenient when scripts generate calls (e.g. near-real-time processing).
Under the hood, GeoIPS fully expands the workflow, applies the overrides, then re-validates the modified workflow with Pydantic.
Output-checker overrides#
A workflow’s test section supports a fourth override type that has no command-line flag:
outputs. It inserts an output_checker step immediately after the step whose output you
want to verify. The checker plugin is derived from the compare_path unless you set
output_checker_name explicitly.
test:
outputs:
<step_id>:
# output_checker_name: image # optional; derived from compare_path
# full_test_policy: on_token_mismatch | always | never
compare_path: /path/to/comparison/file.ext
# threshold: 0.05 # image checker only
Other arguments#
geoips run order_based also accepts the standard procflow arguments (logging, output
paths, etc.). See the CLI reference for the full list.