@photivra/engine 0.5.1 → 1.0.0
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 +218 -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 +157 -56
- 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 +14 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +15 -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 +101 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +99 -7
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +76 -0
- package/dist/motion/camera-rotation.d.ts.map +1 -1
- package/dist/motion/camera-rotation.js +111 -0
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +113 -0
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -0
- package/dist/motion/capture-rotation-inverse-mapping.js +184 -0
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -0
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +104 -0
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -0
- package/dist/motion/capture-rotation-temporal-quadrature.js +131 -0
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -0
- package/dist/motion/capture-rotation-trajectory.d.ts +113 -0
- package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -0
- package/dist/motion/capture-rotation-trajectory.js +168 -0
- package/dist/motion/capture-rotation-trajectory.js.map +1 -0
- 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 +23 -4
- 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 +22 -2
- package/dist/optics/radial-distortion.d.ts.map +1 -1
- package/dist/optics/radial-distortion.js +101 -23
- 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 +32 -11
- 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 +212 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -0
- package/dist/sensor/capture-color-sampling-binding.js +437 -0
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -0
- 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 +157 -0
- package/dist/sensor/capture-mode.d.ts.map +1 -0
- package/dist/sensor/capture-mode.js +447 -0
- package/dist/sensor/capture-mode.js.map +1 -0
- package/dist/sensor/color-sampling.d.ts +133 -0
- package/dist/sensor/color-sampling.d.ts.map +1 -0
- package/dist/sensor/color-sampling.js +245 -0
- package/dist/sensor/color-sampling.js.map +1 -0
- 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 +117 -0
- package/dist/sensor/exposure-window.d.ts.map +1 -0
- package/dist/sensor/exposure-window.js +305 -0
- package/dist/sensor/exposure-window.js.map +1 -0
- 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 +132 -0
- package/dist/sensor/optical-stack.d.ts.map +1 -0
- package/dist/sensor/optical-stack.js +303 -0
- package/dist/sensor/optical-stack.js.map +1 -0
- 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 +123 -0
- package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -0
- package/dist/sensor/readout-exposure-linkage.js +222 -0
- package/dist/sensor/readout-exposure-linkage.js.map +1 -0
- package/dist/sensor/readout-timing.d.ts +137 -0
- package/dist/sensor/readout-timing.d.ts.map +1 -0
- package/dist/sensor/readout-timing.js +243 -0
- package/dist/sensor/readout-timing.js.map +1 -0
- 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 +154 -0
- package/dist/sensor/sampling-aperture.d.ts.map +1 -0
- package/dist/sensor/sampling-aperture.js +388 -0
- package/dist/sensor/sampling-aperture.js.map +1 -0
- 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 +171 -0
- package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -0
- package/dist/sensor/spatial-sample-reduction.js +345 -0
- package/dist/sensor/spatial-sample-reduction.js.map +1 -0
- package/dist/sensor/spatial-sampling-quadrature.d.ts +179 -0
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -0
- package/dist/sensor/spatial-sampling-quadrature.js +224 -0
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -0
- 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 +132 -0
- package/docs/ARCHITECTURE.md +150 -23
- package/docs/AUTOMATION_COORDINATION.md +190 -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 +105 -9
- package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
- package/docs/MOTION_AND_SIGNAL.md +145 -1
- 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 +65 -0
- package/docs/RELEASE_AUDIT.md +38 -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 +5604 -331
- 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 +18 -4
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Module boundary and integration notes.
|
|
4
|
+
* Compose declared scene radiance through paraxial optics and instantaneous EQE at every exact local
|
|
5
|
+
* shutter midpoint. Light is never averaged before response validity. No projection, renderer, PSF,
|
|
6
|
+
* charge/noise or production stage executes.
|
|
7
|
+
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
8
|
+
* limits.
|
|
9
|
+
*/
|
|
10
|
+
import { approximationResult } from "../core/calculation-result.js";
|
|
11
|
+
import { InvalidScientificInputError } from "../core/validation.js";
|
|
12
|
+
import { calculateSceneToSensorIrradianceQuadrature } from "../optics/scene-to-sensor-quadrature.js";
|
|
13
|
+
import { calculateSensorEqeTemporalExposure } from "./eqe-temporal-exposure.js";
|
|
14
|
+
import { calculateSensorSpatialSamplingQuadrature } from "./spatial-sampling-quadrature.js";
|
|
15
|
+
import { calculateSensorSpectralQuadrature } from "./spectral-quadrature.js";
|
|
16
|
+
import { bindSensorTemporalSamples } from "./temporal-sample-binding.js";
|
|
17
|
+
/**
|
|
18
|
+
* Compose declared scene radiance through paraxial optics and instantaneous EQE
|
|
19
|
+
* at every exact local shutter midpoint. Light is never averaged before response
|
|
20
|
+
* validity. No projection, renderer, PSF, charge/noise or production stage executes.
|
|
21
|
+
*/
|
|
22
|
+
export function calculateSceneSensorEqeTemporalExposure(input) {
|
|
23
|
+
if (input.timeReference !== "first-opening-boundary-phase") {
|
|
24
|
+
throw new InvalidScientificInputError("Scene samples must use the explicit first-opening-boundary-phase time reference.");
|
|
25
|
+
}
|
|
26
|
+
if (input.sensor.responseApplication.sourcePlane.value !== "sensor-package-incident") {
|
|
27
|
+
throw new InvalidScientificInputError("Scene optical output requires a sensor-package-incident response application.");
|
|
28
|
+
}
|
|
29
|
+
// Bound total declared work before any per-instant optical calculation.
|
|
30
|
+
const ordered = bindSensorTemporalSamples(input.samples, sample => sample.sceneSamples);
|
|
31
|
+
const spatialQuadrature = calculateSensorSpatialSamplingQuadrature({ ...input.sensor.spatialSampling,
|
|
32
|
+
colorSamplingProfile: input.sensor.colorSamplingProfile,
|
|
33
|
+
colorSamplingBindingProfile: input.sensor.localExposure.bindingProfile,
|
|
34
|
+
nativeRaster: input.sensor.localExposure.exposureWindowInput.nativeRaster }).value;
|
|
35
|
+
const spectralQuadrature = calculateSensorSpectralQuadrature({ ...input.sensor.spectralSampling,
|
|
36
|
+
colorSamplingProfile: input.sensor.colorSamplingProfile,
|
|
37
|
+
spectralResponseProfile: input.sensor.spectralResponseProfile }).value;
|
|
38
|
+
const sampleIds = new Set();
|
|
39
|
+
const opticalSamples = ordered.map(sample => {
|
|
40
|
+
const optics = calculateSceneToSensorIrradianceQuadrature({ spatialQuadrature, spectralQuadrature,
|
|
41
|
+
sceneBindings: input.sceneBindings, optics: input.optics,
|
|
42
|
+
timeSecondsFromExposureStart: sample.timeSecondsFromOpeningReference, samples: sample.sceneSamples });
|
|
43
|
+
for (const node of optics.value.samples) {
|
|
44
|
+
if (sampleIds.has(node.request.sampleId)) {
|
|
45
|
+
throw new InvalidScientificInputError("Scene sampleId must be unique across the complete temporal quadrature.");
|
|
46
|
+
}
|
|
47
|
+
sampleIds.add(node.request.sampleId);
|
|
48
|
+
}
|
|
49
|
+
return { temporalSampleIndex: sample.temporalSampleIndex,
|
|
50
|
+
timeSecondsFromOpeningReference: sample.timeSecondsFromOpeningReference, optics };
|
|
51
|
+
});
|
|
52
|
+
const exposure = calculateSensorEqeTemporalExposure({ ...input.sensor,
|
|
53
|
+
samples: opticalSamples.map(sample => ({ temporalSampleIndex: sample.temporalSampleIndex,
|
|
54
|
+
timeSecondsFromOpeningReference: sample.timeSecondsFromOpeningReference,
|
|
55
|
+
irradianceSamples: sample.optics.value.irradianceSamples })) });
|
|
56
|
+
return approximationResult({ sourcePlane: "sensor-package-incident", sourceTargetProjectionVerified: false,
|
|
57
|
+
sceneProviderExecutionVerified: false, psfRedistributionApplied: false, opticalSamples, exposure
|
|
58
|
+
}, "scene-sensor-eqe-temporal-exposure", "0.1.0", [
|
|
59
|
+
"Scene targets, visibility and provider transport remain declared; projection and PSF execution are not verified.",
|
|
60
|
+
"Paraxial optical irradiance and EQE validity are evaluated independently at each local shutter midpoint.",
|
|
61
|
+
"Child uncertainties are not combined; no quadrature convergence bound or production activation is asserted."
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=scene-eqe-temporal-exposure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-eqe-temporal-exposure.js","sourceRoot":"","sources":["../../src/sensor/scene-eqe-temporal-exposure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module boundary and integration notes.
|
|
3
|
+
* Calculates physical imaging-area metrics independently from native raster density. Crop factor uses
|
|
4
|
+
* the diagonal ratio to a 36 × 24 mm reference frame. Digital/output crops are not part of this
|
|
5
|
+
* physical imaging-area quantity.
|
|
6
|
+
* Calculates physical imaging-area, native-raster, and geometric sampling metrics without coupling
|
|
7
|
+
* sensor size to resolution. The supplied raster is assumed to span the supplied imaging area. Derived
|
|
8
|
+
* sampling pitch is geometric sample spacing only and must not be interpreted as photosite fill factor
|
|
9
|
+
* or photon-collection area.
|
|
10
|
+
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
11
|
+
* limits.
|
|
12
|
+
*/
|
|
1
13
|
import { type CalculationResult } from "../core/calculation-result.js";
|
|
2
14
|
/**
|
|
3
15
|
* Physical photosensitive imaging area used for image formation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensor-geometry.d.ts","sourceRoot":"","sources":["../../src/sensor/sensor-geometry.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAcvC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mCAAmC;IAClD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,EAAE;QACZ,uDAAuD;QACvD,iBAAiB,EAAE,MAAM,CAAC;QAC1B,uDAAuD;QACvD,UAAU,EAAE,MAAM,CAAC;QACnB,2DAA2D;QAC3D,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACR;;;;WAIG;QACH,iBAAiB,EAAE,MAAM,CAAC;QAC1B;;;;WAIG;QACH,iBAAiB,EAAE,MAAM,CAAC;QAC1B,oEAAoE;QACpE,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,iBAAiB,GAC7B,iBAAiB,CAAC,kBAAkB,CAAC,CAmBvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,mCAAmC,GACzC,iBAAiB,CAAC,qBAAqB,CAAC,CAmD1C"}
|
|
1
|
+
{"version":3,"file":"sensor-geometry.d.ts","sourceRoot":"","sources":["../../src/sensor/sensor-geometry.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAcvC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mCAAmC;IAClD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,EAAE;QACZ,uDAAuD;QACvD,iBAAiB,EAAE,MAAM,CAAC;QAC1B,uDAAuD;QACvD,UAAU,EAAE,MAAM,CAAC;QACnB,2DAA2D;QAC3D,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACR;;;;WAIG;QACH,iBAAiB,EAAE,MAAM,CAAC;QAC1B;;;;WAIG;QACH,iBAAiB,EAAE,MAAM,CAAC;QAC1B,oEAAoE;QACpE,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,iBAAiB,GAC7B,iBAAiB,CAAC,kBAAkB,CAAC,CAmBvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,mCAAmC,GACzC,iBAAiB,CAAC,qBAAqB,CAAC,CAmD1C"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Module boundary and integration notes.
|
|
4
|
+
* Calculates physical imaging-area metrics independently from native raster density. Crop factor uses
|
|
5
|
+
* the diagonal ratio to a 36 × 24 mm reference frame. Digital/output crops are not part of this
|
|
6
|
+
* physical imaging-area quantity.
|
|
7
|
+
* Calculates physical imaging-area, native-raster, and geometric sampling metrics without coupling
|
|
8
|
+
* sensor size to resolution. The supplied raster is assumed to span the supplied imaging area. Derived
|
|
9
|
+
* sampling pitch is geometric sample spacing only and must not be interpreted as photosite fill factor
|
|
10
|
+
* or photon-collection area.
|
|
11
|
+
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
12
|
+
* limits.
|
|
13
|
+
*/
|
|
2
14
|
import { calculatedResult } from "../core/calculation-result.js";
|
|
3
15
|
import { InvalidScientificInputError, requirePositiveFinite, requirePositiveInteger } from "../core/validation.js";
|
|
4
16
|
const REFERENCE_35MM_WIDTH_MM = 36;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensor-geometry.js","sourceRoot":"","sources":["../../src/sensor/sensor-geometry.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EACL,gBAAgB,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAC3C,uBAAuB,EACvB,wBAAwB,CACzB,CAAC;AAkFF;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CACzC,WAA8B;IAE9B,qBAAqB,CAAC,qBAAqB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClE,qBAAqB,CAAC,sBAAsB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEzE,OAAO,gBAAgB,CACrB;QACE,UAAU;QACV,WAAW,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,QAAQ;QACvD,cAAc,EAAE,0BAA0B,GAAG,UAAU;KACxD,EACD,qBAAqB,EACrB,OAAO,EACP;QACE,wEAAwE;QACxE,6EAA6E;KAC9E,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAA0C;IAE1C,qBAAqB,CAAC,qBAAqB,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxE,qBAAqB,CAAC,sBAAsB,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1E,sBAAsB,CACpB,yBAAyB,EACzB,KAAK,CAAC,YAAY,CAAC,UAAU,CAC9B,CAAC;IACF,sBAAsB,CACpB,0BAA0B,EAC1B,KAAK,CAAC,YAAY,CAAC,WAAW,CAC/B,CAAC;IAEF,MAAM,iBAAiB,GACrB,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,2BAA2B,CACnC,wEAAwE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,2BAA2B,CACpD,KAAK,CAAC,WAAW,CAClB,CAAC,KAAK,CAAC;IACR,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACrE,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAEvE,OAAO,gBAAgB,CACrB;QACE,WAAW,EAAE,kBAAkB;QAC/B,YAAY,EAAE;YACZ,iBAAiB;YACjB,UAAU,EAAE,iBAAiB,GAAG,SAAS;YACzC,WAAW,EACT,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW;SACjE;QACD,QAAQ,EAAE;YACR,iBAAiB;YACjB,iBAAiB;YACjB,gBAAgB,EAAE,iBAAiB,GAAG,iBAAiB;SACxD;KACF,EACD,mCAAmC,EACnC,OAAO,EACP;QACE,wEAAwE;QACxE,0FAA0F;QAC1F,+GAA+G;KAChH,CACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"sensor-geometry.js","sourceRoot":"","sources":["../../src/sensor/sensor-geometry.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,gBAAgB,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAC3C,uBAAuB,EACvB,wBAAwB,CACzB,CAAC;AAkFF;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CACzC,WAA8B;IAE9B,qBAAqB,CAAC,qBAAqB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClE,qBAAqB,CAAC,sBAAsB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEzE,OAAO,gBAAgB,CACrB;QACE,UAAU;QACV,WAAW,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,QAAQ;QACvD,cAAc,EAAE,0BAA0B,GAAG,UAAU;KACxD,EACD,qBAAqB,EACrB,OAAO,EACP;QACE,wEAAwE;QACxE,6EAA6E;KAC9E,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAA0C;IAE1C,qBAAqB,CAAC,qBAAqB,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxE,qBAAqB,CAAC,sBAAsB,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1E,sBAAsB,CACpB,yBAAyB,EACzB,KAAK,CAAC,YAAY,CAAC,UAAU,CAC9B,CAAC;IACF,sBAAsB,CACpB,0BAA0B,EAC1B,KAAK,CAAC,YAAY,CAAC,WAAW,CAC/B,CAAC;IAEF,MAAM,iBAAiB,GACrB,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,2BAA2B,CACnC,wEAAwE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,2BAA2B,CACpD,KAAK,CAAC,WAAW,CAClB,CAAC,KAAK,CAAC;IACR,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACrE,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAEvE,OAAO,gBAAgB,CACrB;QACE,WAAW,EAAE,kBAAkB;QAC/B,YAAY,EAAE;YACZ,iBAAiB;YACjB,UAAU,EAAE,iBAAiB,GAAG,SAAS;YACzC,WAAW,EACT,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW;SACjE;QACD,QAAQ,EAAE;YACR,iBAAiB;YACjB,iBAAiB;YACjB,gBAAgB,EAAE,iBAAiB,GAAG,iBAAiB;SACxD;KACF,EACD,mCAAmC,EACnC,OAAO,EACP;QACE,wEAAwE;QACxE,0FAA0F;QAC1F,+GAA+G;KAChH,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module boundary and integration notes.
|
|
3
|
+
* Converts mean incident photon count to mean photoelectron count. This is an expectation value; the
|
|
4
|
+
* stochastic shot-noise realization is not generated by this deterministic calculation.
|
|
5
|
+
* Calculates expected SNR from Poisson shot noise and independent RMS read noise. Variances are
|
|
6
|
+
* combined as signalElectrons + readNoiseElectrons^2. Dark current, fixed-pattern noise, quantization,
|
|
7
|
+
* clipping, and downstream processing are intentionally outside this primitive.
|
|
8
|
+
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
9
|
+
* limits.
|
|
10
|
+
*/
|
|
1
11
|
import { type CalculationResult } from "../core/calculation-result.js";
|
|
2
12
|
export interface CalculatePhotoelectronsInput {
|
|
3
13
|
/** Mean photons incident on the photosite/measurement region. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-noise.d.ts","sourceRoot":"","sources":["../../src/sensor/signal-noise.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAWvC,MAAM,WAAW,4BAA4B;IAC3C,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,iBAAiB,CAAC,MAAM,CAAC,CAmB3B;AAED,MAAM,WAAW,2BAA2B;IAC1C,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,yBAAyB,EAAE,MAAM,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,2BAA2B,GACjC,iBAAiB,CAAC,aAAa,CAAC,CA8BlC"}
|
|
1
|
+
{"version":3,"file":"signal-noise.d.ts","sourceRoot":"","sources":["../../src/sensor/signal-noise.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAWvC,MAAM,WAAW,4BAA4B;IAC3C,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,iBAAiB,CAAC,MAAM,CAAC,CAmB3B;AAED,MAAM,WAAW,2BAA2B;IAC1C,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,yBAAyB,EAAE,MAAM,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,2BAA2B,GACjC,iBAAiB,CAAC,aAAa,CAAC,CA8BlC"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Module boundary and integration notes.
|
|
4
|
+
* Converts mean incident photon count to mean photoelectron count. This is an expectation value; the
|
|
5
|
+
* stochastic shot-noise realization is not generated by this deterministic calculation.
|
|
6
|
+
* Calculates expected SNR from Poisson shot noise and independent RMS read noise. Variances are
|
|
7
|
+
* combined as signalElectrons + readNoiseElectrons^2. Dark current, fixed-pattern noise, quantization,
|
|
8
|
+
* clipping, and downstream processing are intentionally outside this primitive.
|
|
9
|
+
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
10
|
+
* limits.
|
|
11
|
+
*/
|
|
2
12
|
import { calculatedResult } from "../core/calculation-result.js";
|
|
3
13
|
import { InvalidScientificInputError } from "../core/validation.js";
|
|
4
14
|
function requireNonNegativeFinite(name, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-noise.js","sourceRoot":"","sources":["../../src/sensor/signal-noise.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EACL,gBAAgB,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAa;IAC3D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,2BAA2B,CACnC,GAAG,IAAI,yDAAyD,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AASD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAmC;IAEnC,wBAAwB,CAAC,iBAAiB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAEnE,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACzC,KAAK,CAAC,iBAAiB,GAAG,CAAC;QAC3B,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAC3B,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CACrB,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,iBAAiB,EAC/C,+BAA+B,EAC/B,OAAO,EACP,CAAC,8CAA8C,CAAC,CACjD,CAAC;AACJ,CAAC;AAiBD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAkC;IAElC,wBAAwB,CAAC,iBAAiB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACnE,wBAAwB,CAAC,oBAAoB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEzE,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,yBAAyB,GAAG,IAAI,CAAC,IAAI,CACzC,KAAK,CAAC,eAAe;QACnB,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CACtD,CAAC;IACF,MAAM,SAAS,GACb,yBAAyB,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,yBAAyB,CAAC;IACxD,MAAM,KAAK,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAElE,OAAO,gBAAgB,CACrB;QACE,qBAAqB;QACrB,yBAAyB;QACzB,SAAS;QACT,KAAK;KACN,EACD,kCAAkC,EAClC,OAAO,EACP;QACE,8BAA8B;QAC9B,qDAAqD;QACrD,uDAAuD;KACxD,CACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"signal-noise.js","sourceRoot":"","sources":["../../src/sensor/signal-noise.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;;;;GASG;AAEH,OAAO,EACL,gBAAgB,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAa;IAC3D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,2BAA2B,CACnC,GAAG,IAAI,yDAAyD,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AASD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAmC;IAEnC,wBAAwB,CAAC,iBAAiB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAEnE,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACzC,KAAK,CAAC,iBAAiB,GAAG,CAAC;QAC3B,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAC3B,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CACrB,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,iBAAiB,EAC/C,+BAA+B,EAC/B,OAAO,EACP,CAAC,8CAA8C,CAAC,CACjD,CAAC;AACJ,CAAC;AAiBD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAkC;IAElC,wBAAwB,CAAC,iBAAiB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACnE,wBAAwB,CAAC,oBAAoB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEzE,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,yBAAyB,GAAG,IAAI,CAAC,IAAI,CACzC,KAAK,CAAC,eAAe;QACnB,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CACtD,CAAC;IACF,MAAM,SAAS,GACb,yBAAyB,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,yBAAyB,CAAC;IACxD,MAAM,KAAK,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAElE,OAAO,gBAAgB,CACrB;QACE,qBAAqB;QACrB,yBAAyB;QACzB,SAAS;QACT,KAAK;KACN,EACD,kCAAkC,EAClC,OAAO,EACP;QACE,8BAA8B;QAC9B,qDAAqD;QACrD,uDAAuD;KACxD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module boundary and integration notes.
|
|
3
|
+
* Create the deterministic matching key for a spatial quadrature node; this is sample identity, not a
|
|
4
|
+
* cryptographic checksum. Spatial node identity binds supplied values to deterministic AA/aperture
|
|
5
|
+
* quadrature. Average weights and square-micrometre geometric area measures are separate.
|
|
6
|
+
* Negative/non-finite irradiance or incomplete/duplicate coverage fail; geometry does not establish
|
|
7
|
+
* QE, radiometric collection area or calibrated transport.
|
|
8
|
+
* Revalidate node coordinates, weights, geometric measures and coverage before using a spatial plan as
|
|
9
|
+
* a trusted scientific input. Spatial node identity binds supplied values to deterministic AA/aperture
|
|
10
|
+
* quadrature. Average weights and square-micrometre geometric area measures are separate.
|
|
11
|
+
* Negative/non-finite irradiance or incomplete/duplicate coverage fail; geometry does not establish
|
|
12
|
+
* QE, radiometric collection area or calibrated transport.
|
|
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 { SensorSpatialSamplingQuadrature, SensorSpatialSamplingQuadratureNode } from "./spatial-sampling-quadrature.js";
|
|
18
|
+
export type SensorSpatialSampleValueDomain = {
|
|
19
|
+
kind: "relative-linear";
|
|
20
|
+
unit: "relative";
|
|
21
|
+
semantic: "nonnegative-sensor-plane-irradiance-proxy";
|
|
22
|
+
} | {
|
|
23
|
+
kind: "radiometric-irradiance";
|
|
24
|
+
unit: "W/m^2";
|
|
25
|
+
semantic: "sensor-plane-irradiance";
|
|
26
|
+
};
|
|
27
|
+
export interface SensorSpatialQuadratureNodeIdentity {
|
|
28
|
+
antiAliasingComponentIndex: number;
|
|
29
|
+
apertureSampleXIndex: number;
|
|
30
|
+
apertureSampleYIndex: number;
|
|
31
|
+
}
|
|
32
|
+
export interface SensorSpatialQuadratureNodeValue {
|
|
33
|
+
node: SensorSpatialQuadratureNodeIdentity;
|
|
34
|
+
/**
|
|
35
|
+
* Nonnegative finite scalar in the declared value domain.
|
|
36
|
+
*
|
|
37
|
+
* Values are evaluated at the corresponding quadrature node's
|
|
38
|
+
* preAntiAliasingSourcePointMm.
|
|
39
|
+
*/
|
|
40
|
+
value: number;
|
|
41
|
+
}
|
|
42
|
+
export interface ReduceSensorSpatialSamplingQuadratureInput {
|
|
43
|
+
quadrature: SensorSpatialSamplingQuadrature;
|
|
44
|
+
valueDomain: SensorSpatialSampleValueDomain;
|
|
45
|
+
/**
|
|
46
|
+
* Exactly one explicitly identified value per quadrature node.
|
|
47
|
+
*
|
|
48
|
+
* Ordering is not significant; node identity is.
|
|
49
|
+
*/
|
|
50
|
+
nodeValues: readonly SensorSpatialQuadratureNodeValue[];
|
|
51
|
+
}
|
|
52
|
+
export type SensorSpatialSampleReductionValue = {
|
|
53
|
+
kind: "relative-linear";
|
|
54
|
+
unit: "relative";
|
|
55
|
+
semantic: "nonnegative-sensor-plane-irradiance-proxy";
|
|
56
|
+
/**
|
|
57
|
+
* Dimensionless weighted spatial average in the same relative domain.
|
|
58
|
+
*/
|
|
59
|
+
normalizedSpatialAverageRelative: number;
|
|
60
|
+
/**
|
|
61
|
+
* Relative value × square micrometres.
|
|
62
|
+
*
|
|
63
|
+
* This is a geometric area-weighted diagnostic, not radiometric power.
|
|
64
|
+
*/
|
|
65
|
+
geometricAreaIntegralRelativeSquareMicrometers: number;
|
|
66
|
+
} | {
|
|
67
|
+
kind: "radiometric-irradiance";
|
|
68
|
+
unit: "W/m^2";
|
|
69
|
+
semantic: "sensor-plane-irradiance";
|
|
70
|
+
/**
|
|
71
|
+
* Weighted mean irradiance over the geometric aperture after applying
|
|
72
|
+
* the declared normalized AA spatial redistribution.
|
|
73
|
+
*/
|
|
74
|
+
normalizedSpatialAverageIrradianceWattsPerSquareMeter: number;
|
|
75
|
+
/**
|
|
76
|
+
* Incident radiant flux represented by integrating the supplied
|
|
77
|
+
* irradiance over the geometric aperture under the declared normalized
|
|
78
|
+
* AA redistribution. Units: watts.
|
|
79
|
+
*
|
|
80
|
+
* This remains pre-CFA-response, pre-QE, pre-microlens-response and
|
|
81
|
+
* excludes any optical-stack throughput not already present in the
|
|
82
|
+
* caller-supplied irradiance values.
|
|
83
|
+
*/
|
|
84
|
+
geometricApertureIncidentFluxWatts: number;
|
|
85
|
+
};
|
|
86
|
+
export interface SensorSpatialSampleReduction {
|
|
87
|
+
site: {
|
|
88
|
+
x: number;
|
|
89
|
+
y: number;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Semantic destination CFA/color-site label only.
|
|
93
|
+
*
|
|
94
|
+
* No spectral filter response is applied by this reducer.
|
|
95
|
+
*/
|
|
96
|
+
channelId: string;
|
|
97
|
+
outputMeaning: "channel-tagged-pre-response-spatial-sample";
|
|
98
|
+
valueDomain: SensorSpatialSampleValueDomain;
|
|
99
|
+
nodeCount: number;
|
|
100
|
+
sourceValuesMatchedBy: "quadrature-node-identity";
|
|
101
|
+
sourceValuesSuppliedForAllNodes: true;
|
|
102
|
+
outsideImagingAreaSourceValuesRequired: boolean;
|
|
103
|
+
normalizedSpatialWeightSum: number;
|
|
104
|
+
geometricApertureAreaSquareMicrometers: number;
|
|
105
|
+
reducedValue: SensorSpatialSampleReductionValue;
|
|
106
|
+
cfaSpectralFilteringApplied: false;
|
|
107
|
+
channelIdIsSpectralResponse: false;
|
|
108
|
+
temporalIntegrationApplied: false;
|
|
109
|
+
exposureDurationApplied: false;
|
|
110
|
+
quantumEfficiencyApplied: false;
|
|
111
|
+
microlensResponseApplied: false;
|
|
112
|
+
opticalThroughputAppliedByReducer: false;
|
|
113
|
+
photonsCalculated: false;
|
|
114
|
+
electronsCalculated: false;
|
|
115
|
+
shotNoiseApplied: false;
|
|
116
|
+
readNoiseApplied: false;
|
|
117
|
+
adcQuantizationApplied: false;
|
|
118
|
+
blackLevelApplied: false;
|
|
119
|
+
saturationApplied: false;
|
|
120
|
+
rawCodeValueProduced: false;
|
|
121
|
+
demosaicOrReconstructionApplied: false;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create the deterministic matching key for a spatial quadrature node; this is sample identity, not a
|
|
125
|
+
* cryptographic checksum.
|
|
126
|
+
*
|
|
127
|
+
* Spatial node identity binds supplied values to deterministic AA/aperture quadrature. Average weights
|
|
128
|
+
* and square-micrometre geometric area measures are separate. Negative/non-finite irradiance or
|
|
129
|
+
* incomplete/duplicate coverage fail; geometry does not establish QE, radiometric collection area or
|
|
130
|
+
* calibrated transport.
|
|
131
|
+
* @param identity - SensorSpatialQuadratureNodeIdentity. See the linked contract for coordinate, unit and profile binding semantics.
|
|
132
|
+
* @returns string. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
133
|
+
*
|
|
134
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
135
|
+
*/
|
|
136
|
+
export declare function sensorSpatialQuadratureNodeIdentityKey(identity: SensorSpatialQuadratureNodeIdentity): string;
|
|
137
|
+
/**
|
|
138
|
+
* Revalidate node coordinates, weights, geometric measures and coverage before using a spatial plan as
|
|
139
|
+
* a trusted scientific input.
|
|
140
|
+
*
|
|
141
|
+
* Spatial node identity binds supplied values to deterministic AA/aperture quadrature. Average weights
|
|
142
|
+
* and square-micrometre geometric area measures are separate. Negative/non-finite irradiance or
|
|
143
|
+
* incomplete/duplicate coverage fail; geometry does not establish QE, radiometric collection area or
|
|
144
|
+
* calibrated transport.
|
|
145
|
+
* @param quadrature - SensorSpatialSamplingQuadrature. See the linked contract for coordinate, unit and profile binding semantics.
|
|
146
|
+
* @returns Map<string, SensorSpatialSamplingQuadratureNode>. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
147
|
+
*
|
|
148
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
149
|
+
*/
|
|
150
|
+
export declare function validateSensorSpatialSamplingQuadrature(quadrature: SensorSpatialSamplingQuadrature): Map<string, SensorSpatialSamplingQuadratureNode>;
|
|
151
|
+
/**
|
|
152
|
+
* Reduces explicitly identified nonnegative linear scalar values over a
|
|
153
|
+
* validated sensor spatial quadrature.
|
|
154
|
+
*
|
|
155
|
+
* This function does not sample a renderer or optical model itself. Callers
|
|
156
|
+
* evaluate one value at every quadrature node's preAntiAliasingSourcePointMm
|
|
157
|
+
* and provide those values with exact node identity. Ordering is deliberately
|
|
158
|
+
* irrelevant.
|
|
159
|
+
*
|
|
160
|
+
* Two domains are supported:
|
|
161
|
+
*
|
|
162
|
+
* - relative-linear: dimensionless nonnegative irradiance-like proxy for
|
|
163
|
+
* deterministic renderer/science regression;
|
|
164
|
+
* - radiometric-irradiance: physical sensor-plane irradiance in W/m^2.
|
|
165
|
+
*
|
|
166
|
+
* The destination site's channelId is metadata only. No CFA spectral
|
|
167
|
+
* transmittance/sensitivity is applied, so the output must not be called a
|
|
168
|
+
* physically color-filtered mosaic sample or RAW value.
|
|
169
|
+
*/
|
|
170
|
+
export declare function reduceSensorSpatialSamplingQuadrature(input: ReduceSensorSpatialSamplingQuadratureInput): CalculationResult<SensorSpatialSampleReduction>;
|
|
171
|
+
//# sourceMappingURL=spatial-sample-reduction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spatial-sample-reduction.d.ts","sourceRoot":"","sources":["../../src/sensor/spatial-sample-reduction.ts"],"names":[],"mappings":"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"}
|