simcal_model — SIMCAL model op

• Data kinds: none → simmodel (an op determined by its arguments alone — it takes no image or data input)

• Call: import fullseye as fs; fs.ledger.simcal_model(chain=None, knobs=None, scene=None, nuisance=None, noise=None, conditions=None, stochastic=None, label='model') -> 'dict' (to call the implementation directly, import simcal; simcal.simcal_model(chain=None, knobs=None, scene=None, nuisance=None, noise=None, conditions=None, stochastic=None, label='model') -> 'dict'; from the registry, opssimcal.get("simcal_model"))

Usage

Build a simmodel: a forward chain of ops whose arguments are knobs with units, ranges and a noise model.

chain — list of steps {"op": name, "args": {...}}; op is any registered fullseye op (e.g. "thin_film_reflectance") or a built-in stage ("stage:gain_offset", "stage:scale", "stage:radial_cos4", "stage:radial_poly", "stage:gaussian_blur", "stage:as_image", "stage:mc_sample"). Step 0 receives scene as its first argument (or nothing when scene is None), each later step the previous output.

knobs — list of dicts {"name", "step" (index or op name), "arg", "lo", "hi", "unit", "scale" ("linear" | "log"), "init", "prior" ((mean, sd) or None), "role" ("gain" | "offset" | None), "fixed" (value or None)}. A knob is bound to one argument of one step; init defaults to the middle of the range (geometric middle on a log scale).

conditions — optional list of {step: {arg: value}} (one output image per

condition: exposures, wavelengths, illumination angles). nuisance — names of knobs that are fitted but not of interest; label names the model in reports. noise / stochastic — see the module docstring.

The model is run once at the initial knobs and refused (ValueError) when a step is unknown, a knob names an argument its op does not take, two knobs bind the same argument, a range is empty or a log range is not positive, or the output is not a finite 2-D array. With no arguments: a demo model (chart -> cos^4 vignetting -> gain/offset, EMVA noise) with synthetic observations attached, ready for simcal_fit.

Detailed usage guide

• sim_to_real_calibration family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_pocket_interreflection — py -3.11 examples/poc_pocket_interreflection.py

• poc_simcal_thin_film — py -3.11 examples/poc_simcal_thin_film.py

• simcal_checks_tour — py -3.11 examples/simcal_checks_tour.py

• simcal_tour — py -3.11 examples/simcal_tour.py

Ops the type connects to (they accept simmodel as input)

simcal_simulate · simcal_observe · simcal_screen · simcal_fit · simcal_validate

Same category (model)

simcal_simulate · simcal_observe


*Provenance: simcal.py — SIMCAL operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.