LRA engine integration¶
bijux-pollenomics-lra owns numerical REVEALS, analytical and optimized LOVE,
coupled reconstruction, exact-coordinate series and forward pollen deposition.
The canonical host owns source admission, chronology, taxa, experiment splits,
commands and product publication. The extension imports neither the host nor its
development toolkit. Its implementation is Python, NumPy and SciPy.
The supported Python facade is bijux_pollenomics_lra.api. Installed metadata
registers group bijux_pollenomics.extensions, name lra, target
bijux_pollenomics_lra.api:extension_descriptor. Loading checks installed identity
and compatibility; missing dependencies and incompatible implementations are
observable refusals. There is no standalone engine command or automatic fallback.
| Engine domain | Responsibility |
|---|---|
models |
Configuration, results, validated dimensions and errors |
dispersal |
Deposition factors and source-compatible LOESS curves |
reconstruction |
Regional/local equations, draws and forward observation model |
optimization |
Bounded solver, replay and convergence diagnostics |
workflows |
Stage composition and coordinate pairing |
provenance |
Input, backend and scientific content identity |
outputs |
Numerical serialization and byte checksums |
resources |
Versioned models, schemas and examples |
Tests mirror those responsibilities. Exact-source R tooling lives under
tests/reference and does not ship in the runtime wheel. The numerical core does
not write products. Result serialization is explicit; the host decides whether
an output is scientifically eligible for release.
The adopted calculations retain the explicitly named DISQOVER 0.9.14 source profile. Source geometry conventions, analytical estimates outside physical fractions, uncertainty omissions and optimizer failure are observable. A numeric pairing coordinate is not a canonical source ID or an automatically inferred age. Publication-specific multi-site aggregation requires its own verified profile.
Pollen and vegetation validation have different targets and scores. Holding every target pollen sample out requires a spatial predictor and a forward observation model; LOVE itself needs local pollen. Grouped folds and dependency closure guard the training boundary. Synthetic recovery and R parity establish numerical behavior; they do not establish ecological accuracy or qualified review.
prepare_forward_inputs constructs target-specific kernels and regional
deposition through the engine facade, without target pollen or a target count
total. Its corrected-matrix preparation profile is recorded separately from the
forward observation profile. The host retains the parameter, geometry, time and
training-source lineage; it never substitutes a training basin for target geometry.
Hatch/VCS, the workspace lock, Make/tox, test discovery and CI govern the package. Its GPL license and source attribution are package-owned. Repository license synchronization must not replace them with the host's Apache license. The release matrix builds the optional engine alongside the host. Publication checks bind staged distributions to the release revision and require a same-revision actual-R certificate. Matrix inclusion and local build evidence do not establish scientific acceptance or authorize publication.
A bounded C++ objective experiment agreed numerically with Python and R but did not meet its predefined performance thresholds against prepared NumPy. That kernel remains Python. This finding does not establish that every possible native optimization is unsuitable; further native adoption requires measured benefit, binding safety and platform evidence through the same Python facade.
Host boundary¶
The host facade is bijux_pollenomics.analysis.lra.api; its inputs, engine,
execution and outputs packages have distinct owners and mirrored unit tests.
The CLI delegates to the same service. validate-lra-input verifies a declared
request and installed configuration; run-lra executes it and publishes a new
local exploratory bundle. Neither command grants source or scientific approval.
The request records sample/site identities separately from exact numeric pairing
coordinates. All source age intervals remain typed BP support. An explicit
declared_bin_stationarity decision identifies common time bins containing the
full support of every paired sample; matching a numeric key alone cannot
establish chronological compatibility. This is a declared modeling assumption,
not a chronology review verdict. Included/excluded sample identities must be
disjoint and unique.
Geometry records use metres and square metres, with explicit source references.
The optimized profile consumes terrestrial-to-ring area ratios; it needs
regional rings beyond the separately declared local max_ring. The analytical
profile does not apply partial terrestrial masks and refuses them. Arithmetic
checks do not independently verify source geometry. The optimized source
objective uses nominal PPE; its nested method manifest retains that source
limitation even when other stages draw PPE uncertainty.
Products retain source-file hashes, explicit omissions, numerical units, actual installed engine identity, code/resource inventories, diagnostic files and separate operational/scientific hashes. Source and code changes during a run refuse publication. Before/after file inventories are mutation checks; they do not attest Python objects already loaded in a long-lived process. Certification uses fresh installed processes and pinned dependencies.
Product reopening and cache reuse belong to the host's output and execution
domains. read_lra_product checks the complete file inventory, request and
scientific identity graph, rejecting incomplete bundles, symlinks, unexpected
files and changed numerical bytes. An independently retained manifest digest
can identify an expected bundle; internal consistency alone does not establish
authorship or scientific approval.
Saved primary tables must agree with the request's taxa, numeric coordinates, ring support, method and declared result units. Numeric fields reject malformed or nonfinite values; source-defined empty SD/local-statistic cells remain missing. Binary Monte Carlo arrays are byte-verified, without claiming a fresh numerical recomputation. A final inventory check detects changes during reopening; returned paths are not a promise that another process cannot subsequently change the files.
run_lra_cached revalidates source evidence and numerical configuration on every
call. The key includes the complete request, installed engine identity, host and
engine code/resources, Python/platform and dependency versions, and declared
numerical thread environment. Parameter, source-identity or implementation
changes select a different entry. A cache hit verifies the saved product before
returning it. Corrupt entries refuse without replacement; simultaneous writers
receive lra_cache_busy without polling. Interrupted writers may leave a lock
and staging directory for explicit recovery after checking that its owner has
stopped. The cache does not automatically infer that a lock is stale. This is a
local product cache; no distributed scheduling or measured batch throughput is
implied by this interface.
Directory publication requires an atomic no-replace operation on the destination filesystem. The Linux and macOS paths use their native exclusive-rename primitives; Windows uses its nonreplacing rename behavior. Unsupported systems or filesystems refuse publication instead of falling back to a racy existence check. Failed staging directories remain available for diagnosis. Local macOS execution evidence does not certify the other operating systems.
The primitive contracts are documented by the Linux rename manual and Apple's rename flag definitions.
Source admission and experiment ownership¶
analysis.lra.materialization owns the source-to-request boundary. Its Neotoma
admission audit retains exact source cells, count units, chronology alternatives,
conflicts and per-sample refusals. Necessary numeric count eligibility does not
authorize taxon grouping, PPE, chronology or basin geometry. Source audits remain
separate products until those scientific requirements have actual evidence.
The SEAD source-admission audit is available through
analysis.lra.materialization.sead.audit_sead_lra_source. It consumes caller-pinned
full-evidence acquisition identities, the existing normalized bundle and its
country-boundary authority. The source-owned normalizer is replayed against every
logical document before audit rows are emitted. Observation records retain native
values, units, source taxonomy, elements, dataset methods and dimensions; chronology
claims remain unselected at their original analysis entity. Numeric integer
compatibility, an explicit source absolute-element-count declaration and an observed
Palynology method link are reported separately. None constitutes approved pollen
grain counts. The output is a hash-bound audit with zero scientific admissions,
without importing or running the numerical engine.
AdmissionReport.available_samples and selected_samples count unique
entity-linked physical samples in this all-source audit; the manifest separately
accounts for analysis entities, observation-bearing entities, the complete raw
physical-sample denominator and samples without analysis entities. All61source-table
row counts remain explicit, including empty tables.
The private analysis.lra.materialization.requests facade projects explicitly
declared synthetic Neotoma fixtures into the existing lra-request.v1 contract.
It requires synthetic origin and country inputs bound in the raw receipts, replays
the existing source normalizer across all normalized surfaces and reconciliation,
and binds every selected count cell and chronology claim to its source records. It
preserves zero, refuses missing or incompatible values and incomplete
denominators, retains the original evidence, and publishes through the shared no-
replace filesystem primitive. Request projection does not import the optional
numerical engine. Real or unspecified source provenance is refused; this facility
supplies no qualified taxonomy, chronology, PPE, geometry or empirical
reconstruction approval.
The shared analysis.classification.events.assess_classification_eligibility
service checks reviewed source/taxon membership without requiring positive pollen
detection. Zero, null and absent measurements remain distinct. This review
projection does not admit counts, chronology or an LRA run. Its current pinned
authority is Neotoma-specific and contains zero accepted mappings; the API cannot
create scientific approval or extend that authority to another source.
analysis.lra_validation.experiments owns training-fold reconstruction and
subsequent observation scoring. Its first profile is explicitly synthetic:
prepare_experiment_predictions runs the existing batch/cache service, reopens
training products, applies a named baseline and prepares target-specific forward
geometry. The regional anchor retains its full training ancestry and is separately
identified from local predictor sites. Both inversion and forward grids declare
the same physical basin and selected outer support radius.
Prediction publication precedes score_experiment_predictions, which accepts a
separate outcome inventory and records attempted outcome access. Every requested
fold, baseline and target receives a score or explicit failure/exclusion result.
Changing held-out pollen cannot affect that site's training fit or frozen
prediction. Vegetation and pollen are scored separately; training mean, nearest
site and inverse-distance-squared are named baselines. Their deterministic
predictions have no predictive intervals, and overlapping-fold scores do not
constitute independent fixed-model evaluation units. The synthetic profile does
not admit final evaluation or empirical source observations.
The host CLI exposes the same two phases. Set the existing batch service's
numerical thread controls, prepare the declared synthetic experiment, and retain
its reported manifest_sha256 before scoring:
export OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1
export NUMEXPR_NUM_THREADS=1 VECLIB_MAXIMUM_THREADS=1
bijux-pollenomics prepare-lra-experiment experiment.json \
--input-root inputs --cache-root cache --output predictions --max-workers 1
bijux-pollenomics score-lra-experiment predictions \
--expected-manifest-sha256 "$prediction_manifest_sha256" \
--outcome-root outcomes --outcome-inventory outcomes/inventory.json \
--output scores
Preparation dispatches the explicit request profile: synthetic withheld-site
baselines, source-observation withheld-site baselines, fitted spatial prediction,
or local-pollen assimilation. Local-pollen scoring accepts the separate
vegetation-only outcome inventory; its pollen comparison remains an in-sample
diagnostic. All profiles report the requested prediction count and retain their
own target roles.
The scoring command verifies the expected prediction identity before opening the
outcome inventory. Both commands emit JSON identifying the saved product and its
accounting. Preparation exits 0 when every requested prediction was generated,
2 for a refusal or partial result, and 130 for an accounted-for interruption.
Scoring exits 2 if any requested score is missing, refused or excluded. A zero
exit reports operational success; scientific_acceptance remains
not_evaluated. The original prediction and separate score products retain all
requested denominators and target-specific results.
The exploratory source-observations-withheld-site-baselines-v1 profile requires
request_template.data_kind: source_observations and raw observation files with
the same declared data kind. It uses the same train-only grouped folds and
source-byte checks as the synthetic baselines. The separate scoring inventory
uses schema_version: lra-source-pollen-outcomes.v1 and
data_kind: source_observations; each record reference must point to the exact
raw file and SHA-256 recorded in the prediction catalogue. Scoring opens those
counts after prediction authentication and emits only held-out pollen scores.
Predicted vegetation is not measured vegetation accuracy. Source identity,
chronology, basin geometry, taxa, parameters and permissions still need an
eligible cohort; this software profile does not grant source or release approval.
prepare_local_pollen_predictions adds the distinct synthetic
local-pollen-available profile. It runs actual paired regional REVEALS and target
analytical LOVE, retaining the regional anchor and explicitly observed target
pollen channel in their original outer fold. Independent vegetation outcomes are
opened only during the separate scoring phase. Its predicted pollen is an
in-sample diagnostic against the assimilated counts and is explicitly ineligible
for held-out pollen acceptance. This method is not a renamed spatial baseline.
Baseline, local-pollen and fitted preparation reverify their consumed pollen, geometry and template evidence immediately before publication. A changed source refuses publication; unused pollen and outcome files remain outside that check. Interrupted batches retain explicit incomplete rows and support cache-based resume. The local profile currently produces point predictions, with uncertainty and empirical acceptance remaining separate requirements.
The separate analysis.lra_validation.spatial.fit_spatial_model facade fits
clr-wgs84-rbf-ridge-v1: centred log-ratio vegetation fractions regressed on
radial basis features centred only at declared training sites. It reuses the
host's unrounded WGS84 distances. Lengthscale, ridge penalty and matched-support
identity are required declarations. All training fractions must be positive;
zeros refuse without an invented replacement rule. The numerical least-squares
backend is loaded only when fitting, through the optional NumPy dependency.
The CLR definition and ridge objective define its transformation and fitted objective. This is an exploratory geographic model choice, not evidence that the model is ecologically accurate. It has an unpenalized intercept, one equally weighted composition per predictor group, and explicit solver diagnostics. The basis features do not assume a geographic covariance kernel. Every fitted coefficient, centre, parameter and denominator is bound to the model digest. Target coordinates are supplied after fitting; target observations are not accepted. The profile produces point predictions, with uncertainty, parameter selection and final evaluation left to separately governed experiment stages. The current baseline experiment runner does not silently substitute this fitted model for any named baseline.
TrainingAdmission records an explicit whole-group subpartition of an original
outer fold. It binds each physical group's complete record membership, admitted
and excluded training records, and the declared selection criterion. Excluded
training observations cannot re-enter through external dependencies; they do not
become test observations. A fitted model with this admission uses a distinct v2
manifest, while the default all-training model retains its existing identity.
Shared support separation uses unrounded WGS84 distance minus both footprints and coordinate uncertainties. The same arithmetic serves experiment buffering and final evaluation. The declaration alone does not prove the criterion was applied; the experiment must retain and validate its actual selection evidence.
analysis.lra_validation.temporal.admit_forward_time_training evaluates explicitly
declared synthetic calendar supports on the BP1950 axis. Every source/target
interval-component pair must establish positive order, satisfy the declared
embargo and stay within the maximum lead. Admission compares exact binary64
endpoint ratios; rounded reported differences never decide a boundary.
The temporal receipt preserves the original fold, whole physical-site groups,
missing support and required regional-source exclusions. If any alias fails,
its entire group is excluded. Missing required regional support leaves otherwise
eligible groups visible but supplies no usable training admission. Consumers must
still validate their quantitative dependency closure with assert_training_inputs.
This component reads no pollen or vegetation outcomes and performs no prediction,
chronology conversion, review authentication or uncertainty propagation.
prepare_fitted_spatial_predictions connects training-only regional REVEALS and
local LOVE products to the explicit CLR spatial model, followed by target-specific
forward pollen deposition. Its synthetic singleton folds withhold both target
observations. Prediction products retain training products, regional ancestry,
geometry, fitted state and separate vegetation/pollen fractions.
The current grouped-outer producer has a versioned paired payload. Before fitting
the spatial model it freezes a distinct training-mean model over the same exact
original-fold reconstructions, then projects both methods through the governed
target forward model. Reconstruction failure applies to both methods, while a
spatial-fit refusal can coexist with a successful baseline. Every fold/method is
predicted, refused or part of the deterministic interrupted not_run suffix.
The strict reader recomputes the baseline mean and complete input closure and
keeps its admitted_reconstruction_training_mean identity separate from the
fitted model. Historical fitted-only products retain their legacy reader branch;
the paired schema never accepts an arbitrary method subset.
prepare_spatial_block_predictions uses a separate declared spatial-block profile.
It preserves the original physical-site groups, excludes training groups using
unrounded footprint separation, selects an admitted regional anchor and fits one
model for each held-out block. Each target then receives its own spatial prediction
and forward pollen calculation. The same admitted reconstruction set also freezes
an independent training-mean vegetation baseline and projects it through the
governed target-specific forward model. All target pollen remains withheld.
Saved block products retain the complete experiment catalogue, admission decisions, the fitted state when available, and a separately identified baseline model. A fitted-model refusal can leave the already frozen baseline usable; a baseline target refusal does not discard its fitted counterpart. The reader regenerates the declared folds and verifies source, support, model and target identities before scoring. Every fold/record/method key is exactly predicted, refused or not run, with separate counters for the latter two states. Score pairs include the target record identity, so sibling targets in one block cannot reuse one another's training-mean score. Successfully consumed inputs remain subject to final hash checks even when later reconstruction fails; this lifecycle rule also applies to singleton fitted and local-pollen experiments.
The retained reader recomputes baseline vegetation arithmetic and authenticates its admitted reconstruction lineage. Forward pollen bytes remain protected by the caller-pinned product manifest rather than replaying a potentially different optional engine after publication. This boundary does not supply uncertainty, empirical accuracy or scientific acceptance.
adapt_authenticated_spatial_block_local_vegetation_rows joins the strict
spatial-block local-pollen reader to that paired training-mean product before any
vegetation outcome is accepted. It requires the same complete fold universe,
block admissions, target group/bin/taxon denominator, geometry and per-target
training admission. The analytical LOVE row receives its own target-specific
local_pollen_assimilation source identity and explicit observed-pollen channel;
it is never relabelled as a fitted spatial model. Its training-mean comparator is
authenticated from the separate block product and cannot carry target pollen or a
fitted-model alias. Predicted rows are frozen with the generic v2 envelope, while
parent refusals/not-run states remain failures without invented values.
This adapter supplies only the outcome-free spatial-block
local_pollen_available vegetation pair. No governed predictive-observation
interval for local vegetation exists, so the cell remains ineligible for final
coverage acceptance. The adapter does not bind a release receipt, open vegetation
truth, establish first-access timing, approve a threshold or grant scientific
review. The grouped-local vegetation adapter and the factory-only six-cell
release product remain separate boundaries.
adapt_authenticated_spatial_block_withheld_vegetation_rows performs the paired
point-row projection for the spatial-block all-target-withheld vegetation cell.
It reopens the caller-pinned product, requires the exact frozen fold and complete
fitted/training-mean terminal universe, checks target group, bin and taxa, and
preserves refused/not-run parents as value-free failures. Successful rows carry
the producer-authenticated fitted or admitted-training-mean identity and remain
free of target pollen and vegetation outcomes. No governed vegetation predictive
interval exists, so this adapter also cannot establish empirical coverage or
release acceptance.
adapt_authenticated_spatial_block_withheld_pollen_rows builds the matching
complete pollen point-row universe and sends it through one batch authentication
of the caller-pinned conditional-observation product. Both the fitted method and
training-mean baseline receive producer-authenticated v2 source identities and
predictive-observation intervals. Parent prediction refusals remain value-free
failures. A successfully predicted parent without a generated interval refuses
the whole ledger rather than silently shrinking its uncertainty denominator.
These conditional intervals propagate declared counting uncertainty only;
empirical coverage, first-access timing and scientific acceptance remain false.
These spatial experiments remain synthetic and exploratory. Joint model uncertainty requires separate profiles and evidence.
read_withheld_predictions authenticates a caller-pinned saved baseline, legacy
fitted-only or versioned paired grouped-outer product before outcome access. It
rechecks original folds, the exact method/terminal universe, training lineage,
forward dimensions and exploratory status, and returns independently owned data.
Reading and scoring retained products work without installing the numerical
engine. These consistency checks establish neither external authorship nor
scientific acceptance; numerical reproduction is separate evidence.
adapt_authenticated_grouped_withheld_vegetation_rows joins the paired
grouped-outer product to the exact frozen evaluation scope. It authenticates the
two-method terminal denominator, singleton target ownership, support, taxa and
the complete training/external dependency closure. Successful fitted and
training-mean rows receive distinct source identities; refused and interrupted
parents remain value-free. This is an outcome-free point ledger and supplies no
vegetation uncertainty or accuracy claim.
adapt_authenticated_grouped_withheld_pollen_rows builds the corresponding
pollen point ledger and authenticates the complete conditional-observation
denominator once. Every successful parent must have its generated interval;
authenticated parent failures remain value-free and cannot shrink the ledger.
The intervals propagate only the declared pollen counting process and do not
establish empirical coverage, preregistration timing or scientific acceptance.
read_local_pollen_predictions, exported from both experiment facades,
authenticates grouped-local request bytes, raw batch operations, numerical
products and exact fold terminals. Operational failures and unobserved items are
published as scientific refusals unless a genuine interruption starts the
deterministic not_run suffix. Raw status and error evidence remain bound to each
attempted failure; a post-completion projection refusal is recorded separately
from the completed numerical batch item.
adapt_authenticated_grouped_local_vegetation_rows joins that strict local
product with the independently retained grouped training-mean comparator. It
requires singleton target ownership, the exact fold/bin/taxon/geometry/support
universe, target-specific observed-pollen bytes and the complete causal input
closure. The comparator must declare the exact pollen-free training and external
lineage admitted by the frozen scope. Either parent may retain an independent
refused or interrupted terminal without inventing a prediction or source. The
successful pair uses distinct authenticated local-assimilation and training-mean
source identities and the generic v2 prediction envelope.
This completes the six outcome-free protocol/cell adapter paths, not a release evaluation product. Callers still cannot treat an assembled row tuple as release evidence; a governed factory must bind the six adapter outputs and their reopened product identities before any separately authenticated observation join. The grouped-local cell has no vegetation predictive-observation interval, outcome, threshold, historical first-access proof or scientific approval.
build_six_cell_prediction_product is that engineering factory boundary. It
accepts only the two typed release protocols, their factory-minted release
admission and fixed-schema path/digest locators. It dispatches the six adapters
itself; callers cannot supply rows, manifest mappings, observations or adapter
callbacks. Only after every governed reader has reopened and authenticated the
retained local, withheld and conditional-uncertainty products does the factory
record those product identities. It then requires the exact protocol, cell,
fold, record, method and terminal denominator and reopens every successful v2
prediction envelope.
The resulting private-constructor SixCellPredictionProduct stores a canonical
receipt and immutable outcome-free rows. Reopening the typed product regenerates
release admission and repeats the row, source, taxa, interval and claim-boundary
checks. This does not score outcomes: independent observation attachment remains
a separate governed producer, and caller-built row tuples remain outside this
release-product boundary. The receipt explicitly records that empirical
evaluation and scientific acceptance were not performed.
build_observation_access_plan derives the next, still value-free boundary from
that complete prediction product. It removes the model dimension so each
protocol/cell/fold/record outcome will later be shared identically by the model
and its baseline, binds separate typed locators for independent measured
vegetation and held-out pollen counts, and records only mismatch guards and
reader/reference identities. Building the plan never opens, stats or hashes an
outcome path.
start_outcome_access reopens the plan, revalidates both policies at its
internally captured UTC instant and requires every successful prediction to have
frozen strictly earlier. It then exclusively publishes and fsyncs a canonical
start receipt before returning. That receipt contains no outcome reads or
values, refuses overwrite, and explicitly says it authenticates this process
ordering—not historical human non-access. HYDE, ESSD and reconstruction output
remain ineligible as independent measured vegetation; actual source products,
observation joins, scoring and qualified review are separate downstream gates.
read_observation_source_products implements the next engineering gate. It
accepts only that durable start receipt, reads the fixed measured-vegetation and
held-out-pollen locators in order, verifies their exact bytes and governed reader
identity, and publishes either a canonical completion receipt or a canonical
failure receipt. Its two typed products retain complete available, missing and
refused denominators; source snapshot/member, rights, reviewed-mapping and
normalization identities; exact ownership and support; vegetation fractions or
nulls; and nonnegative integer pollen counts, effort and all-zero status. Reopen
replays those fields from embedded canonical source bytes without reopening an
outcome path. These declarations are byte-bound, not independent authentication
of a provider, rights holder or scientific reviewer.
build_authenticated_observation_product accepts only a successful typed source
completion. It rederives the model-free access assignments and retains the exact
source-unit envelopes. build_observed_six_cell_product then expands each
assignment over the already frozen model/baseline pair. Prediction failures stay
prediction failures; missing or refused observations remain a separate source
terminal and do not rewrite prediction bytes. Available observations attach the
same values, support and provenance identity to both comparison methods.
evaluate_observed_six_cell_product is the release-oriented scoring entry point.
It rejects a raw tuple, mapping or lazy iterable before row access, reopens the
joined product, and evaluates grouped-outer and spatial-block protocols under
their own policy and scope. The result binds every prediction, access, source,
observation and protocol parent while retaining missing and refused source
statuses separately. evaluate_final remains the generic compatibility scorer;
its result alone is not release-product evidence. Neither entry point verifies
reviewer authenticity, grants scientific approval or supplies missing reviewed
thresholds and real admitted observations.
bijux_pollenomics_lra.sample_pollen_observations supplies a separate conditional
observation model. It accepts predicted pollen fractions, declared counting
effort, seed, nominal coverage and the host's prediction/effort evidence hashes.
The host must freeze those declarations before observation access; the numerical
function cannot authenticate their origin. It accepts no target count vector.
Joint multinomial draws retain their draw IDs, taxon dependence and total effort. The result binds nominal and effective probabilities, the explicit binary64 closure operation, numerical backend and dependency versions. Independent returned dictionaries cannot mutate its canonical result. The sampler uses NumPy's Generator.multinomial. Internal sequential subtraction remains subject to floating-point rounding.
Binomial marginal predictive bounds condition on fixed probabilities and effort. For effort at most 256, exact rational CDF checks resolve discrete probability ties in the provider's returned quantiles. Larger supports use SciPy's binomial CDF and quantiles with an explicitly recorded numerical boundary check; ambiguous endpoints refuse. Discrete marginal coverage may exceed nominal coverage. Simultaneous coverage, empirical calibration and R-source parity are not claimed. These bounds omit spatial fitting, PPE, chronology, geometry, reconstruction and overdispersion uncertainty, and do not provide vegetation prediction intervals. The experiment runner still requires a separately governed integration of those uncertainties.
analysis.lra_validation.observation_uncertainty attaches this conditional
sampler to an authenticated synthetic singleton-fold baseline or fitted product.
An immutable ObservationUncertaintyPlan pins the parent and declares effort,
seed, taxa and counting-design evidence for every requested fold/method unit,
including failed predictions. Generation accepts no outcome inventory. Joint draw
cells are bounded globally, and source, parent and implementation identities are
rechecked before publication.
score_pollen_observation_coverage separately consumes the pinned prediction,
uncertainty and existing score products. Observed counts must have the same taxa,
bin and exact predeclared total; a mismatch is an explicit coverage refusal.
Every requested unit remains counted. Results are per-taxon conditional marginal
coverage, with neither simultaneous coverage nor independent-site sampling
claimed. A supplied timing declaration cannot authenticate historical
preregistration. The numerical engine is required to validate retained draws;
no new simulation is run during coverage scoring. Local-pollen diagnostics,
latent vegetation intervals and scientific final-policy admission remain outside
this profile.
The CLI exposes conditional sampling and coverage as separate saved phases.
Serialize the independently declared plan with ObservationUncertaintyPlan.as_dict();
its parent prediction and counting-design evidence hashes are required inputs.
bijux-pollenomics prepare-lra-observation-uncertainty predictions \
--plan counting-plan.json --evidence-root counting-designs --output uncertainty
bijux-pollenomics score-lra-observation-coverage predictions \
--uncertainty uncertainty --scores scores \
--expected-uncertainty-sha256 "$uncertainty_manifest_sha256" \
--expected-scores-sha256 "$scores_manifest_sha256" --output coverage
Generation reports every requested unit and its status, returning 130 for an
accounted-for interruption and 2 for refusals or partial results. Coverage
returns 2 when any requested unit is refused, including counting-effort mismatch.
Both commands emit exploratory JSON; successful execution grants no scientific
acceptance. Base installations support help and input refusals, while actual
sampling and retained-draw validation require the numerical extra.
analysis.lra_validation.evaluation.api evaluates a complete, separately
frozen observation ledger against an explicit v2 policy. The policy supplies
reviewed reference identities, per-target thresholds, independent site/block
minimums, permitted exclusions and predictive-coverage requirements. This API
supplies no thresholds or scientific approval. Its receipt distinguishes passing
engineering criteria from authenticating the declared review.
Every baseline/model pair must share its observation, taxon denominator and geographic/temporal support. Errors are averaged equally within independent site groups and then across groups; failures and exclusions retain their requested denominators. Unrounded WGS84 separation accounts for footprint radii and coordinate uncertainty, including regional source support. Exact support matching includes coordinates and uncertainty, even when footprint hashes agree.
The shared channel guard preserves the original outer fold. Local pollen requires explicitly pinned target pollen channels; held-out vegetation, other target pollen and actual dependencies on held-out record owners remain forbidden. Ownership metadata is distinct from a quantitative dependency edge. The host must verify the declared channel bytes; an identity catalogue alone is not source authentication.
Conditional site/block bootstrap summaries require one fixed fitted model and a complete external evaluation cohort. They preserve paired comparisons and equal group weighting with unequal block sizes. They cannot treat overlapping cross-validation fits as independent models or replace predictive observation intervals. Synthetic policy examples demonstrate these controls without claiming reviewed vegetation references or empirical reconstruction accuracy.
The prepare-lra-experiment command also dispatches the
synthetic-spatial-block-fitted-v1 profile through the same governed lifecycle.
Its operational exit status preserves complete, partial and interrupted
accounting. score-lra-experiment verifies the saved prediction identity before
opening outcome labels and reports vegetation and pollen as separate score rows.
These synthetic experiments do not establish empirical accuracy.
Saved baseline and fitted experiments are reopened against the complete declared
site catalogue, original folds, template, and retained batch request bodies.
Source hashes and PPE declarations must agree with consumed training requests
and the target forward calculation. Changed metadata cannot acquire scientific
authority merely by receiving a new file hash. Valid historical products retain
their recorded fields; omitted historical declarations are not manufactured.
The separate analysis.lra_validation.temporal.persistence API implements the
synthetic forward-time persistence profile. It reconstructs admitted older
training sites, fits their spatial model, and explicitly transports the predicted
vegetation unchanged to one younger held-out target before forward pollen
calculation. No target pollen or younger observations enter generation. This is
a declared persistence assumption, not a fitted model of vegetation change.
The existing prepare-lra-experiment command dispatches the temporal profile,
and score-lra-experiment authenticates its retained prediction semantics before
opening the outcome inventory. Exit codes preserve complete, refused and
interrupted accounting; temporal scores keep both target denominators.
Temporal products retain full chronology/geometry admission, older fitted state, transport assumptions and original batch requests. Reading joins request bodies, source references, ordered items, batch summaries and fitted identities. Missing pre-attempt or interrupted receipts retain their actual failure state. A later post-batch interruption remains distinct from an interrupted numerical batch.
Separate scoring checks the younger observation support and reports vegetation and pollen errors independently, including failed-target denominators. Constant synthetic vegetation is reproduced in the demonstrated profile; changed younger vegetation exposes the persistence assumption's error. These tests establish workflow behavior, not LANDCLIM/Neotoma accuracy, qualified scientific review, final acceptance thresholds or joint model/PPE/chronology uncertainty.
Retained score review¶
analysis.lra_validation.evaluation.api exports
read_scored_experiment_evidence and audit_scored_evaluation_readiness for
reopening saved synthetic baseline, fitted, local-pollen, spatial-block and
forward-time experiments. Supply the independently retained manifest digests of
both the prediction and score products:
from pathlib import Path
from bijux_pollenomics.analysis.lra_validation.evaluation.api import (
audit_scored_evaluation_readiness,
read_scored_experiment_evidence,
)
evidence = read_scored_experiment_evidence(
Path("predictions"),
expected_prediction_manifest_sha256=prediction_manifest_sha256,
scores=Path("scores"),
expected_scores_manifest_sha256=scores_manifest_sha256,
)
audit = audit_scored_evaluation_readiness((evidence,))
print(audit.canonical_audit_json)
This base-host path reads retained products without loading the numerical engine, rerunning a model or opening original outcome files. It reconciles descriptive metrics through the existing scoring functions and preserves every requested fold, method and target, including failed predictions and refused observations. Vegetation and pollen have separate accounting; local pollen remains an in-sample diagnostic. A retained source refusal without an observation body cannot be re-executed here and is labelled accordingly.
admit_final_evaluation_release is the prospective engineering boundary for a
final benchmark. It requires the local-pollen-available vegetation cell and both
all-target-pollen-withheld vegetation and pollen cells under each of grouped outer
folds and predefined spatial blocks. Each protocol binds the complete canonical
split manifest, its split kind and digest. Both protocols must use the same frozen
site and alias universe, and a spatial fold cannot place one block in both training
and test. The returned receipt records that no empirical evaluation was performed
and that scientific acceptance was not evaluated.
For one fitted or training-mean all-target-withheld pollen prediction,
freeze_authenticated_pollen_interval attaches a governed conditional
observation interval before outcomes are available. The batch
freeze_authenticated_pollen_rows boundary instead requires the complete
grouped method/fold ledger. Both reopen caller-pinned prediction and uncertainty
products, check planned uncertainty units and effort declarations, and require
observation-process-only propagation with exact taxa, model and training-input
identities. The frozen prediction binds the uncertainty-product manifest and
governed draw. This verifies lineage and conditional interval semantics; it does
not authenticate historical preregistration timing, establish empirical coverage
or grant scientific acceptance.
The immutable evidence binds its projections to retained product identities.
Caller-pinned product bytes establish retained consistency; they do not
independently authenticate external raw observations. The readiness result always
states final_evaluation_performed=false and
scientific_acceptance=not_evaluated. Missing historical access timestamps,
the remaining prospective product/release joins, reviewed reference support,
thresholds and complete interval-bearing benchmark products remain explicit gaps.
A release-matrix receipt alone cannot retroactively freeze an experiment or
authenticate its source observations. Record-specific local-pollen sources and
overlapping cross-validation fits do not become an independent fixed-model
bootstrap cohort.
Saved-product reporting¶
bijux_pollenomics.reporting.lra_products.api owns the bridge from verified saved
products to exploratory reports. It uses the host's existing static atlas writer,
map renderer and shared exclusive-output publisher. Reporting never invokes the
numerical engine. Display geometry is a separate, hash-pinned input bound to the
product and site identities; reconstruction ring coordinates do not become map
locations or geographic footprints.
The default mapped profile admits synthetic paired reconstructions with one nonnegative, typed BP bin and explicit point anchors. Unsupported geography, profiles or temporal support remain in the tables and refusal accounting. Regional and local model anchors carry textual R/L cues. These are model context, not measured vegetation, propagation edges or accepted scientific reconstructions.
For a synthetic paired request whose samples explicitly declare calendar_bp,
set temporal_profile="calendar-bp1950-signed.v1" in render_lra_report, or use
the corresponding report command option:
bijux-pollenomics render-lra-report product \
--expected-manifest-sha256 "$product_manifest_sha256" \
--geometry display-geometry.json \
--expected-geometry-sha256 "$geometry_sha256" \
--temporal-profile calendar-bp1950-signed.v1 \
--output signed-report
This opt-in preserves negative and fractional calendar BP values, with 1950 as
zero. It requires one sample per role, one shared bin and one contained source
support component per sample. The closed source-age support and closed declared
stationarity envelope remain separate in the map and downloads. Their endpoints
are finite numbers within [-(2**53-1), 2**53-1]; Boolean values, numeric strings,
partial missing intervals and unsupported chronology refuse. The total display
span must also fit within 2**53-1 years. BP 0 is an instant,
not a substitute for a missing age. The underlying numerical product is retained
unchanged. If both sites lack admissible display geometry, the report retains
their rows and refusal accounting and produces no map.
Retained joint-realization products use a separate lossless presentation facade,
render_joint_lra_report, and installed command:
bijux-pollenomics render-joint-lra-report joint-product \
--expected-manifest-sha256 "$joint_manifest_sha256" \
--output joint-report
This path performs no numerical recomputation and accepts no display geometry. It copies the externally pinned product, preserves exact rational law mass and all draw/bin outcomes, and emits complete-bin means plus the full ordered covariance. Incomplete and interrupted bins retain null moments and refused/not-run mass. The result is exploratory, has no calibrated-interval or empirical-coverage claim, and is not publication authorization or scientific acceptance.
Signed reports use explicit younger/older endpoint controls. Fractional and point selections retain the same endpoints through filtering, URL restoration, download and native browser capture. This profile does not interpret HYDE calendar labels, convert native CE/BCE or radiocarbon ages, or admit calibrated chronology. Legacy source propagation and chronology-media profiles retain their existing scope; signed native captures cannot be used as legacy media evidence.
One native selection controls roles, sites, taxa and bins across the table, anchors, URL and selected download. Shared time and layer controls also constrain mapped rows. Rows refused geographic display remain inspectable under the native selection, with that temporal-refusal policy declared in the export. Original CSV decimal text and missing values retain their source locators and units.
The native view has an independent digest, avoiding a cycle with the enclosing report manifest. URLs bind that digest and a validated selection; stale or malformed selections visibly refuse export until corrected. Selected downloads declare their JSON serialization and hash the exact emitted UTF-8 bytes. Neither a matching digest nor an interactive report establishes ecological accuracy.
Supplied joint realizations¶
analysis.lra.api exports JointLRAPlan, run_joint_lra_ensemble and
read_joint_lra_ensemble. The synthetic-explicit-joint-analytical-v1 profile
computes a finite law supplied by the caller. It does not estimate a prior,
posterior or chronology distribution from source intervals.
bijux-pollenomics run-joint-lra joint-plan.json \
--input-root inputs --output joint-ensemble --cache-root child-cache
The lra-joint-realizations.v1 plan pins an admitted synthetic LRA/series request
and a declaration of the joint law. Every atom supplies a positive rational mass,
one shared PPE vector, integer counts for every original sample with its original
total, and a complete calendar BP age realization. Atom masses must sum exactly
to one. Component identities bind their values; the workflow never independently
redraws components or creates their Cartesian product.
Explicit nonoverlapping bins allocate modeled points using
younger_bp <= age_bp < older_bp. Each point must also lie in its original closed
source support, including any disjoint components. Original evidence, counts and
age supports remain separate from the modeled transformations. Every draw/bin
requires exactly one regional and one local sample; missing or ambiguous pairs
remain refused. The first profile admits synthetic calendar_bp only.
Each eligible pair uses the existing deterministic analytical workflow with the same realized PPE in both stages and a coupled regional result. Source rounding and signed analytical LOVE estimates remain visible. Complete bins expose finite mass-weighted population summaries and regional/local covariance. These are not Monte Carlo standard errors, posterior intervals or measured ecological accuracy. Any failed mass prevents a complete summary; failed atoms are never removed and renormalized. Predictive pollen observations require their own forward/count layer.
The bundle retains every requested draw/bin and all child products. Reopening requires the retained manifest digest and checks the parent-to-child request and byte inventories without running the engine. CLI exit codes are zero for complete computation, two for incomplete/refused work and 130 for interruption. None grants scientific acceptance. Geometry, fall speed, taxonomy, parameter-domain selection, spatial fitting and source/calibration authenticity remain outside this profile.