JSON file catalog¶
SpectralBridge uses JSON for three different jobs: installed scientific parameters, run-specific correction/QA records, and validation or governance evidence. They should not be edited or interpreted in the same way.
This catalog documents active JSON files without inserting new keys into runtime schemas that existing loaders may not recognize.
Packaged scientific parameters¶
Installed code reads these files from src/spectralbridge/data/. This location
is authoritative.
| File | What it controls | Units and structure | Loaded by | How to validate a change |
|---|---|---|---|---|
src/spectralbridge/data/landsat_band_parameters.json |
Target sensor band centers and Gaussian full widths at half maximum used for convolution/resampling | Nanometers; every sensor entry has equal-length wavelengths and fwhms arrays |
standard_resample.py, pipeline convolution, sensor-panel plots |
Run resampling/convolution tests; inspect output band count, wavelengths, support, and QA |
src/spectralbridge/data/hyperspectral_bands.json |
Reference hyperspectral wavelength axis for sensor-panel visualization | Nanometers in one ordered bands array |
sensor_panel_plots.py |
Confirm ordering, numeric values, and expected panel wavelength range |
src/spectralbridge/data/brightness/landsat_to_micasense.json |
Percent brightness adjustment coefficients for the general Landsat-to-MicaSense comparison | system_pair, human-readable description, unit: percent, and string band indices |
brightness_config.py |
Run tests/test_brightness_coefficients.py; inspect the convolution stage's brightness*.png fitted-versus-configured coefficient profiles |
src/spectralbridge/data/brightness/landsat_tm_etm_to_micasense.json |
Percent coefficients for the TM/ETM+-specific comparison | Wavelength-aligned Landsat-like order; not native Landsat numbering | brightness_config.py |
Run coefficient tests and the Python brightness_correction_metrics/render_brightness_diagnostics workflow before accepting scientific changes |
The same band-definition filenames under repository-root data/ are
example/notebook copies. Installed package code does not load those copies.
If a scientifically reviewed value changes, update both locations deliberately
and keep the packaged file authoritative.
Example run configurations¶
These are intentionally self-documenting and are consumed only by the wrappers
in examples/. Their about blocks are explanatory metadata; the wrappers pass
only the nested pipeline object to SpectralBridge.
| File | Purpose | Run safely |
|---|---|---|
examples/config/neon_pipeline.example.json |
Complete NEON download-through-QA run | python examples/run_neon_pipeline.py --check |
examples/config/drone_pipeline.example.json |
Local drone HDF5 correction/extraction/QA run | python examples/run_drone_pipeline.py --check |
Copy an example before adapting it for a study. Record the copy with the output or analysis repository so parameters remain reproducible.
Validation and transparency records¶
| File | Meaning | Edit policy |
|---|---|---|
validation/campaigns/neon-live-100.example.json |
A proposed live campaign specification and resource checklist | Populate deliberately before a live campaign; it is not evidence that runs occurred |
validation/results/offline-contract.json |
Generated observations from deterministic offline function contracts | Treat as generated evidence; regenerate with scripts/run_validation_campaign.py |
docs/ai-transparency.json |
Generated machine-readable summary of PROMPT_LOG.md |
Do not hand edit; regenerate with scripts/generate_ai_transparency.py |
JSON produced by a pipeline run¶
These files normally do not live in the repository because they belong to one flightline or run.
| Filename pattern | Meaning | Consumer / check |
|---|---|---|
*_brdfandtopo_corrected_envi.json |
Run-specific geometry, masks, paths, and correction parameters used to create the corrected ENVI pair | stage_apply_brdf_topo_correction; must parse and match the flightline |
*_brdf_model.json |
Fitted BRDF coefficient model for the scene | Correction implementation and diagnose_brdf_topo_stage.py |
*_qa.json |
Machine-readable diagnostic summary paired with the QA PNG | Users, tests, publication/validation review |
drone_qa_summary.json |
Batch-level drone provenance, status counts, paths, and failure details | Drone users and QA review |
Run-specific JSON is evidence. Keep it next to the artifacts it describes and do not reuse it for a different flightline merely because the filename looks similar.
Before changing any coefficient or band definition¶
- Identify the authoritative packaged JSON and the Python loader above.
- Record where the proposed value came from and its units.
- Confirm band indices are wavelength-aligned rather than assumed native sensor numbers.
- Add or update a focused test.
- Run the related convolution or coefficient plot and inspect the QA output.
- Keep the old and new values traceable in version control.
Changing scientific JSON is a scientific-method change, not a formatting task.