System transform#
System transforms: the fixed pipeline backbone of every CIF observation operator.
These transforms are not user-configurable physics operators; they are the infrastructure connectors that wire the control vector, the numerical model, and the observation vector together.
In a simple configuration with a numerical model, CIF forward run executes them in the following order (adjoint is the reverse):
fromcontrol → regridding if needed → dump2inputs → run_model →
↓
toobsvect ← loadfromoutputs
Transform summary#
fromcontrolReads \(\mathbf{x}\) (or \(\mathbf{x}^b\)) from the control vector and maps it to physical fields at the corresponding input data grid resolution (flux maps, scaling factors, initial conditions …). Marked
start_pipe = True.dump2inputsConverts CIF-internal arrays to the native input format expected by the model executable (calls
model.native2inputs). In most cases, it consists in dumping in proper NetCDF format, or binary.run_modelExecutes the model for one sub-simulation period via
model.make_auxiliary+model.run. Compiles on first use.loadfromoutputsReads model outputs via
model.outputs2nativeand delivers them as CIF-internal arrays ready for observation sampling.array2sampledSamples a gridded model field at observation locations (lat/lon/level/ time-step). Forward: grid → sparse observations. Adjoint: scatter sensitivities back to the grid.
sparse2sampleInverse of
array2sampled: accumulates sparse observation-indexed values onto the full model grid (forward) and extracts point samples from the grid (adjoint).toobsvectStores simulated values into
obsvect.ysim(forward) or readsobsvect.dysensitivities (adjoint). Markedend_pipe = True.dump2formatWrites transformed data to a user-specified file format via a registered datastream plugin
writemethod, with optional regridding and temporal resampling.
Available System transform#
The following transform of sub-type system are implemented in pyCIF so far:
- Computing a transport model
run_model/std - Data initialization from the control vector
fromcontrol/std - Dump to specific format
dump2format/std - Dump to transform inputs
dump2inputs/std - Process data to the observation vector
toobsvect/std - Read model output to data
loadfromoutputs/std - array2sampled/std
array2sampled/std - sparse2sample/std
sparse2sample/std