@photivra/engine 0.6.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +674 -0
- package/CHANGELOG.md +191 -0
- package/CITATION.cff +1 -1
- package/CONTRIBUTING.md +76 -0
- package/DCO +33 -0
- package/NODE_SUPPORT.md +37 -0
- package/NOTICE +2 -0
- package/README.md +139 -72
- package/SECURITY.md +55 -0
- package/THIRD_PARTY.md +63 -0
- package/dist/camera/equivalent-focal-length.d.ts +9 -0
- package/dist/camera/equivalent-focal-length.d.ts.map +1 -1
- package/dist/camera/equivalent-focal-length.js +9 -0
- package/dist/camera/equivalent-focal-length.js.map +1 -1
- package/dist/camera/field-of-view.d.ts +13 -0
- package/dist/camera/field-of-view.d.ts.map +1 -1
- package/dist/camera/field-of-view.js +13 -0
- package/dist/camera/field-of-view.js.map +1 -1
- package/dist/camera/projected-object-size.d.ts +8 -0
- package/dist/camera/projected-object-size.d.ts.map +1 -1
- package/dist/camera/projected-object-size.js +8 -0
- package/dist/camera/projected-object-size.js.map +1 -1
- package/dist/capture/capture-export-metadata.d.ts +60 -0
- package/dist/capture/capture-export-metadata.d.ts.map +1 -0
- package/dist/capture/capture-export-metadata.js +62 -0
- package/dist/capture/capture-export-metadata.js.map +1 -0
- package/dist/capture/environment-raw-producer.d.ts +55 -0
- package/dist/capture/environment-raw-producer.d.ts.map +1 -0
- package/dist/capture/environment-raw-producer.js +88 -0
- package/dist/capture/environment-raw-producer.js.map +1 -0
- package/dist/capture/export-jpeg.d.ts +12 -0
- package/dist/capture/export-jpeg.d.ts.map +1 -0
- package/dist/capture/export-jpeg.js +126 -0
- package/dist/capture/export-jpeg.js.map +1 -0
- package/dist/capture/export-tiff.d.ts +45 -0
- package/dist/capture/export-tiff.d.ts.map +1 -0
- package/dist/capture/export-tiff.js +129 -0
- package/dist/capture/export-tiff.js.map +1 -0
- package/dist/capture/focus-control.d.ts +210 -0
- package/dist/capture/focus-control.d.ts.map +1 -0
- package/dist/capture/focus-control.js +664 -0
- package/dist/capture/focus-control.js.map +1 -0
- package/dist/capture/linear-encoding.d.ts +59 -0
- package/dist/capture/linear-encoding.d.ts.map +1 -0
- package/dist/capture/linear-encoding.js +98 -0
- package/dist/capture/linear-encoding.js.map +1 -0
- package/dist/capture/photographic-export.d.ts +135 -0
- package/dist/capture/photographic-export.d.ts.map +1 -0
- package/dist/capture/photographic-export.js +273 -0
- package/dist/capture/photographic-export.js.map +1 -0
- package/dist/capture/raw-frame-limits.d.ts +12 -0
- package/dist/capture/raw-frame-limits.d.ts.map +1 -0
- package/dist/capture/raw-frame-limits.js +13 -0
- package/dist/capture/raw-frame-limits.js.map +1 -0
- package/dist/capture/raw-frame-reconstruction.d.ts +48 -0
- package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -0
- package/dist/capture/raw-frame-reconstruction.js +146 -0
- package/dist/capture/raw-frame-reconstruction.js.map +1 -0
- package/dist/capture/release-sequence.d.ts +120 -0
- package/dist/capture/release-sequence.d.ts.map +1 -0
- package/dist/capture/release-sequence.js +446 -0
- package/dist/capture/release-sequence.js.map +1 -0
- package/dist/capture/sensor-raw-frame.d.ts +34 -0
- package/dist/capture/sensor-raw-frame.d.ts.map +1 -0
- package/dist/capture/sensor-raw-frame.js +106 -0
- package/dist/capture/sensor-raw-frame.js.map +1 -0
- package/dist/capture/sensor-raw-producer.d.ts +51 -0
- package/dist/capture/sensor-raw-producer.d.ts.map +1 -0
- package/dist/capture/sensor-raw-producer.js +235 -0
- package/dist/capture/sensor-raw-producer.js.map +1 -0
- package/dist/capture/simulated-capture.d.ts +125 -0
- package/dist/capture/simulated-capture.d.ts.map +1 -0
- package/dist/capture/simulated-capture.js +248 -0
- package/dist/capture/simulated-capture.js.map +1 -0
- package/dist/color/capture-color.d.ts +73 -0
- package/dist/color/capture-color.d.ts.map +1 -0
- package/dist/color/capture-color.js +145 -0
- package/dist/color/capture-color.js.map +1 -0
- package/dist/color/sensor-color-development.d.ts +23 -0
- package/dist/color/sensor-color-development.d.ts.map +1 -0
- package/dist/color/sensor-color-development.js +56 -0
- package/dist/color/sensor-color-development.js.map +1 -0
- package/dist/color/white-balance.d.ts +175 -0
- package/dist/color/white-balance.d.ts.map +1 -0
- package/dist/color/white-balance.js +606 -0
- package/dist/color/white-balance.js.map +1 -0
- package/dist/composition/image-formation-plan.d.ts +481 -0
- package/dist/composition/image-formation-plan.d.ts.map +1 -0
- package/dist/composition/image-formation-plan.js +2499 -0
- package/dist/composition/image-formation-plan.js.map +1 -0
- package/dist/composition/plan-consumer.d.ts +53 -0
- package/dist/composition/plan-consumer.d.ts.map +1 -0
- package/dist/composition/plan-consumer.js +119 -0
- package/dist/composition/plan-consumer.js.map +1 -0
- package/dist/core/calculation-result.d.ts.map +1 -1
- package/dist/core/calculation-result.js +6 -0
- package/dist/core/calculation-result.js.map +1 -1
- package/dist/core/canonical-json.d.ts +18 -0
- package/dist/core/canonical-json.d.ts.map +1 -0
- package/dist/core/canonical-json.js +44 -0
- package/dist/core/canonical-json.js.map +1 -0
- package/dist/core/configuration-error.d.ts +6 -0
- package/dist/core/configuration-error.d.ts.map +1 -1
- package/dist/core/configuration-error.js +6 -0
- package/dist/core/configuration-error.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +6 -0
- package/dist/core/evidence-provenance.d.ts.map +1 -1
- package/dist/core/evidence-provenance.js +7 -0
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/image-formation.d.ts +9 -3
- package/dist/core/image-formation.d.ts.map +1 -1
- package/dist/core/image-formation.js +29 -5
- package/dist/core/image-formation.js.map +1 -1
- package/dist/core/owned-data.d.ts +25 -0
- package/dist/core/owned-data.d.ts.map +1 -0
- package/dist/core/owned-data.js +34 -0
- package/dist/core/owned-data.js.map +1 -0
- package/dist/core/record-validation.d.ts +17 -0
- package/dist/core/record-validation.d.ts.map +1 -0
- package/dist/core/record-validation.js +44 -0
- package/dist/core/record-validation.js.map +1 -0
- package/dist/core/scientific-assurance.d.ts +101 -0
- package/dist/core/scientific-assurance.d.ts.map +1 -0
- package/dist/core/scientific-assurance.js +301 -0
- package/dist/core/scientific-assurance.js.map +1 -0
- package/dist/core/spectral-composition.d.ts +106 -0
- package/dist/core/spectral-composition.d.ts.map +1 -0
- package/dist/core/spectral-composition.js +334 -0
- package/dist/core/spectral-composition.js.map +1 -0
- package/dist/core/spectral.d.ts +34 -0
- package/dist/core/spectral.d.ts.map +1 -0
- package/dist/core/spectral.js +57 -0
- package/dist/core/spectral.js.map +1 -0
- package/dist/core/validation.d.ts +6 -0
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +6 -0
- package/dist/core/validation.js.map +1 -1
- package/dist/core/version.d.ts +9 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +10 -0
- package/dist/core/version.js.map +1 -0
- package/dist/equipment/exposure-capabilities.d.ts +125 -0
- package/dist/equipment/exposure-capabilities.d.ts.map +1 -0
- package/dist/equipment/exposure-capabilities.js +391 -0
- package/dist/equipment/exposure-capabilities.js.map +1 -0
- package/dist/equipment/generic-tier-assets.d.ts +82 -0
- package/dist/equipment/generic-tier-assets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-assets.js +119 -0
- package/dist/equipment/generic-tier-assets.js.map +1 -0
- package/dist/equipment/generic-tier-presets.d.ts +57 -0
- package/dist/equipment/generic-tier-presets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-presets.js +122 -0
- package/dist/equipment/generic-tier-presets.js.map +1 -0
- package/dist/equipment/iso-capabilities.d.ts +143 -0
- package/dist/equipment/iso-capabilities.d.ts.map +1 -0
- package/dist/equipment/iso-capabilities.js +578 -0
- package/dist/equipment/iso-capabilities.js.map +1 -0
- package/dist/equipment/metering-capabilities.d.ts +58 -0
- package/dist/equipment/metering-capabilities.d.ts.map +1 -0
- package/dist/equipment/metering-capabilities.js +151 -0
- package/dist/equipment/metering-capabilities.js.map +1 -0
- package/dist/equipment/release-capabilities.d.ts +33 -0
- package/dist/equipment/release-capabilities.d.ts.map +1 -0
- package/dist/equipment/release-capabilities.js +176 -0
- package/dist/equipment/release-capabilities.js.map +1 -0
- package/dist/exposure/exposure-duration-control.d.ts +72 -0
- package/dist/exposure/exposure-duration-control.d.ts.map +1 -0
- package/dist/exposure/exposure-duration-control.js +161 -0
- package/dist/exposure/exposure-duration-control.js.map +1 -0
- package/dist/exposure/exposure-mode-resolver.d.ts +637 -0
- package/dist/exposure/exposure-mode-resolver.d.ts.map +1 -0
- package/dist/exposure/exposure-mode-resolver.js +1905 -0
- package/dist/exposure/exposure-mode-resolver.js.map +1 -0
- package/dist/exposure/exposure.d.ts +8 -0
- package/dist/exposure/exposure.d.ts.map +1 -1
- package/dist/exposure/exposure.js +8 -0
- package/dist/exposure/exposure.js.map +1 -1
- package/dist/exposure/flash.d.ts +179 -0
- package/dist/exposure/flash.d.ts.map +1 -0
- package/dist/exposure/flash.js +644 -0
- package/dist/exposure/flash.js.map +1 -0
- package/dist/exposure/metering-scene-radiance.d.ts +72 -0
- package/dist/exposure/metering-scene-radiance.d.ts.map +1 -0
- package/dist/exposure/metering-scene-radiance.js +222 -0
- package/dist/exposure/metering-scene-radiance.js.map +1 -0
- package/dist/exposure/metering-target.d.ts +67 -0
- package/dist/exposure/metering-target.d.ts.map +1 -0
- package/dist/exposure/metering-target.js +265 -0
- package/dist/exposure/metering-target.js.map +1 -0
- package/dist/exposure/metering-temporal.d.ts +76 -0
- package/dist/exposure/metering-temporal.d.ts.map +1 -0
- package/dist/exposure/metering-temporal.js +210 -0
- package/dist/exposure/metering-temporal.js.map +1 -0
- package/dist/exposure/metering.d.ts +124 -0
- package/dist/exposure/metering.d.ts.map +1 -0
- package/dist/exposure/metering.js +422 -0
- package/dist/exposure/metering.js.map +1 -0
- package/dist/exposure/program-line.d.ts +29 -0
- package/dist/exposure/program-line.d.ts.map +1 -0
- package/dist/exposure/program-line.js +126 -0
- package/dist/exposure/program-line.js.map +1 -0
- package/dist/index.d.ts +87 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -6
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +16 -0
- package/dist/motion/camera-rotation.d.ts.map +1 -1
- package/dist/motion/camera-rotation.js +16 -0
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.js +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.js +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
- package/dist/motion/capture-rotation-trajectory.d.ts +15 -0
- package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -1
- package/dist/motion/capture-rotation-trajectory.js +15 -0
- package/dist/motion/capture-rotation-trajectory.js.map +1 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +119 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +1 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js +263 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -0
- package/dist/motion/extended-object-projection.d.ts +175 -0
- package/dist/motion/extended-object-projection.d.ts.map +1 -0
- package/dist/motion/extended-object-projection.js +402 -0
- package/dist/motion/extended-object-projection.js.map +1 -0
- package/dist/motion/projected-motion.d.ts +11 -0
- package/dist/motion/projected-motion.d.ts.map +1 -1
- package/dist/motion/projected-motion.js +11 -0
- package/dist/motion/projected-motion.js.map +1 -1
- package/dist/optics/aperture.d.ts +9 -0
- package/dist/optics/aperture.d.ts.map +1 -1
- package/dist/optics/aperture.js +9 -0
- package/dist/optics/aperture.js.map +1 -1
- package/dist/optics/circle-of-confusion.d.ts +8 -0
- package/dist/optics/circle-of-confusion.d.ts.map +1 -1
- package/dist/optics/circle-of-confusion.js +8 -0
- package/dist/optics/circle-of-confusion.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +128 -0
- package/dist/optics/complex-pupil-psf.d.ts.map +1 -0
- package/dist/optics/complex-pupil-psf.js +462 -0
- package/dist/optics/complex-pupil-psf.js.map +1 -0
- package/dist/optics/depth-of-field.d.ts +18 -0
- package/dist/optics/depth-of-field.d.ts.map +1 -1
- package/dist/optics/depth-of-field.js +29 -4
- package/dist/optics/depth-of-field.js.map +1 -1
- package/dist/optics/diffraction.d.ts +8 -0
- package/dist/optics/diffraction.d.ts.map +1 -1
- package/dist/optics/diffraction.js +8 -0
- package/dist/optics/diffraction.js.map +1 -1
- package/dist/optics/focus-breathing.d.ts +13 -0
- package/dist/optics/focus-breathing.d.ts.map +1 -1
- package/dist/optics/focus-breathing.js +13 -0
- package/dist/optics/focus-breathing.js.map +1 -1
- package/dist/optics/focus-state.d.ts +47 -0
- package/dist/optics/focus-state.d.ts.map +1 -0
- package/dist/optics/focus-state.js +78 -0
- package/dist/optics/focus-state.js.map +1 -0
- package/dist/optics/front-of-lens-filter.d.ts +114 -0
- package/dist/optics/front-of-lens-filter.d.ts.map +1 -0
- package/dist/optics/front-of-lens-filter.js +468 -0
- package/dist/optics/front-of-lens-filter.js.map +1 -0
- package/dist/optics/illumination-vignetting.d.ts +9 -0
- package/dist/optics/illumination-vignetting.d.ts.map +1 -1
- package/dist/optics/illumination-vignetting.js +9 -0
- package/dist/optics/illumination-vignetting.js.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.d.ts +11 -0
- package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.js +11 -0
- package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
- package/dist/optics/lens-psf-profile.d.ts +217 -0
- package/dist/optics/lens-psf-profile.d.ts.map +1 -0
- package/dist/optics/lens-psf-profile.js +823 -0
- package/dist/optics/lens-psf-profile.js.map +1 -0
- package/dist/optics/polygon-diffraction.d.ts +67 -0
- package/dist/optics/polygon-diffraction.d.ts.map +1 -0
- package/dist/optics/polygon-diffraction.js +145 -0
- package/dist/optics/polygon-diffraction.js.map +1 -0
- package/dist/optics/profile-contract.d.ts +42 -0
- package/dist/optics/profile-contract.d.ts.map +1 -0
- package/dist/optics/profile-contract.js +92 -0
- package/dist/optics/profile-contract.js.map +1 -0
- package/dist/optics/psf-foundation.d.ts +16 -3
- package/dist/optics/psf-foundation.d.ts.map +1 -1
- package/dist/optics/psf-foundation.js +28 -15
- package/dist/optics/psf-foundation.js.map +1 -1
- package/dist/optics/radial-distortion.d.ts +18 -0
- package/dist/optics/radial-distortion.d.ts.map +1 -1
- package/dist/optics/radial-distortion.js +18 -0
- package/dist/optics/radial-distortion.js.map +1 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts +213 -0
- package/dist/optics/scene-to-sensor-irradiance.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-irradiance.js +662 -0
- package/dist/optics/scene-to-sensor-irradiance.js.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts +63 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.js +82 -0
- package/dist/optics/scene-to-sensor-quadrature.js.map +1 -0
- package/dist/optics/sensor-environment-query.d.ts +60 -0
- package/dist/optics/sensor-environment-query.d.ts.map +1 -0
- package/dist/optics/sensor-environment-query.js +50 -0
- package/dist/optics/sensor-environment-query.js.map +1 -0
- package/dist/optics/sensor-psf-quadrature.d.ts +70 -0
- package/dist/optics/sensor-psf-quadrature.d.ts.map +1 -0
- package/dist/optics/sensor-psf-quadrature.js +101 -0
- package/dist/optics/sensor-psf-quadrature.js.map +1 -0
- package/dist/optics/sensor-psf-support.d.ts +20 -0
- package/dist/optics/sensor-psf-support.d.ts.map +1 -0
- package/dist/optics/sensor-psf-support.js +13 -0
- package/dist/optics/sensor-psf-support.js.map +1 -0
- package/dist/optics/stray-light.d.ts +91 -0
- package/dist/optics/stray-light.d.ts.map +1 -0
- package/dist/optics/stray-light.js +110 -0
- package/dist/optics/stray-light.js.map +1 -0
- package/dist/optics/thin-lens.d.ts +8 -0
- package/dist/optics/thin-lens.d.ts.map +1 -1
- package/dist/optics/thin-lens.js +8 -0
- package/dist/optics/thin-lens.js.map +1 -1
- package/dist/output/capture-corrected-sdr.d.ts +49 -0
- package/dist/output/capture-corrected-sdr.d.ts.map +1 -0
- package/dist/output/capture-corrected-sdr.js +149 -0
- package/dist/output/capture-corrected-sdr.js.map +1 -0
- package/dist/output/capture-geometry.d.ts.map +1 -1
- package/dist/output/capture-geometry.js +8 -0
- package/dist/output/capture-geometry.js.map +1 -1
- package/dist/output/capture-sdr.d.ts +49 -0
- package/dist/output/capture-sdr.d.ts.map +1 -0
- package/dist/output/capture-sdr.js +90 -0
- package/dist/output/capture-sdr.js.map +1 -0
- package/dist/output/crop.d.ts +6 -0
- package/dist/output/crop.d.ts.map +1 -1
- package/dist/output/crop.js +6 -0
- package/dist/output/crop.js.map +1 -1
- package/dist/output/geometric-transforms.d.ts +137 -0
- package/dist/output/geometric-transforms.d.ts.map +1 -0
- package/dist/output/geometric-transforms.js +225 -0
- package/dist/output/geometric-transforms.js.map +1 -0
- package/dist/output/lens-corrections.d.ts +121 -0
- package/dist/output/lens-corrections.d.ts.map +1 -0
- package/dist/output/lens-corrections.js +210 -0
- package/dist/output/lens-corrections.js.map +1 -0
- package/dist/output/sdr-rendering.d.ts +81 -0
- package/dist/output/sdr-rendering.d.ts.map +1 -0
- package/dist/output/sdr-rendering.js +106 -0
- package/dist/output/sdr-rendering.js.map +1 -0
- package/dist/output/subject-framing-crop.d.ts +8 -0
- package/dist/output/subject-framing-crop.d.ts.map +1 -1
- package/dist/output/subject-framing-crop.js +8 -0
- package/dist/output/subject-framing-crop.js.map +1 -1
- package/dist/schema/camera.d.ts +6 -0
- package/dist/schema/camera.d.ts.map +1 -1
- package/dist/schema/illumination-spectral.d.ts +51 -0
- package/dist/schema/illumination-spectral.d.ts.map +1 -0
- package/dist/schema/illumination-spectral.js +132 -0
- package/dist/schema/illumination-spectral.js.map +1 -0
- package/dist/schema/illumination-temporal.d.ts +156 -0
- package/dist/schema/illumination-temporal.d.ts.map +1 -0
- package/dist/schema/illumination-temporal.js +554 -0
- package/dist/schema/illumination-temporal.js.map +1 -0
- package/dist/schema/illumination.d.ts +138 -0
- package/dist/schema/illumination.d.ts.map +1 -0
- package/dist/schema/illumination.js +483 -0
- package/dist/schema/illumination.js.map +1 -0
- package/dist/schema/scene-radiance-temporal.d.ts +107 -0
- package/dist/schema/scene-radiance-temporal.d.ts.map +1 -0
- package/dist/schema/scene-radiance-temporal.js +259 -0
- package/dist/schema/scene-radiance-temporal.js.map +1 -0
- package/dist/schema/scene-radiance.d.ts +185 -0
- package/dist/schema/scene-radiance.d.ts.map +1 -0
- package/dist/schema/scene-radiance.js +535 -0
- package/dist/schema/scene-radiance.js.map +1 -0
- package/dist/schema/scene.d.ts +7 -0
- package/dist/schema/scene.d.ts.map +1 -1
- package/dist/schema/validation.d.ts.map +1 -1
- package/dist/schema/validation.js +7 -0
- package/dist/schema/validation.js.map +1 -1
- package/dist/sensor/accumulated-charge.d.ts +199 -0
- package/dist/sensor/accumulated-charge.d.ts.map +1 -0
- package/dist/sensor/accumulated-charge.js +450 -0
- package/dist/sensor/accumulated-charge.js.map +1 -0
- package/dist/sensor/architecture.d.ts +48 -13
- package/dist/sensor/architecture.d.ts.map +1 -1
- package/dist/sensor/architecture.js +58 -16
- package/dist/sensor/architecture.js.map +1 -1
- package/dist/sensor/camera-saturation-capacity.d.ts +138 -0
- package/dist/sensor/camera-saturation-capacity.d.ts.map +1 -0
- package/dist/sensor/camera-saturation-capacity.js +356 -0
- package/dist/sensor/camera-saturation-capacity.js.map +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -1
- package/dist/sensor/capture-color-sampling-binding.js +14 -0
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
- package/dist/sensor/capture-mode-timing.d.ts +63 -0
- package/dist/sensor/capture-mode-timing.d.ts.map +1 -0
- package/dist/sensor/capture-mode-timing.js +270 -0
- package/dist/sensor/capture-mode-timing.js.map +1 -0
- package/dist/sensor/capture-mode.d.ts.map +1 -1
- package/dist/sensor/capture-mode.js +13 -0
- package/dist/sensor/capture-mode.js.map +1 -1
- package/dist/sensor/color-sampling.d.ts.map +1 -1
- package/dist/sensor/color-sampling.js +19 -0
- package/dist/sensor/color-sampling.js.map +1 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
- package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
- package/dist/sensor/constant-rate-temporal-integration.js +382 -0
- package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
- package/dist/sensor/dark-current.d.ts +169 -0
- package/dist/sensor/dark-current.d.ts.map +1 -0
- package/dist/sensor/dark-current.js +427 -0
- package/dist/sensor/dark-current.js.map +1 -0
- package/dist/sensor/environment-photo-signal.d.ts +123 -0
- package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
- package/dist/sensor/environment-photo-signal.js +186 -0
- package/dist/sensor/environment-photo-signal.js.map +1 -0
- package/dist/sensor/eqe-electron-rate.d.ts +107 -0
- package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
- package/dist/sensor/eqe-electron-rate.js +561 -0
- package/dist/sensor/eqe-electron-rate.js.map +1 -0
- package/dist/sensor/eqe-local-exposure.d.ts +65 -0
- package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-local-exposure.js +84 -0
- package/dist/sensor/eqe-local-exposure.js.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.js +62 -0
- package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/exposure-window.d.ts +14 -0
- package/dist/sensor/exposure-window.d.ts.map +1 -1
- package/dist/sensor/exposure-window.js +14 -0
- package/dist/sensor/exposure-window.js.map +1 -1
- package/dist/sensor/iso-signal-chain.d.ts +148 -0
- package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
- package/dist/sensor/iso-signal-chain.js +411 -0
- package/dist/sensor/iso-signal-chain.js.map +1 -0
- package/dist/sensor/local-exposure-binding.d.ts +87 -0
- package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
- package/dist/sensor/local-exposure-binding.js +214 -0
- package/dist/sensor/local-exposure-binding.js.map +1 -0
- package/dist/sensor/optical-stack.d.ts.map +1 -1
- package/dist/sensor/optical-stack.js +17 -0
- package/dist/sensor/optical-stack.js.map +1 -1
- package/dist/sensor/photon-energy.d.ts +97 -0
- package/dist/sensor/photon-energy.d.ts.map +1 -0
- package/dist/sensor/photon-energy.js +390 -0
- package/dist/sensor/photon-energy.js.map +1 -0
- package/dist/sensor/physical-charge-capacity.d.ts +130 -0
- package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
- package/dist/sensor/physical-charge-capacity.js +345 -0
- package/dist/sensor/physical-charge-capacity.js.map +1 -0
- package/dist/sensor/pixel-pitch.d.ts +6 -0
- package/dist/sensor/pixel-pitch.d.ts.map +1 -1
- package/dist/sensor/pixel-pitch.js +6 -0
- package/dist/sensor/pixel-pitch.js.map +1 -1
- package/dist/sensor/radiometry-readiness.d.ts +10 -0
- package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
- package/dist/sensor/radiometry-readiness.js +10 -0
- package/dist/sensor/radiometry-readiness.js.map +1 -1
- package/dist/sensor/raw-readout.d.ts +314 -0
- package/dist/sensor/raw-readout.d.ts.map +1 -0
- package/dist/sensor/raw-readout.js +914 -0
- package/dist/sensor/raw-readout.js.map +1 -0
- package/dist/sensor/raw-reconstruction.d.ts +170 -0
- package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
- package/dist/sensor/raw-reconstruction.js +424 -0
- package/dist/sensor/raw-reconstruction.js.map +1 -0
- package/dist/sensor/readout-exposure-linkage.d.ts +12 -0
- package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -1
- package/dist/sensor/readout-exposure-linkage.js +12 -0
- package/dist/sensor/readout-exposure-linkage.js.map +1 -1
- package/dist/sensor/readout-timing.d.ts +13 -0
- package/dist/sensor/readout-timing.d.ts.map +1 -1
- package/dist/sensor/readout-timing.js +13 -0
- package/dist/sensor/readout-timing.js.map +1 -1
- package/dist/sensor/response-application-compatibility.d.ts +136 -0
- package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
- package/dist/sensor/response-application-compatibility.js +408 -0
- package/dist/sensor/response-application-compatibility.js.map +1 -0
- package/dist/sensor/response-operating-range.d.ts +173 -0
- package/dist/sensor/response-operating-range.d.ts.map +1 -0
- package/dist/sensor/response-operating-range.js +672 -0
- package/dist/sensor/response-operating-range.js.map +1 -0
- package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
- package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
- package/dist/sensor/responsivity-photocurrent.js +644 -0
- package/dist/sensor/responsivity-photocurrent.js.map +1 -0
- package/dist/sensor/sampling-aperture.d.ts.map +1 -1
- package/dist/sensor/sampling-aperture.js +14 -0
- package/dist/sensor/sampling-aperture.js.map +1 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/sensor-geometry.d.ts +12 -0
- package/dist/sensor/sensor-geometry.d.ts.map +1 -1
- package/dist/sensor/sensor-geometry.js +12 -0
- package/dist/sensor/sensor-geometry.js.map +1 -1
- package/dist/sensor/signal-noise.d.ts +10 -0
- package/dist/sensor/signal-noise.d.ts.map +1 -1
- package/dist/sensor/signal-noise.js +10 -0
- package/dist/sensor/signal-noise.js.map +1 -1
- package/dist/sensor/spatial-sample-reduction.d.ts +44 -1
- package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -1
- package/dist/sensor/spatial-sample-reduction.js +51 -5
- package/dist/sensor/spatial-sample-reduction.js.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts +24 -0
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.js +27 -0
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
- package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
- package/dist/sensor/spatio-spectral-reduction.js +373 -0
- package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
- package/dist/sensor/spectral-coverage.d.ts +24 -0
- package/dist/sensor/spectral-coverage.d.ts.map +1 -0
- package/dist/sensor/spectral-coverage.js +86 -0
- package/dist/sensor/spectral-coverage.js.map +1 -0
- package/dist/sensor/spectral-quadrature.d.ts +169 -0
- package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
- package/dist/sensor/spectral-quadrature.js +542 -0
- package/dist/sensor/spectral-quadrature.js.map +1 -0
- package/dist/sensor/spectral-response.d.ts +192 -0
- package/dist/sensor/spectral-response.d.ts.map +1 -0
- package/dist/sensor/spectral-response.js +664 -0
- package/dist/sensor/spectral-response.js.map +1 -0
- package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
- package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
- package/dist/sensor/temporal-eqe-sum.js +30 -0
- package/dist/sensor/temporal-eqe-sum.js.map +1 -0
- package/dist/sensor/temporal-photo-signal.d.ts +38 -0
- package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
- package/dist/sensor/temporal-photo-signal.js +110 -0
- package/dist/sensor/temporal-photo-signal.js.map +1 -0
- package/dist/sensor/temporal-sample-binding.d.ts +6 -0
- package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
- package/dist/sensor/temporal-sample-binding.js +32 -0
- package/dist/sensor/temporal-sample-binding.js.map +1 -0
- package/dist/simulation/poc-simulation.d.ts.map +1 -1
- package/dist/simulation/poc-simulation.js +34 -11
- package/dist/simulation/poc-simulation.js.map +1 -1
- package/dist/stabilization/camera-shake.d.ts +11 -0
- package/dist/stabilization/camera-shake.d.ts.map +1 -1
- package/dist/stabilization/camera-shake.js +11 -0
- package/dist/stabilization/camera-shake.js.map +1 -1
- package/dist/stabilization/system.d.ts +218 -0
- package/dist/stabilization/system.d.ts.map +1 -0
- package/dist/stabilization/system.js +695 -0
- package/dist/stabilization/system.js.map +1 -0
- package/docs/API_REFERENCE.md +2017 -0
- package/docs/API_STYLE.md +139 -3
- package/docs/ARCHITECTURE.md +134 -24
- package/docs/AUTOMATION_COORDINATION.md +2 -0
- package/docs/CAPTURE_COLOR.md +25 -0
- package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
- package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
- package/docs/CAPTURE_SDR.md +20 -0
- package/docs/DEVELOPERS.md +60 -0
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
- package/docs/EXPORT_ACCEPTANCE.md +133 -0
- package/docs/GENERIC_TIER_PRESETS.md +269 -0
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
- package/docs/IMAGE_FORMATION.md +80 -10
- package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
- package/docs/MOTION_AND_SIGNAL.md +5 -3
- package/docs/NUMERICAL_CORRECTNESS.md +191 -0
- package/docs/PERFORMANCE_BASELINE.md +56 -0
- package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
- package/docs/PHYSICS_FOUNDATION.md +152 -5
- package/docs/POC_API.md +2 -0
- package/docs/POC_PROJECTION_REUSE.md +124 -0
- package/docs/PROCESSED_OUTPUT.md +157 -0
- package/docs/PRODUCTION_COMPOSITION.md +373 -0
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
- package/docs/PROVENANCE.md +4 -0
- package/docs/PSF_FOUNDATION.md +110 -88
- package/docs/RAW_FRAME_ENVELOPE.md +56 -0
- package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
- package/docs/RELEASE_1_0.md +66 -0
- package/docs/RELEASE_1_0_1.md +61 -0
- package/docs/RELEASE_AUDIT.md +39 -0
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
- package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
- package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
- package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
- package/docs/SDR_RENDERING.md +33 -0
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
- package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
- package/docs/SENSOR_RAW_FRAME.md +20 -0
- package/docs/SENSOR_RAW_PRODUCER.md +77 -0
- package/docs/SIGNAL_CONFORMANCE.md +23 -0
- package/docs/SIMULATED_CAPTURE.md +65 -0
- package/docs/STABILIZATION.md +160 -17
- package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
- package/docs/TIER_ACCEPTANCE.md +129 -0
- package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
- package/docs/USAGE.md +5050 -1047
- package/docs/V1_COMPOSITION_MAP.md +123 -0
- package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
- package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
- package/docs/api/camera-equivalent-focal-length.md +53 -0
- package/docs/api/camera-field-of-view.md +119 -0
- package/docs/api/camera-projected-object-size.md +54 -0
- package/docs/api/capture-capture-export-metadata.md +107 -0
- package/docs/api/capture-environment-raw-producer.md +56 -0
- package/docs/api/capture-focus-control.md +419 -0
- package/docs/api/capture-linear-encoding.md +99 -0
- package/docs/api/capture-photographic-export.md +172 -0
- package/docs/api/capture-raw-frame-reconstruction.md +87 -0
- package/docs/api/capture-release-sequence.md +252 -0
- package/docs/api/capture-sensor-raw-frame.md +66 -0
- package/docs/api/capture-sensor-raw-producer.md +98 -0
- package/docs/api/capture-simulated-capture.md +179 -0
- package/docs/api/color-capture-color.md +122 -0
- package/docs/api/color-white-balance.md +386 -0
- package/docs/api/composition-image-formation-plan.md +825 -0
- package/docs/api/composition-plan-consumer.md +98 -0
- package/docs/api/core-calculation-result.md +220 -0
- package/docs/api/core-configuration-error.md +19 -0
- package/docs/api/core-image-formation.md +204 -0
- package/docs/api/core-scientific-assurance.md +214 -0
- package/docs/api/core-spectral-composition.md +268 -0
- package/docs/api/core-spectral.md +78 -0
- package/docs/api/core-validation.md +34 -0
- package/docs/api/core-version.md +14 -0
- package/docs/api/equipment-exposure-capabilities.md +270 -0
- package/docs/api/equipment-generic-tier-assets.md +82 -0
- package/docs/api/equipment-generic-tier-presets.md +103 -0
- package/docs/api/equipment-iso-capabilities.md +295 -0
- package/docs/api/equipment-metering-capabilities.md +126 -0
- package/docs/api/equipment-release-capabilities.md +91 -0
- package/docs/api/exports.json +5656 -0
- package/docs/api/exposure-exposure-duration-control.md +115 -0
- package/docs/api/exposure-exposure-mode-resolver.md +966 -0
- package/docs/api/exposure-exposure.md +150 -0
- package/docs/api/exposure-flash.md +327 -0
- package/docs/api/exposure-metering-scene-radiance.md +154 -0
- package/docs/api/exposure-metering-target.md +134 -0
- package/docs/api/exposure-metering-temporal.md +77 -0
- package/docs/api/exposure-metering.md +172 -0
- package/docs/api/exposure-program-line.md +64 -0
- package/docs/api/motion-camera-rotation.md +215 -0
- package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
- package/docs/api/motion-capture-rotation-trajectory.md +132 -0
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
- package/docs/api/motion-extended-object-projection.md +312 -0
- package/docs/api/motion-projected-motion.md +60 -0
- package/docs/api/optics-aperture.md +69 -0
- package/docs/api/optics-circle-of-confusion.md +46 -0
- package/docs/api/optics-complex-pupil-psf.md +193 -0
- package/docs/api/optics-depth-of-field.md +92 -0
- package/docs/api/optics-diffraction.md +46 -0
- package/docs/api/optics-focus-breathing.md +119 -0
- package/docs/api/optics-focus-state.md +64 -0
- package/docs/api/optics-front-of-lens-filter.md +263 -0
- package/docs/api/optics-illumination-vignetting.md +95 -0
- package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
- package/docs/api/optics-lens-psf-profile.md +380 -0
- package/docs/api/optics-polygon-diffraction.md +68 -0
- package/docs/api/optics-profile-contract.md +47 -0
- package/docs/api/optics-psf-foundation.md +181 -0
- package/docs/api/optics-radial-distortion.md +194 -0
- package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
- package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
- package/docs/api/optics-sensor-environment-query.md +58 -0
- package/docs/api/optics-sensor-psf-quadrature.md +81 -0
- package/docs/api/optics-stray-light.md +109 -0
- package/docs/api/optics-thin-lens.md +53 -0
- package/docs/api/output-capture-corrected-sdr.md +71 -0
- package/docs/api/output-capture-geometry.md +500 -0
- package/docs/api/output-capture-sdr.md +69 -0
- package/docs/api/output-crop.md +47 -0
- package/docs/api/output-geometric-transforms.md +199 -0
- package/docs/api/output-lens-corrections.md +162 -0
- package/docs/api/output-sdr-rendering.md +122 -0
- package/docs/api/output-subject-framing-crop.md +59 -0
- package/docs/api/schema-camera.md +84 -0
- package/docs/api/schema-illumination-spectral.md +77 -0
- package/docs/api/schema-illumination-temporal.md +289 -0
- package/docs/api/schema-illumination.md +246 -0
- package/docs/api/schema-scene-radiance-temporal.md +215 -0
- package/docs/api/schema-scene-radiance.md +415 -0
- package/docs/api/schema-scene.md +105 -0
- package/docs/api/schema-validation.md +25 -0
- package/docs/api/sensor-accumulated-charge.md +273 -0
- package/docs/api/sensor-architecture.md +155 -0
- package/docs/api/sensor-camera-saturation-capacity.md +215 -0
- package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
- package/docs/api/sensor-capture-mode-timing.md +123 -0
- package/docs/api/sensor-capture-mode.md +321 -0
- package/docs/api/sensor-color-sampling.md +228 -0
- package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
- package/docs/api/sensor-dark-current.md +227 -0
- package/docs/api/sensor-environment-photo-signal.md +77 -0
- package/docs/api/sensor-eqe-electron-rate.md +166 -0
- package/docs/api/sensor-eqe-local-exposure.md +68 -0
- package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
- package/docs/api/sensor-exposure-window.md +183 -0
- package/docs/api/sensor-iso-signal-chain.md +264 -0
- package/docs/api/sensor-local-exposure-binding.md +126 -0
- package/docs/api/sensor-optical-stack.md +211 -0
- package/docs/api/sensor-photon-energy.md +149 -0
- package/docs/api/sensor-physical-charge-capacity.md +196 -0
- package/docs/api/sensor-pixel-pitch.md +41 -0
- package/docs/api/sensor-radiometry-readiness.md +240 -0
- package/docs/api/sensor-raw-readout.md +499 -0
- package/docs/api/sensor-raw-reconstruction.md +260 -0
- package/docs/api/sensor-readout-exposure-linkage.md +172 -0
- package/docs/api/sensor-readout-timing.md +209 -0
- package/docs/api/sensor-response-application-compatibility.md +256 -0
- package/docs/api/sensor-response-operating-range.md +293 -0
- package/docs/api/sensor-responsivity-photocurrent.md +245 -0
- package/docs/api/sensor-sampling-aperture.md +221 -0
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
- package/docs/api/sensor-sensor-geometry.md +143 -0
- package/docs/api/sensor-signal-noise.md +75 -0
- package/docs/api/sensor-spatial-sample-reduction.md +186 -0
- package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
- package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
- package/docs/api/sensor-spectral-coverage.md +33 -0
- package/docs/api/sensor-spectral-quadrature.md +183 -0
- package/docs/api/sensor-spectral-response.md +291 -0
- package/docs/api/sensor-temporal-photo-signal.md +62 -0
- package/docs/api/simulation-poc-simulation.md +364 -0
- package/docs/api/stabilization-camera-shake.md +71 -0
- package/docs/api/stabilization-system.md +442 -0
- package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
- package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
- package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
- package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
- package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
- package/docs/examples/production-capture.mjs +34 -0
- package/docs/examples/production-request.json +4613 -0
- package/docs/examples/quick-start.mjs +12 -0
- package/docs/validation/documentation-fragments.json +212 -0
- package/docs/validation/release-audit-inventory.json +1306 -0
- package/docs/validation/tier-acceptance-report-v1.json +2538 -0
- package/package.json +15 -3
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Module boundary and integration notes.
|
|
4
|
+
* Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
5
|
+
* missing required fields and incompatible scientific data fail at this boundary. Photon energy uses
|
|
6
|
+
* exact SI h and c with vacuum wavelength. Air wavelength requires an exact-wavelength sourced phase
|
|
7
|
+
* index and atmosphere compatibility; lambdaVacuum = n*lambdaAir. Retained refractive-index
|
|
8
|
+
* uncertainty is not an automatically propagated photon-energy uncertainty.
|
|
9
|
+
* Convert a valid vacuum wavelength, or explicitly atmosphere-bound air wavelength, into optical
|
|
10
|
+
* frequency and photon energy using exact SI constants. Photon energy uses exact SI h and c with
|
|
11
|
+
* vacuum wavelength. Air wavelength requires an exact-wavelength sourced phase index and atmosphere
|
|
12
|
+
* compatibility; lambdaVacuum = n*lambdaAir. Retained refractive-index uncertainty is not an
|
|
13
|
+
* automatically propagated photon-energy uncertainty.
|
|
14
|
+
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
15
|
+
* limits.
|
|
16
|
+
*/
|
|
17
|
+
import { calculatedResult } from "../core/calculation-result.js";
|
|
18
|
+
import { InvalidConfigurationError } from "../core/configuration-error.js";
|
|
19
|
+
import { parseEvidenceList } from "../core/evidence-provenance.js";
|
|
20
|
+
import { InvalidScientificInputError } from "../core/validation.js";
|
|
21
|
+
const PLANCK_CONSTANT_JOULE_SECONDS = 6.62607015e-34;
|
|
22
|
+
const SPEED_OF_LIGHT_METERS_PER_SECOND = 299_792_458;
|
|
23
|
+
const NANOMETERS_TO_METERS = 1e-9;
|
|
24
|
+
function requireRecord(value, path) {
|
|
25
|
+
if (typeof value !== "object" ||
|
|
26
|
+
value === null ||
|
|
27
|
+
Array.isArray(value)) {
|
|
28
|
+
throw new InvalidConfigurationError(path + " must be an object.");
|
|
29
|
+
}
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
function requireFinite(value, path) {
|
|
33
|
+
if (typeof value !== "number" ||
|
|
34
|
+
!Number.isFinite(value)) {
|
|
35
|
+
throw new InvalidConfigurationError(path + " must be finite.");
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
function requirePositiveFinite(value, path) {
|
|
40
|
+
const parsed = requireFinite(value, path);
|
|
41
|
+
if (parsed <= 0) {
|
|
42
|
+
throw new InvalidConfigurationError(path +
|
|
43
|
+
" must be greater than zero.");
|
|
44
|
+
}
|
|
45
|
+
return parsed;
|
|
46
|
+
}
|
|
47
|
+
function requireFraction(value, path) {
|
|
48
|
+
const parsed = requireFinite(value, path);
|
|
49
|
+
if (parsed < 0 || parsed > 1) {
|
|
50
|
+
throw new InvalidConfigurationError(path +
|
|
51
|
+
" must be a fraction from 0 through 1.");
|
|
52
|
+
}
|
|
53
|
+
return parsed;
|
|
54
|
+
}
|
|
55
|
+
function parseUncertainty(value, path) {
|
|
56
|
+
const record = requireRecord(value, path);
|
|
57
|
+
if (record.kind === "relative") {
|
|
58
|
+
const fraction = requireFinite(record.fraction, path + ".fraction");
|
|
59
|
+
if (fraction < 0) {
|
|
60
|
+
throw new InvalidConfigurationError(path +
|
|
61
|
+
".fraction must be greater than or equal to zero.");
|
|
62
|
+
}
|
|
63
|
+
if (typeof record.basis !== "string" ||
|
|
64
|
+
record.basis.trim().length === 0) {
|
|
65
|
+
throw new InvalidConfigurationError(path +
|
|
66
|
+
".basis must be a non-empty string.");
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
kind: "relative",
|
|
70
|
+
fraction,
|
|
71
|
+
basis: record.basis
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (record.kind === "not-quantified") {
|
|
75
|
+
if (typeof record.limitation !==
|
|
76
|
+
"string" ||
|
|
77
|
+
record.limitation.trim().length ===
|
|
78
|
+
0) {
|
|
79
|
+
throw new InvalidConfigurationError(path +
|
|
80
|
+
".limitation must be a non-empty string.");
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
kind: "not-quantified",
|
|
84
|
+
limitation: record.limitation
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
throw new InvalidConfigurationError(path + ".kind is invalid.");
|
|
88
|
+
}
|
|
89
|
+
function parseReferenceConditions(value, path) {
|
|
90
|
+
const record = requireRecord(value, path);
|
|
91
|
+
const temperatureC = requireFinite(record.temperatureC, path + ".temperatureC");
|
|
92
|
+
const pressurePascal = requirePositiveFinite(record.pressurePascal, path + ".pressurePascal");
|
|
93
|
+
const relativeHumidityFraction = record.relativeHumidityFraction ===
|
|
94
|
+
undefined
|
|
95
|
+
? undefined
|
|
96
|
+
: requireFraction(record.relativeHumidityFraction, path +
|
|
97
|
+
".relativeHumidityFraction");
|
|
98
|
+
const carbonDioxideMoleFraction = record.carbonDioxideMoleFraction ===
|
|
99
|
+
undefined
|
|
100
|
+
? undefined
|
|
101
|
+
: requireFraction(record.carbonDioxideMoleFraction, path +
|
|
102
|
+
".carbonDioxideMoleFraction");
|
|
103
|
+
return {
|
|
104
|
+
temperatureC,
|
|
105
|
+
pressurePascal,
|
|
106
|
+
...(relativeHumidityFraction ===
|
|
107
|
+
undefined
|
|
108
|
+
? {}
|
|
109
|
+
: {
|
|
110
|
+
relativeHumidityFraction
|
|
111
|
+
}),
|
|
112
|
+
...(carbonDioxideMoleFraction ===
|
|
113
|
+
undefined
|
|
114
|
+
? {}
|
|
115
|
+
: {
|
|
116
|
+
carbonDioxideMoleFraction
|
|
117
|
+
})
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function parseConditionPolicy(value) {
|
|
121
|
+
const record = requireRecord(value, "airConditionPolicy");
|
|
122
|
+
if (record.kind === "exact-match-required") {
|
|
123
|
+
return {
|
|
124
|
+
kind: "exact-match-required"
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
if (record.kind === "assume-compatible") {
|
|
128
|
+
if (typeof record.limitation !==
|
|
129
|
+
"string" ||
|
|
130
|
+
record.limitation.trim().length ===
|
|
131
|
+
0) {
|
|
132
|
+
throw new InvalidConfigurationError("airConditionPolicy.limitation must be a non-empty string.");
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
kind: "assume-compatible",
|
|
136
|
+
limitation: record.limitation,
|
|
137
|
+
evidence: parseEvidenceList(record.evidence, "airConditionPolicy.evidence")
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
throw new InvalidConfigurationError("airConditionPolicy.kind is invalid.");
|
|
141
|
+
}
|
|
142
|
+
function conditionsMatch(reference, operating) {
|
|
143
|
+
if (reference.temperatureC !==
|
|
144
|
+
operating.temperatureC ||
|
|
145
|
+
reference.pressurePascal !==
|
|
146
|
+
operating.pressurePascal) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
if (reference.relativeHumidityFraction !==
|
|
150
|
+
undefined &&
|
|
151
|
+
reference.relativeHumidityFraction !==
|
|
152
|
+
operating.relativeHumidityFraction) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
if (reference.carbonDioxideMoleFraction !==
|
|
156
|
+
undefined &&
|
|
157
|
+
reference.carbonDioxideMoleFraction !==
|
|
158
|
+
operating.carbonDioxideMoleFraction) {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
165
|
+
* missing required fields and incompatible scientific data fail at this boundary.
|
|
166
|
+
*
|
|
167
|
+
* Photon energy uses exact SI h and c with vacuum wavelength. Air wavelength requires an
|
|
168
|
+
* exact-wavelength sourced phase index and atmosphere compatibility; lambdaVacuum = n*lambdaAir.
|
|
169
|
+
* Retained refractive-index uncertainty is not an automatically propagated photon-energy uncertainty.
|
|
170
|
+
* @param value - unknown. Treated as untrusted data; static typing alone is not validation.
|
|
171
|
+
* @returns SourcedAirPhaseRefractiveIndex. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
172
|
+
*
|
|
173
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
174
|
+
*/
|
|
175
|
+
export function parseSourcedAirPhaseRefractiveIndex(value) {
|
|
176
|
+
const record = requireRecord(value, "airPhaseRefractiveIndex");
|
|
177
|
+
if (record.wavelengthBasis !== "air") {
|
|
178
|
+
throw new InvalidConfigurationError('airPhaseRefractiveIndex.wavelengthBasis must be "air".');
|
|
179
|
+
}
|
|
180
|
+
if (record.definition !==
|
|
181
|
+
"vacuum-wavelength-divided-by-air-wavelength") {
|
|
182
|
+
throw new InvalidConfigurationError("airPhaseRefractiveIndex.definition is invalid.");
|
|
183
|
+
}
|
|
184
|
+
if (record.scientificStatus !==
|
|
185
|
+
"calibrated" &&
|
|
186
|
+
record.scientificStatus !==
|
|
187
|
+
"approximation") {
|
|
188
|
+
throw new InvalidConfigurationError("airPhaseRefractiveIndex.scientificStatus is invalid.");
|
|
189
|
+
}
|
|
190
|
+
const uncertainty = parseUncertainty(record.uncertainty, "airPhaseRefractiveIndex.uncertainty");
|
|
191
|
+
const referenceConditions = record.referenceConditions ===
|
|
192
|
+
undefined
|
|
193
|
+
? undefined
|
|
194
|
+
: parseReferenceConditions(record.referenceConditions, "airPhaseRefractiveIndex.referenceConditions");
|
|
195
|
+
if (record.scientificStatus ===
|
|
196
|
+
"calibrated" &&
|
|
197
|
+
uncertainty.kind ===
|
|
198
|
+
"not-quantified") {
|
|
199
|
+
throw new InvalidConfigurationError("A calibrated air phase refractive index must declare quantified relative uncertainty.");
|
|
200
|
+
}
|
|
201
|
+
if (record.scientificStatus ===
|
|
202
|
+
"calibrated" &&
|
|
203
|
+
referenceConditions === undefined) {
|
|
204
|
+
throw new InvalidConfigurationError("A calibrated air phase refractive index must declare temperature and pressure reference conditions.");
|
|
205
|
+
}
|
|
206
|
+
return {
|
|
207
|
+
wavelengthNanometers: requirePositiveFinite(record.wavelengthNanometers, "airPhaseRefractiveIndex.wavelengthNanometers"),
|
|
208
|
+
wavelengthBasis: "air",
|
|
209
|
+
definition: "vacuum-wavelength-divided-by-air-wavelength",
|
|
210
|
+
phaseRefractiveIndex: requirePositiveFinite(record.phaseRefractiveIndex, "airPhaseRefractiveIndex.phaseRefractiveIndex"),
|
|
211
|
+
scientificStatus: record.scientificStatus,
|
|
212
|
+
uncertainty,
|
|
213
|
+
evidence: parseEvidenceList(record.evidence, "airPhaseRefractiveIndex.evidence"),
|
|
214
|
+
...(referenceConditions ===
|
|
215
|
+
undefined
|
|
216
|
+
? {}
|
|
217
|
+
: { referenceConditions })
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Convert a valid vacuum wavelength, or explicitly atmosphere-bound air wavelength, into optical
|
|
222
|
+
* frequency and photon energy using exact SI constants.
|
|
223
|
+
*
|
|
224
|
+
* Photon energy uses exact SI h and c with vacuum wavelength. Air wavelength requires an
|
|
225
|
+
* exact-wavelength sourced phase index and atmosphere compatibility; lambdaVacuum = n*lambdaAir.
|
|
226
|
+
* Retained refractive-index uncertainty is not an automatically propagated photon-energy uncertainty.
|
|
227
|
+
* @param input - CalculatePhotonEnergyFromWavelengthInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
228
|
+
* @returns CalculationResult<PhotonEnergyFromWavelength>. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
229
|
+
*
|
|
230
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
231
|
+
*/
|
|
232
|
+
export function calculatePhotonEnergyFromWavelength(input) {
|
|
233
|
+
const wavelengthNanometers = requirePositiveFinite(input.wavelengthNanometers, "wavelengthNanometers");
|
|
234
|
+
if (input.wavelengthBasis ===
|
|
235
|
+
"unspecified") {
|
|
236
|
+
throw new InvalidScientificInputError("wavelengthBasis must be resolved to air or vacuum before photon-energy calculation.");
|
|
237
|
+
}
|
|
238
|
+
if (input.wavelengthBasis !== "air" &&
|
|
239
|
+
input.wavelengthBasis !== "vacuum") {
|
|
240
|
+
throw new InvalidScientificInputError("wavelengthBasis is invalid.");
|
|
241
|
+
}
|
|
242
|
+
let vacuumWavelengthNanometers;
|
|
243
|
+
let wavelengthConversion;
|
|
244
|
+
let parsedAir;
|
|
245
|
+
let parsedConditionPolicy;
|
|
246
|
+
let parsedOperatingConditions;
|
|
247
|
+
let airConditionCompatibility;
|
|
248
|
+
if (input.wavelengthBasis ===
|
|
249
|
+
"vacuum") {
|
|
250
|
+
if (input.airPhaseRefractiveIndex !==
|
|
251
|
+
undefined ||
|
|
252
|
+
input.airOperatingConditions !==
|
|
253
|
+
undefined ||
|
|
254
|
+
input.airConditionPolicy !==
|
|
255
|
+
undefined) {
|
|
256
|
+
throw new InvalidScientificInputError("Air refractive-index inputs must be omitted for vacuum-basis wavelengths.");
|
|
257
|
+
}
|
|
258
|
+
vacuumWavelengthNanometers =
|
|
259
|
+
wavelengthNanometers;
|
|
260
|
+
wavelengthConversion =
|
|
261
|
+
"vacuum-identity";
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
if (input.airPhaseRefractiveIndex ===
|
|
265
|
+
undefined) {
|
|
266
|
+
throw new InvalidScientificInputError("airPhaseRefractiveIndex is required for air-basis photon-energy calculation.");
|
|
267
|
+
}
|
|
268
|
+
parsedAir =
|
|
269
|
+
parseSourcedAirPhaseRefractiveIndex(input.airPhaseRefractiveIndex);
|
|
270
|
+
if (parsedAir.wavelengthNanometers !==
|
|
271
|
+
wavelengthNanometers) {
|
|
272
|
+
throw new InvalidScientificInputError("airPhaseRefractiveIndex wavelength must exactly match wavelengthNanometers.");
|
|
273
|
+
}
|
|
274
|
+
if (input.airConditionPolicy ===
|
|
275
|
+
undefined) {
|
|
276
|
+
throw new InvalidScientificInputError("airConditionPolicy is required for air-basis photon-energy calculation.");
|
|
277
|
+
}
|
|
278
|
+
parsedConditionPolicy =
|
|
279
|
+
parseConditionPolicy(input.airConditionPolicy);
|
|
280
|
+
if (parsedConditionPolicy.kind ===
|
|
281
|
+
"exact-match-required") {
|
|
282
|
+
if (parsedAir.referenceConditions ===
|
|
283
|
+
undefined) {
|
|
284
|
+
throw new InvalidScientificInputError("Exact air-condition matching requires refractive-index reference conditions.");
|
|
285
|
+
}
|
|
286
|
+
if (input.airOperatingConditions ===
|
|
287
|
+
undefined) {
|
|
288
|
+
throw new InvalidScientificInputError("airOperatingConditions is required when exact air-condition matching is selected.");
|
|
289
|
+
}
|
|
290
|
+
parsedOperatingConditions =
|
|
291
|
+
parseReferenceConditions(input.airOperatingConditions, "airOperatingConditions");
|
|
292
|
+
if (!conditionsMatch(parsedAir.referenceConditions, parsedOperatingConditions)) {
|
|
293
|
+
throw new InvalidScientificInputError("airOperatingConditions must match the refractive-index reference conditions.");
|
|
294
|
+
}
|
|
295
|
+
airConditionCompatibility =
|
|
296
|
+
"exact-match";
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
parsedOperatingConditions =
|
|
300
|
+
input.airOperatingConditions ===
|
|
301
|
+
undefined
|
|
302
|
+
? undefined
|
|
303
|
+
: parseReferenceConditions(input.airOperatingConditions, "airOperatingConditions");
|
|
304
|
+
airConditionCompatibility =
|
|
305
|
+
"assumed-compatible";
|
|
306
|
+
}
|
|
307
|
+
vacuumWavelengthNanometers =
|
|
308
|
+
wavelengthNanometers *
|
|
309
|
+
parsedAir.phaseRefractiveIndex;
|
|
310
|
+
wavelengthConversion =
|
|
311
|
+
"air-to-vacuum-via-phase-refractive-index";
|
|
312
|
+
}
|
|
313
|
+
const vacuumWavelengthMeters = vacuumWavelengthNanometers *
|
|
314
|
+
NANOMETERS_TO_METERS;
|
|
315
|
+
const frequencyHertz = SPEED_OF_LIGHT_METERS_PER_SECOND /
|
|
316
|
+
vacuumWavelengthMeters;
|
|
317
|
+
const photonEnergyJoules = PLANCK_CONSTANT_JOULE_SECONDS *
|
|
318
|
+
frequencyHertz;
|
|
319
|
+
if (!Number.isFinite(vacuumWavelengthNanometers) ||
|
|
320
|
+
!Number.isFinite(frequencyHertz) ||
|
|
321
|
+
!Number.isFinite(photonEnergyJoules)) {
|
|
322
|
+
throw new InvalidScientificInputError("Photon-energy calculation must remain finite.");
|
|
323
|
+
}
|
|
324
|
+
return calculatedResult({
|
|
325
|
+
inputWavelengthNanometers: wavelengthNanometers,
|
|
326
|
+
inputWavelengthBasis: input.wavelengthBasis,
|
|
327
|
+
vacuumWavelengthNanometers,
|
|
328
|
+
frequencyHertz,
|
|
329
|
+
photonEnergyJoules,
|
|
330
|
+
wavelengthConversion,
|
|
331
|
+
exactSiConstants: {
|
|
332
|
+
planckConstantJouleSeconds: PLANCK_CONSTANT_JOULE_SECONDS,
|
|
333
|
+
speedOfLightMetersPerSecond: SPEED_OF_LIGHT_METERS_PER_SECOND
|
|
334
|
+
},
|
|
335
|
+
...(parsedAir === undefined
|
|
336
|
+
? {}
|
|
337
|
+
: {
|
|
338
|
+
phaseRefractiveIndexUsed: parsedAir
|
|
339
|
+
.phaseRefractiveIndex,
|
|
340
|
+
airRefractiveIndexScientificStatus: parsedAir
|
|
341
|
+
.scientificStatus,
|
|
342
|
+
airRefractiveIndexUncertainty: parsedAir.uncertainty,
|
|
343
|
+
...(parsedAir
|
|
344
|
+
.referenceConditions ===
|
|
345
|
+
undefined
|
|
346
|
+
? {}
|
|
347
|
+
: {
|
|
348
|
+
airRefractiveIndexReferenceConditions: parsedAir
|
|
349
|
+
.referenceConditions
|
|
350
|
+
}),
|
|
351
|
+
airRefractiveIndexEvidence: parsedAir.evidence,
|
|
352
|
+
...(parsedOperatingConditions ===
|
|
353
|
+
undefined
|
|
354
|
+
? {}
|
|
355
|
+
: {
|
|
356
|
+
airOperatingConditions: parsedOperatingConditions
|
|
357
|
+
}),
|
|
358
|
+
...(parsedConditionPolicy ===
|
|
359
|
+
undefined
|
|
360
|
+
? {}
|
|
361
|
+
: {
|
|
362
|
+
airConditionPolicy: parsedConditionPolicy
|
|
363
|
+
}),
|
|
364
|
+
...(airConditionCompatibility ===
|
|
365
|
+
undefined
|
|
366
|
+
? {}
|
|
367
|
+
: {
|
|
368
|
+
airConditionCompatibility
|
|
369
|
+
}),
|
|
370
|
+
...(parsedConditionPolicy?.kind ===
|
|
371
|
+
"assume-compatible"
|
|
372
|
+
? {
|
|
373
|
+
airConditionAssumptionEvidence: parsedConditionPolicy
|
|
374
|
+
.evidence
|
|
375
|
+
}
|
|
376
|
+
: {})
|
|
377
|
+
}),
|
|
378
|
+
inputUncertaintyPropagated: false
|
|
379
|
+
}, "photon-energy-from-spectral-wavelength", "1.0.0", [
|
|
380
|
+
"Planck constant h and vacuum speed of light c use their exact SI defining values.",
|
|
381
|
+
"Photon energy is h times optical frequency; frequency is derived from vacuum wavelength.",
|
|
382
|
+
"Vacuum-basis wavelength requires no refractive-index correction.",
|
|
383
|
+
"Air-basis wavelength is converted with the phase refractive index definition n = lambda_vacuum / lambda_air at the exact requested wavelength.",
|
|
384
|
+
"Air refractive index varies with wavelength and atmospheric conditions; this function never substitutes n = 1.",
|
|
385
|
+
"Air-basis conversion requires either exact matching to the refractive-index reference atmosphere or an explicit evidence-backed compatibility assumption.",
|
|
386
|
+
"Input refractive-index uncertainty is preserved as metadata but is not propagated into photon-energy uncertainty by this foundation.",
|
|
387
|
+
"This calculation does not apply QE, calculate photon rate, generate electrons, integrate exposure time, or model saturation/noise."
|
|
388
|
+
]);
|
|
389
|
+
}
|
|
390
|
+
//# sourceMappingURL=photon-energy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"photon-energy.js","sourceRoot":"","sources":["../../src/sensor/photon-energy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module boundary and integration notes.
|
|
3
|
+
* Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
4
|
+
* missing required fields and incompatible scientific data fail at this boundary. Physical storage
|
|
5
|
+
* capacity is a source-specific total stored-electron limit tied to site, operating state and
|
|
6
|
+
* temperature. The assessment compares complete expected charge; it does not clamp realizations or
|
|
7
|
+
* infer overflow/blooming. Camera saturation and ADC/readout thresholds remain distinct.
|
|
8
|
+
* Compare complete expected stored electrons to the explicitly applicable physical capacity and report
|
|
9
|
+
* expectation-domain headroom without nonlinear storage simulation. Physical storage capacity is a
|
|
10
|
+
* source-specific total stored-electron limit tied to site, operating state and temperature. The
|
|
11
|
+
* assessment compares complete expected charge; it does not clamp realizations or infer
|
|
12
|
+
* overflow/blooming. Camera saturation and ADC/readout thresholds remain distinct.
|
|
13
|
+
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
14
|
+
* limits.
|
|
15
|
+
*/
|
|
16
|
+
import { type CalculationResult } from "../core/calculation-result.js";
|
|
17
|
+
import { type EvidenceProvenance } from "../core/evidence-provenance.js";
|
|
18
|
+
import type { SensorPhotoAccumulatedChargeComposition as SensorAccumulatedChargeComposition } from "./accumulated-charge.js";
|
|
19
|
+
import type { SensorSpectralResponseScientificStatus, SensorSpectralResponseUncertainty } from "./spectral-response.js";
|
|
20
|
+
export type SensorPhysicalChargeCapacitySiteApplicability = {
|
|
21
|
+
kind: "exact-site";
|
|
22
|
+
site: {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
};
|
|
26
|
+
} | {
|
|
27
|
+
kind: "uniform-site-capacity-approximation";
|
|
28
|
+
limitation: string;
|
|
29
|
+
evidence: readonly EvidenceProvenance[];
|
|
30
|
+
};
|
|
31
|
+
export type SensorPhysicalChargeCapacityTemperatureApplicability = {
|
|
32
|
+
kind: "exact-reference-temperature";
|
|
33
|
+
temperatureC: number;
|
|
34
|
+
} | {
|
|
35
|
+
kind: "not-modeled";
|
|
36
|
+
limitation: string;
|
|
37
|
+
evidence: readonly EvidenceProvenance[];
|
|
38
|
+
};
|
|
39
|
+
export interface SensorPhysicalChargeCapacityProfile {
|
|
40
|
+
schemaVersion: "0.1.0";
|
|
41
|
+
profileId: string;
|
|
42
|
+
colorSamplingProfileId: string;
|
|
43
|
+
channelId: string;
|
|
44
|
+
capacityMeaning: "physical-charge-storage-capacity-electrons";
|
|
45
|
+
capacityElectrons: number;
|
|
46
|
+
scientificStatus: SensorSpectralResponseScientificStatus;
|
|
47
|
+
uncertainty: SensorSpectralResponseUncertainty;
|
|
48
|
+
evidence: readonly EvidenceProvenance[];
|
|
49
|
+
siteApplicability: SensorPhysicalChargeCapacitySiteApplicability;
|
|
50
|
+
operatingState: {
|
|
51
|
+
stateId: string;
|
|
52
|
+
evidence: readonly EvidenceProvenance[];
|
|
53
|
+
};
|
|
54
|
+
temperatureApplicability: SensorPhysicalChargeCapacityTemperatureApplicability;
|
|
55
|
+
}
|
|
56
|
+
export interface AssessSensorPhysicalChargeCapacityInput {
|
|
57
|
+
accumulatedCharge: SensorAccumulatedChargeComposition;
|
|
58
|
+
capacityProfile: SensorPhysicalChargeCapacityProfile;
|
|
59
|
+
operatingStateId: string;
|
|
60
|
+
operatingTemperatureC: number;
|
|
61
|
+
}
|
|
62
|
+
export interface SensorPhysicalChargeCapacityAssessment {
|
|
63
|
+
capacityProfileId: string;
|
|
64
|
+
completenessProfileId: string;
|
|
65
|
+
colorSamplingProfileId: string;
|
|
66
|
+
channelId: string;
|
|
67
|
+
site: {
|
|
68
|
+
x: number;
|
|
69
|
+
y: number;
|
|
70
|
+
};
|
|
71
|
+
bindingId: string;
|
|
72
|
+
operatingStateId: string;
|
|
73
|
+
operatingTemperatureC: number;
|
|
74
|
+
capacityMeaning: "physical-charge-storage-capacity-electrons";
|
|
75
|
+
physicalChargeCapacityElectrons: number;
|
|
76
|
+
totalExpectedStoredElectronCount: number;
|
|
77
|
+
expectedChargeToCapacityRatio: number;
|
|
78
|
+
expectedChargeHeadroomElectrons: number;
|
|
79
|
+
expectedChargeCapacityStatus: "below-capacity" | "at-capacity" | "above-capacity";
|
|
80
|
+
expectedChargeExceedsCapacity: boolean;
|
|
81
|
+
physicalChargeCapacityAssessmentPerformed: true;
|
|
82
|
+
assessmentMeaning: "expected-charge-vs-physical-storage-capacity";
|
|
83
|
+
actualStochasticSaturationStateKnown: false;
|
|
84
|
+
stochasticSaturationProbabilityAssessed: false;
|
|
85
|
+
storedChargeAfterPhysicalSaturationCalculated: false;
|
|
86
|
+
overflowChargeCalculated: false;
|
|
87
|
+
bloomingModeled: false;
|
|
88
|
+
clampApplied: false;
|
|
89
|
+
cameraSaturationAssessmentAuthorized: false;
|
|
90
|
+
adcQuantizationApplied: false;
|
|
91
|
+
rawCodeValueProduced: false;
|
|
92
|
+
capacityUncertaintyPropagated: false;
|
|
93
|
+
accumulatedChargeUncertaintyPropagated: false;
|
|
94
|
+
componentEvidence: {
|
|
95
|
+
capacity: readonly EvidenceProvenance[];
|
|
96
|
+
operatingState: readonly EvidenceProvenance[];
|
|
97
|
+
siteApproximation: readonly EvidenceProvenance[];
|
|
98
|
+
temperatureApproximation: readonly EvidenceProvenance[];
|
|
99
|
+
chargeCompleteness: SensorAccumulatedChargeComposition["componentEvidence"]["completeness"];
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
104
|
+
* missing required fields and incompatible scientific data fail at this boundary.
|
|
105
|
+
*
|
|
106
|
+
* Physical storage capacity is a source-specific total stored-electron limit tied to site, operating
|
|
107
|
+
* state and temperature. The assessment compares complete expected charge; it does not clamp
|
|
108
|
+
* realizations or infer overflow/blooming. Camera saturation and ADC/readout thresholds remain
|
|
109
|
+
* distinct.
|
|
110
|
+
* @param value - unknown. Treated as untrusted data; static typing alone is not validation.
|
|
111
|
+
* @returns SensorPhysicalChargeCapacityProfile. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
112
|
+
*
|
|
113
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
114
|
+
*/
|
|
115
|
+
export declare function parseSensorPhysicalChargeCapacityProfile(value: unknown): SensorPhysicalChargeCapacityProfile;
|
|
116
|
+
/**
|
|
117
|
+
* Compare complete expected stored electrons to the explicitly applicable physical capacity and report
|
|
118
|
+
* expectation-domain headroom without nonlinear storage simulation.
|
|
119
|
+
*
|
|
120
|
+
* Physical storage capacity is a source-specific total stored-electron limit tied to site, operating
|
|
121
|
+
* state and temperature. The assessment compares complete expected charge; it does not clamp
|
|
122
|
+
* realizations or infer overflow/blooming. Camera saturation and ADC/readout thresholds remain
|
|
123
|
+
* distinct.
|
|
124
|
+
* @param input - AssessSensorPhysicalChargeCapacityInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
125
|
+
* @returns CalculationResult<SensorPhysicalChargeCapacityAssessment>. Read structured blockers before consuming an authorization.
|
|
126
|
+
*
|
|
127
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
128
|
+
*/
|
|
129
|
+
export declare function assessSensorPhysicalChargeCapacity(input: AssessSensorPhysicalChargeCapacityInput): CalculationResult<SensorPhysicalChargeCapacityAssessment>;
|
|
130
|
+
//# sourceMappingURL=physical-charge-capacity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"physical-charge-capacity.d.ts","sourceRoot":"","sources":["../../src/sensor/physical-charge-capacity.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,uCAAuC,IAAI,kCAAkC,EAC9E,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,sCAAsC,EACtC,iCAAiC,EAClC,MAAM,wBAAwB,CAAC;AAIhC,MAAM,MAAM,6CAA6C,GACrD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE;QACJ,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH,GACD;IACE,IAAI,EACF,qCAAqC,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EACN,SAAS,kBAAkB,EAAE,CAAC;CACjC,CAAC;AAEN,MAAM,MAAM,oDAAoD,GAC5D;IACE,IAAI,EACF,6BAA6B,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EACN,SAAS,kBAAkB,EAAE,CAAC;CACjC,CAAC;AAEN,MAAM,WAAW,mCAAmC;IAClD,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EACb,4CAA4C,CAAC;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EACd,sCAAsC,CAAC;IACzC,WAAW,EACT,iCAAiC,CAAC;IACpC,QAAQ,EACN,SAAS,kBAAkB,EAAE,CAAC;IAChC,iBAAiB,EACf,6CAA6C,CAAC;IAChD,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EACN,SAAS,kBAAkB,EAAE,CAAC;KACjC,CAAC;IACF,wBAAwB,EACtB,oDAAoD,CAAC;CACxD;AAED,MAAM,WAAW,uCAAuC;IACtD,iBAAiB,EACf,kCAAkC,CAAC;IACrC,eAAe,EACb,mCAAmC,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,sCAAsC;IACrD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EACb,4CAA4C,CAAC;IAC/C,+BAA+B,EAC7B,MAAM,CAAC;IACT,gCAAgC,EAC9B,MAAM,CAAC;IACT,6BAA6B,EAC3B,MAAM,CAAC;IACT,+BAA+B,EAC7B,MAAM,CAAC;IACT,4BAA4B,EACxB,gBAAgB,GAChB,aAAa,GACb,gBAAgB,CAAC;IACrB,6BAA6B,EAC3B,OAAO,CAAC;IACV,yCAAyC,EACvC,IAAI,CAAC;IACP,iBAAiB,EACf,8CAA8C,CAAC;IACjD,oCAAoC,EAClC,KAAK,CAAC;IACR,uCAAuC,EACrC,KAAK,CAAC;IACR,6CAA6C,EAC3C,KAAK,CAAC;IACR,wBAAwB,EAAE,KAAK,CAAC;IAChC,eAAe,EAAE,KAAK,CAAC;IACvB,YAAY,EAAE,KAAK,CAAC;IACpB,oCAAoC,EAClC,KAAK,CAAC;IACR,sBAAsB,EAAE,KAAK,CAAC;IAC9B,oBAAoB,EAAE,KAAK,CAAC;IAC5B,6BAA6B,EAC3B,KAAK,CAAC;IACR,sCAAsC,EACpC,KAAK,CAAC;IACR,iBAAiB,EAAE;QACjB,QAAQ,EACN,SAAS,kBAAkB,EAAE,CAAC;QAChC,cAAc,EACZ,SAAS,kBAAkB,EAAE,CAAC;QAChC,iBAAiB,EACf,SAAS,kBAAkB,EAAE,CAAC;QAChC,wBAAwB,EACtB,SAAS,kBAAkB,EAAE,CAAC;QAChC,kBAAkB,EAChB,kCAAkC,CAAC,mBAAmB,CAAC,CAAC,cAAc,CAAC,CAAC;KAC3E,CAAC;CACH;AAsOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,OAAO,GACb,mCAAmC,CAgIrC;AAiCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EACH,uCAAuC,GACxC,iBAAiB,CAAC,sCAAsC,CAAC,CAgM3D"}
|