Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Intensity gallery — plotting every λ(t) kernel

This notebook plots every intensity kernel in the plumax.population.intensity module. Each one is an equinox.Module that takes a time array t [days] and returns an intensity λ(t) [events day⁻¹]. Physical motivation, parameter meanings, and suggested priors live in the module docstrings; here we focus on the shapes of the curves themselves so the gallery reads like a catalog.

The kernels are arranged by the dominant temporal scale they encode, from sub-daily (diurnal, shift, PRV recharge, batch venting) through daily-to-synoptic (operational schedules, barometric pumping) to annual (seasonal, wetland thaw, landfill, feedlot).

1. Baseline: the homogeneous Poisson process

A flat λ(t) = λ₀. The simplest model, corresponding to a chronically leaking, passive facility (abandoned wells, legacy pipes). The absence of temporal structure is its defining feature.

<Figure size 900x280 with 1 Axes>

2. Diurnal and seasonal sinusoids

Sub-daily thermal cycling on storage tanks (diurnal), annual temperature cycles on biogenic sources (seasonal). The peak phase matters a great deal for satellite sampling because polar-orbiting platforms cross every point on the Earth at a fixed local time.

<Figure size 1000x500 with 2 Axes>

3. Multi-scale compounds

Landfills, feedlots, and many biogenic sources exhibit both sub-daily and annual modulation. The additive compound (DiurnalSeasonalIntensity) layers the two; the multiplicative one (SeasonallyModulatedDiurnalIntensity) encodes the physically cleaner fact that diurnal amplitude itself grows in summer and shrinks in winter.

<Figure size 1000x550 with 2 Axes>

4. Operational & hazard models

Two qualitatively different kernels: the operational schedule (sigmoid on/off duty cycle, captures crew-shift step functions differentiably enough for NUTS) and the Weibull renewal hazard (increasing failure rate since the last event — think of a pressure-relief valve that must recharge between vents). The Weibull one is evaluated on elapsed-since-last time, not calendar time.

<Figure size 1200x350 with 2 Axes>

5. Periodic batch venting (impulse train)

Glycol dehydrators, liquid unloading, longwall shearer cycles — a narrow Gaussian pulse on a low background, repeated with period PP. The pulse width is parameterised as a fraction of the period to keep the shape scale-invariant.

<Figure size 1000x300 with 1 Axes>

6. Multi-scale domain-specific kernels

Four kernels that combine 2-3 time scales with a physically meaningful parameterisation. These are the models you’d use in an actual inventory study where you know the source type.

<Figure size 1100x1000 with 4 Axes>

7. Livestock feedlot — bimodal diurnal + seasonal

Cattle are fed twice a day; rumen microbial activity peaks 1–3 hours after each feeding. The resulting intensity is bimodal within each day. Seasonal modulation on top comes from temperature-sensitive manure-lagoon emissions.

<Figure size 1100x300 with 1 Axes>

Registry roll-call

Every class in the catalog is also available via the INTENSITY_REGISTRY dict keyed by a short string — handy for config-driven workflows.

Registered intensity modules: 13
  constant               -> ConstantIntensity
  diurnal                -> DiurnalSinusoidalIntensity
  seasonal               -> SeasonalSinusoidalIntensity
  diurnal_seasonal       -> DiurnalSeasonalIntensity
  modulated_diurnal      -> SeasonallyModulatedDiurnalIntensity
  operational            -> OperationalScheduleIntensity
  weibull_renewal        -> WeibullRenewalIntensity
  periodic_batch         -> PeriodicBatchIntensity
  coal_mine              -> CoalMineVentilationIntensity
  landfill               -> LandfillIntensity
  offshore               -> OffshorePlatformIntensity
  wetland_permafrost     -> WetlandPermafrostIntensity
  livestock_feedlot      -> LivestockFeedlotIntensity