Migrating from GeoIPS 1.x to 2.0#
GeoIPS 2.0 introduces Order-Based Processing (OBP), class-based plugins, a DataTree data model, and a layered configuration system. Most GeoIPS 1.x patterns still work but are deprecated (dynamic sectors are not yet supported in OBP). This guide summarizes what changed and links to the detailed guides.
What changed at a glance#
Area |
GeoIPS 1.x (≤ 1.19.0) |
GeoIPS 2.0 |
|---|---|---|
Processing |
|
Order-Based Processing workflows (legacy procflows still run, deprecated) |
Running |
|
|
Python plugins |
Module with a top-level |
Class-based plugins in |
Scripting |
Ad-hoc procflow internals |
geoips.scripting DataTree API |
Configuration |
|
Layered geoips.config ( |
Validation |
Schema/JSON |
Pydantic models ( |
Processing: procflows → OBP workflows#
Replace legacy procflow runs with OBP. OBP can produce everything the legacy procflows
can. A run_procflow ... --procflow single_source call becomes
geoips run order_based <workflow> <files>, where the workflow captures the reader,
algorithm, colormapper, and output steps explicitly. See
Order-Based Processing (OBP) and Running workflows.
The legacy commands remain available:
# Deprecated, still supported:
geoips run single_source <files> --reader_name abi_netcdf --product_name Infrared ...
# or the backwards-compat wrapper for old scripts:
geoips legacy run ...
Python plugins: module-based → class-based#
Readers, algorithms, interpolators, colormappers, output/filename/title formatters, and
coverage checkers are now Python classes rather than modules with a call() function, and
they live under geoips/plugins/classes/ instead of geoips/plugins/modules/. See the
module-to-class conversion guide for step-by-step
instructions, including the assisted-conversion tooling in v2_migration_tools/.
Configuration: base_paths → geoips.config#
The imperative PATHS dictionary in geoips.filenames.base_paths is replaced by the
layered geoips.config system (environment variables > project
.geoips.yaml > code defaults). base_paths still works as a shim that emits deprecation
warnings, so existing imports and dict-style access continue to function.
Imports and internal APIs#
The module-level
call()ingeoips.plugins.modules.procflows.order_basedwas removed. The order-based procflow is now the class-basedOrderBased(BaseProcflowPlugin); resolve it through the registry:from geoips import interfaces interfaces.procflows.get_plugin("order_based")(workflow_spec, filenames=fnames)
Pydantic models live under
geoips.pydantic_models.v1(with av2alpha1set for newer work). Interface argument models such asAlgorithmArgumentsModeldocument the arguments each plugin kind accepts.
Recommended migration order#
Get your data producing outputs with a legacy procflow (still supported) to establish a baseline.
Recreate that processing as an OBP workflow with a
testsection and acompare_path.Convert any custom plugins to class-based.
Move hard-coded paths onto geoips.config.