Background (semi-analytic)

Emissivity x Planck clear-sky background, paper section 3.2 Option A.

Clear-sky background reference signals (Miller et al. 2017, section 3.2).

The semianalytic background: per-band surface emissivity (CAMEL climatology, interpolated to the sensor band centers) modifies the Planck blackbody radiance of the MERRA-2 skin temperature, which is inverted back to an equivalent brightness temperature: BT_bg = B^-1(eps * B(T_skin)). Band differences of these give the dynamic backgrounds used by the dust tests (Eqs. 13-14): RSW_bg = BT_bg(12.3) - BT_bg(10.4) and BTD_bg = BT_bg(8.6) - BT_bg(10.4).

The Planck function is monochromatic at the band centers (BAND_CENTER_UM), with physical constants from scipy.constants; only background differences enter DEBRA, so the monochromatic approximation is well inside the paper’s quoted <5-10% MERRA-driven uncertainty on the final confidence factor.

Missing emissivity (NaN, e.g. ocean in CAMEL) is treated as eps = 1.0: the paper notes water-surface infrared emissivity is close to unity and needs no background correction, so the tests fall back to their static bounds there.

shachen.background.planck_radiance(temperature_k, wavelength_um)[source]

Monochromatic Planck spectral radiance B(lambda, T) in W m-2 sr-1 m-1.

Array-generic (scalars, numpy, xarray); wavelength_um in micrometres.

shachen.background.planck_temperature(radiance, wavelength_um)[source]

Analytic inverse of planck_radiance(): brightness temperature in K.

shachen.background.background_bt(skin_temperature, emissivity, band: Band)[source]

Background brightness temperature B^-1(eps * B(T_skin)) for one band.

Array-generic; NaN emissivity is treated as 1.0 (identity: BT_bg = T_skin).

shachen.background.background_signals(skin_temperature: DataArray, emissivity: Dataset) Dataset[source]

Per-pixel background signals for the dust tests (Eqs. 13-14).

emissivity must carry emis_tir_86, emis_tir_104, emis_tir_123 (the load_band_emissivity naming), on the same grid as skin_temperature (K). Raises ValueError if the 2-D shapes differ.

Returns a Dataset with rsw_bg (= bt_bg_tir_123 - bt_bg_tir_104), btd_bg (= bt_bg_tir_86 - bt_bg_tir_104), and the per-band bt_bg_tir_86, bt_bg_tir_104, bt_bg_tir_123 for debugging.