API ReferenceInverse Module

Inverse Module API

The retrieve() function estimates ice physical properties from observed albedo.

from biosnicar.inverse import retrieve

retrieve()

retrieve(observed, parameters, emulator=None, forward_fn=None,
         platform=None, observed_band_names=None, obs_uncertainty=None,
         bounds=None, x0=None, regularization=None, wavelength_mask=None,
         method="L-BFGS-B", mcmc_walkers=32, mcmc_steps=2000, mcmc_burn=500,
         fixed_params=None, ssa_rho=None) -> RetrievalResult
ParameterTypeDefaultDescription
observedndarrayrequired480-band spectral albedo or N-band satellite array
parameterslist[str]requiredNames of parameters to retrieve
emulatorEmulatorNoneTrained emulator (fast mode)
forward_fncallableNoneDirect forward function (slow mode)
platformstrNoneSatellite platform key. Activates band mode.
observed_band_nameslist[str]NoneBand names matching observed. Required with platform.
obs_uncertaintyndarrayNonePer-element 1-sigma measurement uncertainty
boundsdictNone{name: (lo, hi)} overriding defaults
x0dictNone{name: value} initial guesses
regularizationdictNone{name: (prior_mean, prior_sigma)} Gaussian priors
wavelength_maskndarray[bool]NoneTrue = include wavelength (spectral mode only)
methodstr"L-BFGS-B"Optimisation method
mcmc_walkersint32MCMC walkers
mcmc_stepsint2000MCMC steps
mcmc_burnint500MCMC burn-in steps
fixed_paramsdictNoneKnown parameters not to be optimised
ssa_rhofloatNoneReference density for SSA decomposition

Either emulator or forward_fn must be provided.

RetrievalResult

AttributeTypeDescription
best_fitdict{param_name: optimal_value}
costfloatFinal chi-squared value
uncertaintydict{param_name: 1_sigma}
predicted_albedondarray (480,)Spectrum at best-fit point
observedndarrayInput observations
convergedboolOptimiser convergence flag
methodstrMethod used
n_function_evalsintNumber of forward evaluations
deriveddictInternal decomposition (SSA mode: rds_internal, rho_ref)
chainsndarray or NoneMCMC chains (steps, walkers, params)

result.summary() returns a human-readable string.

Default bounds

ParameterBoundsDefault x0Units
ssa(0.01, 300)2.0m²/kg
rds(100, 5000)1000µm
rho(100, 917)500kg/m³
solzen(20, 80)50degrees
black_carbon(0, 100000)100ppb
snow_algae(0, 500000)10000cells/mL
glacier_algae(0, 100000)100cells/mL
dust(0, 500000)100ppb

Constraints

  • direct cannot be in parameters — it’s binary. Pass via fixed_params.
  • ssa cannot appear alongside rds or rho — SSA replaces both.
  • Impurity concentrations and SSA are optimised in log₁₀(x+1) space internally.