@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,371 @@
|
|
|
1
|
+
# optics/scene-to-sensor-irradiance.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateSceneRadianceToSensorIrradiance
|
|
6
|
+
|
|
7
|
+
Apply declared pupil acceptance and exactly one transmission/field-throughput path to spectral scene
|
|
8
|
+
radiance, returning pre-stack irradiance with conservative evidence.
|
|
9
|
+
|
|
10
|
+
The optical bridge maps outgoing W/m²/sr/nm radiance to pre-sensor-stack W/m²/nm irradiance.
|
|
11
|
+
Circular paraxial acceptance is pi/(4*Nworking²); finite-focus unity-pupil geometry uses N*(1+m).
|
|
12
|
+
Spectral transmission and effective working T-stop are alternative paths, and field throughput is
|
|
13
|
+
applied exactly once. Sensor response and PSF redistribution are downstream.
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
export function calculateSceneRadianceToSensorIrradiance(
|
|
17
|
+
input:
|
|
18
|
+
CalculateSceneRadianceToSensorIrradianceInput
|
|
19
|
+
): CalculationResult<
|
|
20
|
+
SceneToSensorIrradianceResult
|
|
21
|
+
>;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
25
|
+
|
|
26
|
+
## CalculateSceneRadianceToSensorIrradianceInput
|
|
27
|
+
|
|
28
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
export interface CalculateSceneRadianceToSensorIrradianceInput {
|
|
32
|
+
sceneRadianceRequest:
|
|
33
|
+
SceneRadianceEvaluationRequest;
|
|
34
|
+
sceneRadianceResult:
|
|
35
|
+
SceneRadianceEvaluationResult;
|
|
36
|
+
profile:
|
|
37
|
+
SceneToSensorIrradianceProfile;
|
|
38
|
+
focalLengthMm: number;
|
|
39
|
+
nominalFNumber: number;
|
|
40
|
+
focus:
|
|
41
|
+
OpticalBridgeFocusContext;
|
|
42
|
+
imagePointMm: {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
};
|
|
46
|
+
fieldThroughput:
|
|
47
|
+
OpticalBridgeFieldThroughput;
|
|
48
|
+
frontOfLensFilters?:
|
|
49
|
+
readonly FrontOfLensFilterProfile[];
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## NumericRange
|
|
54
|
+
|
|
55
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
export interface NumericRange {
|
|
59
|
+
minimum: number;
|
|
60
|
+
maximum: number;
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## OpticalBridgeFieldThroughput
|
|
65
|
+
|
|
66
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
export type OpticalBridgeFieldThroughput =
|
|
70
|
+
| {
|
|
71
|
+
kind: "unity";
|
|
72
|
+
}
|
|
73
|
+
| {
|
|
74
|
+
kind:
|
|
75
|
+
"illumination-vignetting-result";
|
|
76
|
+
result:
|
|
77
|
+
IlluminationVignetting;
|
|
78
|
+
};
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## OpticalBridgeFocusApplicability
|
|
82
|
+
|
|
83
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
export type OpticalBridgeFocusApplicability =
|
|
87
|
+
| {
|
|
88
|
+
kind: "any";
|
|
89
|
+
}
|
|
90
|
+
| {
|
|
91
|
+
kind: "finite-distance-range";
|
|
92
|
+
objectDistanceM: NumericRange;
|
|
93
|
+
};
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## OpticalBridgeFocusContext
|
|
97
|
+
|
|
98
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
export type OpticalBridgeFocusContext =
|
|
102
|
+
| {
|
|
103
|
+
kind: "infinity-focus";
|
|
104
|
+
}
|
|
105
|
+
| {
|
|
106
|
+
kind:
|
|
107
|
+
"ideal-symmetric-thin-lens";
|
|
108
|
+
objectDistanceM: number;
|
|
109
|
+
pupilMagnificationAssumption:
|
|
110
|
+
"unity";
|
|
111
|
+
}
|
|
112
|
+
| {
|
|
113
|
+
kind:
|
|
114
|
+
"supplied-working-f-number";
|
|
115
|
+
focus:
|
|
116
|
+
| {
|
|
117
|
+
kind: "infinity";
|
|
118
|
+
}
|
|
119
|
+
| {
|
|
120
|
+
kind: "finite";
|
|
121
|
+
objectDistanceM: number;
|
|
122
|
+
};
|
|
123
|
+
workingFNumber:
|
|
124
|
+
EvidenceBackedFact<number>;
|
|
125
|
+
basis: string;
|
|
126
|
+
};
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## OpticalBridgeScientificStatus
|
|
130
|
+
|
|
131
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
export type OpticalBridgeScientificStatus =
|
|
135
|
+
| "calibrated"
|
|
136
|
+
| "approximation";
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## OpticalBridgeUncertainty
|
|
140
|
+
|
|
141
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
142
|
+
|
|
143
|
+
```ts
|
|
144
|
+
export type OpticalBridgeUncertainty =
|
|
145
|
+
| {
|
|
146
|
+
kind: "relative";
|
|
147
|
+
fraction: number;
|
|
148
|
+
basis: string;
|
|
149
|
+
}
|
|
150
|
+
| {
|
|
151
|
+
kind: "not-quantified";
|
|
152
|
+
limitation: string;
|
|
153
|
+
};
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## OpticalTransmissionModel
|
|
157
|
+
|
|
158
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
export type OpticalTransmissionModel =
|
|
162
|
+
| {
|
|
163
|
+
kind: "spectral-transmission";
|
|
164
|
+
scientificStatus:
|
|
165
|
+
OpticalBridgeScientificStatus;
|
|
166
|
+
wavelengthBasis:
|
|
167
|
+
Exclude<
|
|
168
|
+
SpectralWavelengthBasis,
|
|
169
|
+
"unspecified"
|
|
170
|
+
>;
|
|
171
|
+
samples:
|
|
172
|
+
EvidenceBackedFact<
|
|
173
|
+
readonly SpectralTransmissionSample[]
|
|
174
|
+
>;
|
|
175
|
+
uncertainty:
|
|
176
|
+
OpticalBridgeUncertainty;
|
|
177
|
+
}
|
|
178
|
+
| {
|
|
179
|
+
kind:
|
|
180
|
+
"effective-working-t-stop-approximation";
|
|
181
|
+
scientificStatus: "approximation";
|
|
182
|
+
workingTStop:
|
|
183
|
+
EvidenceBackedFact<number>;
|
|
184
|
+
wavelengthBasis:
|
|
185
|
+
Exclude<
|
|
186
|
+
SpectralWavelengthBasis,
|
|
187
|
+
"unspecified"
|
|
188
|
+
>;
|
|
189
|
+
wavelengthRangeNanometers:
|
|
190
|
+
NumericRange;
|
|
191
|
+
uncertainty:
|
|
192
|
+
OpticalBridgeUncertainty;
|
|
193
|
+
limitation: string;
|
|
194
|
+
};
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## parseSceneToSensorIrradianceProfile
|
|
198
|
+
|
|
199
|
+
Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
200
|
+
missing required fields and incompatible scientific data fail at this boundary.
|
|
201
|
+
|
|
202
|
+
The optical bridge maps outgoing W/m²/sr/nm radiance to pre-sensor-stack W/m²/nm irradiance.
|
|
203
|
+
Circular paraxial acceptance is pi/(4*Nworking²); finite-focus unity-pupil geometry uses N*(1+m).
|
|
204
|
+
Spectral transmission and effective working T-stop are alternative paths, and field throughput is
|
|
205
|
+
applied exactly once. Sensor response and PSF redistribution are downstream.
|
|
206
|
+
|
|
207
|
+
```ts
|
|
208
|
+
export function parseSceneToSensorIrradianceProfile(
|
|
209
|
+
value: unknown
|
|
210
|
+
): SceneToSensorIrradianceProfile;
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
214
|
+
|
|
215
|
+
## SCENE_TO_SENSOR_IRRADIANCE_PROFILE_SCHEMA_VERSION
|
|
216
|
+
|
|
217
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
218
|
+
|
|
219
|
+
```ts
|
|
220
|
+
SCENE_TO_SENSOR_IRRADIANCE_PROFILE_SCHEMA_VERSION =
|
|
221
|
+
"0.1.0" as const
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## SceneToSensorIrradianceProfile
|
|
225
|
+
|
|
226
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
227
|
+
|
|
228
|
+
```ts
|
|
229
|
+
export interface SceneToSensorIrradianceProfile {
|
|
230
|
+
schemaVersion:
|
|
231
|
+
typeof SCENE_TO_SENSOR_IRRADIANCE_PROFILE_SCHEMA_VERSION;
|
|
232
|
+
profileId: string;
|
|
233
|
+
profileVersion: string;
|
|
234
|
+
lensProfileId: string;
|
|
235
|
+
scientificStatus:
|
|
236
|
+
OpticalBridgeScientificStatus;
|
|
237
|
+
applicability: {
|
|
238
|
+
focalLengthMm: NumericRange;
|
|
239
|
+
nominalFNumber: NumericRange;
|
|
240
|
+
focus:
|
|
241
|
+
OpticalBridgeFocusApplicability;
|
|
242
|
+
};
|
|
243
|
+
transmission:
|
|
244
|
+
OpticalTransmissionModel;
|
|
245
|
+
distortionAreaMappingOwnership:
|
|
246
|
+
"not-applied-by-bridge";
|
|
247
|
+
psfRedistributionOwnership:
|
|
248
|
+
"downstream-normalized-energy-redistribution";
|
|
249
|
+
sensorOpticalStackIncluded: false;
|
|
250
|
+
strayLightIncluded: false;
|
|
251
|
+
polarizationModeled: false;
|
|
252
|
+
wavelengthChangingBehaviorModeled: false;
|
|
253
|
+
volumetricScatteringModeled: false;
|
|
254
|
+
evidence: readonly EvidenceProvenance[];
|
|
255
|
+
limitations: readonly string[];
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## SceneToSensorIrradianceResult
|
|
260
|
+
|
|
261
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
262
|
+
|
|
263
|
+
```ts
|
|
264
|
+
export interface SceneToSensorIrradianceResult {
|
|
265
|
+
schemaVersion:
|
|
266
|
+
typeof SCENE_TO_SENSOR_IRRADIANCE_PROFILE_SCHEMA_VERSION;
|
|
267
|
+
profileId: string;
|
|
268
|
+
profileVersion: string;
|
|
269
|
+
lensProfileId: string;
|
|
270
|
+
sampleId: string;
|
|
271
|
+
providerProfileId: string;
|
|
272
|
+
sceneId: string;
|
|
273
|
+
timeSecondsFromExposureStart: number;
|
|
274
|
+
wavelengthNanometers: number;
|
|
275
|
+
wavelengthBasis:
|
|
276
|
+
Exclude<
|
|
277
|
+
SpectralWavelengthBasis,
|
|
278
|
+
"unspecified"
|
|
279
|
+
>;
|
|
280
|
+
inputQuantity:
|
|
281
|
+
"outgoing-spectral-radiance";
|
|
282
|
+
inputUnit:
|
|
283
|
+
"W/m^2/sr/nm";
|
|
284
|
+
outputQuantity:
|
|
285
|
+
"sensor-plane-spectral-irradiance";
|
|
286
|
+
outputUnit:
|
|
287
|
+
"W/m^2/nm";
|
|
288
|
+
sceneSpectralRadianceWattsPerSquareMeterSteradianNanometer:
|
|
289
|
+
number;
|
|
290
|
+
focalLengthMm: number;
|
|
291
|
+
nominalFNumber: number;
|
|
292
|
+
workingFNumber: number;
|
|
293
|
+
focusModel:
|
|
294
|
+
OpticalBridgeFocusContext["kind"];
|
|
295
|
+
paraxialGeometricAcceptanceSolidAngleSteradians:
|
|
296
|
+
number;
|
|
297
|
+
transmissionPath:
|
|
298
|
+
OpticalTransmissionModel["kind"];
|
|
299
|
+
spectralTransmissionFactor:
|
|
300
|
+
number | null;
|
|
301
|
+
effectiveWorkingTStop:
|
|
302
|
+
number | null;
|
|
303
|
+
tStopEquivalentTransmissionFactor:
|
|
304
|
+
number | null;
|
|
305
|
+
frontOfLensFilterCount: number;
|
|
306
|
+
frontOfLensFilterTransmissionFactor:
|
|
307
|
+
number;
|
|
308
|
+
frontOfLensFilterAttenuationStops:
|
|
309
|
+
number;
|
|
310
|
+
frontOfLensFilterTransmissionAppliedExactlyOnce:
|
|
311
|
+
true;
|
|
312
|
+
frontOfLensFilterPolarizationModeled:
|
|
313
|
+
false;
|
|
314
|
+
fieldThroughputFactor: number;
|
|
315
|
+
effectiveAcceptanceAfterTransmissionAndFieldSteradians:
|
|
316
|
+
number;
|
|
317
|
+
sensorPlaneSpectralIrradianceWattsPerSquareMeterNanometer:
|
|
318
|
+
number;
|
|
319
|
+
scientificStatus: "approximation";
|
|
320
|
+
sceneRadianceScientificStatus:
|
|
321
|
+
SceneRadianceEvaluationResult["scientificStatus"];
|
|
322
|
+
opticalProfileScientificStatus:
|
|
323
|
+
OpticalBridgeScientificStatus;
|
|
324
|
+
sceneRadianceUncertainty:
|
|
325
|
+
SceneRadianceEvaluationResult["uncertainty"];
|
|
326
|
+
opticalUncertainty:
|
|
327
|
+
OpticalBridgeUncertainty;
|
|
328
|
+
radianceAmplificationApplied: false;
|
|
329
|
+
fieldThroughputAppliedExactlyOnce:
|
|
330
|
+
true;
|
|
331
|
+
universalCos4FalloffApplied: false;
|
|
332
|
+
distortionAreaCorrectionApplied: false;
|
|
333
|
+
psfRedistributionApplied: false;
|
|
334
|
+
sensorOpticalStackApplied: false;
|
|
335
|
+
cfaApplied: false;
|
|
336
|
+
quantumEfficiencyApplied: false;
|
|
337
|
+
spectralResponsivityApplied: false;
|
|
338
|
+
strayLightApplied: false;
|
|
339
|
+
polarizationModeled: false;
|
|
340
|
+
wavelengthChangingBehaviorModeled:
|
|
341
|
+
false;
|
|
342
|
+
volumetricScatteringModeled: false;
|
|
343
|
+
calibratedSensorPlaneIrradianceClaimAuthorized:
|
|
344
|
+
false;
|
|
345
|
+
componentEvidence: {
|
|
346
|
+
sceneRadiance:
|
|
347
|
+
readonly EvidenceProvenance[];
|
|
348
|
+
opticalProfile:
|
|
349
|
+
readonly EvidenceProvenance[];
|
|
350
|
+
transmission:
|
|
351
|
+
readonly EvidenceProvenance[];
|
|
352
|
+
workingFNumber:
|
|
353
|
+
readonly EvidenceProvenance[];
|
|
354
|
+
frontOfLensFilters:
|
|
355
|
+
readonly EvidenceProvenance[];
|
|
356
|
+
};
|
|
357
|
+
limitations:
|
|
358
|
+
readonly string[];
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
## SpectralTransmissionSample
|
|
363
|
+
|
|
364
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
365
|
+
|
|
366
|
+
```ts
|
|
367
|
+
export interface SpectralTransmissionSample {
|
|
368
|
+
wavelengthNanometers: number;
|
|
369
|
+
linearTransmissionFactor: number;
|
|
370
|
+
}
|
|
371
|
+
```
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# optics/scene-to-sensor-quadrature.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateSceneToSensorIrradianceQuadrature
|
|
6
|
+
|
|
7
|
+
Calculate the existing paraxial optical bridge at every requested node.
|
|
8
|
+
Exact identity/coverage and provider bindings are checked before returning
|
|
9
|
+
physical W/m²/nm samples. Image coordinates belong to the spatial plan, so
|
|
10
|
+
callers cannot attach a field-throughput result from a different point.
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
export function calculateSceneToSensorIrradianceQuadrature(
|
|
14
|
+
input: CalculateSceneToSensorIrradianceQuadratureInput
|
|
15
|
+
): CalculationResult<SceneToSensorIrradianceQuadrature>;
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
19
|
+
|
|
20
|
+
## CalculateSceneToSensorIrradianceQuadratureInput
|
|
21
|
+
|
|
22
|
+
Static point-sample bridge; PSF and temporal transport remain separate responsibilities.
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
export interface CalculateSceneToSensorIrradianceQuadratureInput {
|
|
26
|
+
spatialQuadrature: ReduceSensorSpatioSpectralIrradianceInput["spatialQuadrature"];
|
|
27
|
+
spectralQuadrature: ReduceSensorSpatioSpectralIrradianceInput["spectralQuadrature"];
|
|
28
|
+
/** Evidence-backed provider/illumination/material identities, parsed before use. */
|
|
29
|
+
sceneBindings: Omit<ValidateSceneRadianceEvaluationBindingsInput, "request" | "result">;
|
|
30
|
+
/** One declared lens/focus/filter state shared by every node. */
|
|
31
|
+
optics: Omit<CalculateSceneRadianceToSensorIrradianceInput,
|
|
32
|
+
"sceneRadianceRequest" | "sceneRadianceResult" | "imagePointMm" | "fieldThroughput">;
|
|
33
|
+
/** Explicit nonnegative instant shared by all queries; not an exposure integration. */
|
|
34
|
+
timeSecondsFromExposureStart: number;
|
|
35
|
+
/** Complete Cartesian coverage with a unique scene sampleId per node. */
|
|
36
|
+
samples: readonly SceneSensorQuadratureSample[];
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## SceneSensorQuadratureSample
|
|
41
|
+
|
|
42
|
+
One declared scene query/result for an exact pre-AA spatial/wavelength node.
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
export interface SceneSensorQuadratureSample {
|
|
46
|
+
node: SensorSpatioSpectralNodeIdentity;
|
|
47
|
+
sceneRadianceRequest: CalculateSceneRadianceToSensorIrradianceInput["sceneRadianceRequest"];
|
|
48
|
+
sceneRadianceResult: CalculateSceneRadianceToSensorIrradianceInput["sceneRadianceResult"];
|
|
49
|
+
fieldThroughput: CalculateSceneRadianceToSensorIrradianceInput["fieldThroughput"];
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## SceneToSensorIrradianceQuadrature
|
|
54
|
+
|
|
55
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
export interface SceneToSensorIrradianceQuadrature {
|
|
59
|
+
sourcePlane: "sensor-package-incident";
|
|
60
|
+
outputMeaning: "pre-sensor-stack-pre-aa-irradiance-quadrature";
|
|
61
|
+
sourceTargetProjectionVerified: false;
|
|
62
|
+
sceneProviderExecutionVerified: false;
|
|
63
|
+
psfRedistributionApplied: false;
|
|
64
|
+
temporalIntegrationApplied: false;
|
|
65
|
+
irradianceSamples: ReduceSensorSpatioSpectralIrradianceInput["sampleValues"];
|
|
66
|
+
reduction: ReturnType<typeof reduceSensorSpatioSpectralIrradiance>;
|
|
67
|
+
samples: readonly {
|
|
68
|
+
node: SensorSpatioSpectralNodeIdentity;
|
|
69
|
+
/** Physical source coordinate before AA redistribution, in mm. */
|
|
70
|
+
preAntiAliasingSourcePointMm: { x: number; y: number };
|
|
71
|
+
/** Owned provider target/time declaration; not a verified ray intersection. */
|
|
72
|
+
request: SceneSensorQuadratureSample["sceneRadianceRequest"];
|
|
73
|
+
result: SceneSensorQuadratureSample["sceneRadianceResult"];
|
|
74
|
+
bindings: ReturnType<typeof validateSceneRadianceEvaluationBindings>;
|
|
75
|
+
optics: ReturnType<typeof calculateSceneRadianceToSensorIrradiance>;
|
|
76
|
+
}[];
|
|
77
|
+
}
|
|
78
|
+
```
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# optics/sensor-environment-query.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateSensorEnvironmentRadianceQuery
|
|
6
|
+
|
|
7
|
+
Generate an environment radiance request from physical sensor support using
|
|
8
|
+
the existing focus-aware ideal projection and analytic inverse camera rotation.
|
|
9
|
+
Native Y is explicitly inverted; the provider direction is opposite the
|
|
10
|
+
exposure-start look ray. No scene intersection, radiance or renderer executes.
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
export function calculateSensorEnvironmentRadianceQuery(
|
|
14
|
+
input: CalculateSensorEnvironmentRadianceQueryInput
|
|
15
|
+
): CalculationResult<SensorEnvironmentRadianceQuery>;
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
19
|
+
|
|
20
|
+
## CalculateSensorEnvironmentRadianceQueryInput
|
|
21
|
+
|
|
22
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
export interface CalculateSensorEnvironmentRadianceQueryInput {
|
|
26
|
+
/** Pre-AA or pre-PSF optical support, native +X right/+Y down, mm about optical axis. */
|
|
27
|
+
sourcePointNativeSensorMm: { x: number; y: number };
|
|
28
|
+
focalLengthMm: number;
|
|
29
|
+
focus: FocusPlane;
|
|
30
|
+
angularVelocityRadPerSec: CameraAngularVelocityRadPerSec;
|
|
31
|
+
/** Explicitly maps the shutter opening boundary to the rotation model's t=0. */
|
|
32
|
+
timeReference: "first-opening-boundary-phase";
|
|
33
|
+
timeSecondsFromOpeningReference: number;
|
|
34
|
+
/** Environment request uses radiance propagation toward the camera, opposite the look ray. */
|
|
35
|
+
environmentDirectionConvention: "outgoing-radiance-toward-camera";
|
|
36
|
+
request: Omit<SceneRadianceEvaluationRequest, "target" | "timeSecondsFromExposureStart">;
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## SensorEnvironmentRadianceQuery
|
|
41
|
+
|
|
42
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
export interface SensorEnvironmentRadianceQuery {
|
|
46
|
+
request: SceneRadianceEvaluationRequest;
|
|
47
|
+
sourcePointNativeSensorMm: { x: number; y: number };
|
|
48
|
+
sourcePointImagePlaneMm: { x: number; y: number };
|
|
49
|
+
referenceLookDirectionUnitVector: { x: number; y: number; z: number };
|
|
50
|
+
projection: ReturnType<typeof calculateInverseCameraRotationImageMapping>;
|
|
51
|
+
targetMeaning: "environment-direction-in-exposure-start-camera-axes";
|
|
52
|
+
directionConvention: "outgoing-radiance-toward-camera";
|
|
53
|
+
geometricRayProjectionCalculated: true;
|
|
54
|
+
sceneIntersectionCalculated: false;
|
|
55
|
+
visibilityCalculated: false;
|
|
56
|
+
providerExecuted: false;
|
|
57
|
+
}
|
|
58
|
+
```
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# optics/sensor-psf-quadrature.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateSensorPsfIrradianceQuadrature
|
|
6
|
+
|
|
7
|
+
Apply each resolved unit-energy PSF as a destination-local inverse sample sum.
|
|
8
|
+
Native +Y-down support converts explicitly to optical +Y-up kernel orientation.
|
|
9
|
+
No boundary extension, missing-support renormalization or extra throughput is
|
|
10
|
+
applied. This approximation is not a field-dependent forward energy transport.
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
export function calculateSensorPsfIrradianceQuadrature(
|
|
14
|
+
input: CalculateSensorPsfIrradianceQuadratureInput
|
|
15
|
+
): CalculationResult<SensorPsfIrradianceQuadrature>;
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
19
|
+
|
|
20
|
+
## CalculateSensorPsfIrradianceQuadratureInput
|
|
21
|
+
|
|
22
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
export interface CalculateSensorPsfIrradianceQuadratureInput {
|
|
26
|
+
/** One instant on the explicitly declared shutter opening reference. */
|
|
27
|
+
timeSecondsFromOpeningReference: number;
|
|
28
|
+
spatialQuadrature: ReduceSensorSpatioSpectralIrradianceInput["spatialQuadrature"];
|
|
29
|
+
spectralQuadrature: ReduceSensorSpatioSpectralIrradianceInput["spectralQuadrature"];
|
|
30
|
+
/** The adapter owns wavelength and image-plane field position for each node. */
|
|
31
|
+
psf: Omit<ResolveLensSampledPsfInput, "fieldPointMm" | "wavelengthNm">;
|
|
32
|
+
/** Schema 0.1.0 PSF profiles lack a basis field; bind that source meaning explicitly. */
|
|
33
|
+
psfWavelengthBasis: { value: "air" | "vacuum"; evidence: readonly EvidenceProvenance[] };
|
|
34
|
+
/** Explicit local approximation; a varying PSF grid is not a global convolution. */
|
|
35
|
+
spatialModel: { kind: "destination-local-shift-invariant-approximation";
|
|
36
|
+
evidence: readonly EvidenceProvenance[]; limitation: string };
|
|
37
|
+
inputMeaning: "pre-psf-pre-sensor-stack-pre-aa-spectral-irradiance";
|
|
38
|
+
/** All nodes and all kernel taps, including zero weights, must be supplied. */
|
|
39
|
+
samples: readonly { node: SensorSpatioSpectralNodeIdentity; sourceSamples: readonly SensorPsfSourceSample[] }[];
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## SensorPsfIrradianceQuadrature
|
|
44
|
+
|
|
45
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
export interface SensorPsfIrradianceQuadrature {
|
|
49
|
+
timeSecondsFromOpeningReference: number;
|
|
50
|
+
wavelengthBasis: "air" | "vacuum";
|
|
51
|
+
sourcePlane: "sensor-package-incident";
|
|
52
|
+
outputMeaning: "post-psf-pre-sensor-stack-pre-aa-irradiance-quadrature";
|
|
53
|
+
psfRedistributionApplied: true;
|
|
54
|
+
localShiftInvarianceEstablished: false;
|
|
55
|
+
globalFieldEnergyConservationEstablished: false;
|
|
56
|
+
pupilThroughputApplied: false;
|
|
57
|
+
sceneProviderExecutionVerified: false;
|
|
58
|
+
spatialModelEvidence: readonly EvidenceProvenance[];
|
|
59
|
+
wavelengthBasisEvidence: readonly EvidenceProvenance[];
|
|
60
|
+
spatialModelLimitation: string;
|
|
61
|
+
irradianceSamples: ReduceSensorSpatioSpectralIrradianceInput["sampleValues"];
|
|
62
|
+
reduction: ReturnType<typeof reduceSensorSpatioSpectralIrradiance>;
|
|
63
|
+
samples: readonly { node: SensorSpatioSpectralNodeIdentity;
|
|
64
|
+
psf: ReturnType<typeof resolveLensSampledPsf>; sourceSamples: readonly SensorPsfSourceSample[] }[];
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## SensorPsfSourceSample
|
|
69
|
+
|
|
70
|
+
One pre-PSF incident irradiance value per explicitly identified kernel tap.
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
export interface SensorPsfSourceSample {
|
|
74
|
+
timeSecondsFromOpeningReference: number;
|
|
75
|
+
kernelSampleX: number;
|
|
76
|
+
kernelSampleY: number;
|
|
77
|
+
/** Optical-axis origin, +X right/+Y down, millimetres; no native crop clipping. */
|
|
78
|
+
sourcePointNativeSensorMm: { x: number; y: number };
|
|
79
|
+
spectralIrradianceWattsPerSquareMeterPerNanometer: number;
|
|
80
|
+
}
|
|
81
|
+
```
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# optics/stray-light.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateLensStrayLightIrradiance
|
|
6
|
+
|
|
7
|
+
Adds off-path spectral irradiance before sensor/exposure integration, never after tone mapping.
|
|
8
|
+
Source powers are integrated over profile.referenceEntranceAreaMm2 at this instant/wavelength.
|
|
9
|
+
Gaussian templates are independently parameterized approximations, not lens prescription ray tracing.
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
export function calculateLensStrayLightIrradiance(input: {
|
|
13
|
+
profile: LensStrayLightProfile; state: OpticalProfileState; enabled: boolean;
|
|
14
|
+
imagePointMm: LensFieldPointMm; wavelengthNm: number; wavelengthBasis: "air" | "vacuum";
|
|
15
|
+
timeSeconds: number; primarySpectralIrradianceWPerM2PerNm: number;
|
|
16
|
+
sources: readonly StrayLightSource[]; meterDomain: "primary-only" | "primary-plus-stray";
|
|
17
|
+
}): CalculationResult<StrayLightIrradiance>;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
21
|
+
|
|
22
|
+
## LensStrayLightProfile
|
|
23
|
+
|
|
24
|
+
Single explicit wavelength and exact generic camera state; clean optics only.
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
export interface LensStrayLightProfile {
|
|
28
|
+
schemaVersion: "0.1.0";
|
|
29
|
+
id: string;
|
|
30
|
+
version: string;
|
|
31
|
+
state: OpticalProfileState;
|
|
32
|
+
evidence: GenericOpticalEvidence;
|
|
33
|
+
interaction: "lens-reflections" | "sensor-lens-reflections";
|
|
34
|
+
wavelengthNm: number;
|
|
35
|
+
wavelengthBasis: "air" | "vacuum";
|
|
36
|
+
maximumSourceAngleDegrees: number;
|
|
37
|
+
/** Area over which the caller's incident source power was integrated. */
|
|
38
|
+
referenceEntranceAreaMm2: number;
|
|
39
|
+
responses: readonly ParametricStrayLightResponse[];
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## ParametricStrayLightResponse
|
|
44
|
+
|
|
45
|
+
One reflected-path or broad scatter response, normalized over the infinite image plane.
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
export interface ParametricStrayLightResponse {
|
|
49
|
+
id: string;
|
|
50
|
+
kind: "ghost" | "veil";
|
|
51
|
+
/** Centroid response in mm per degree of the two declared source field angles. */
|
|
52
|
+
centroidMmPerDegree: readonly [number, number, number, number];
|
|
53
|
+
offsetMm: LensFieldPointMm;
|
|
54
|
+
sigmaMm: number;
|
|
55
|
+
/** Fraction of source power entering this response at the axis. */
|
|
56
|
+
axisPowerFraction: number;
|
|
57
|
+
/** F(rho)=F(0)*(1+slope*rho²), rho=source angle/max angle. */
|
|
58
|
+
angularSlope: number;
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## parseLensStrayLightProfile
|
|
63
|
+
|
|
64
|
+
Strict generic profile parser; bounds passivity across the whole angular envelope.
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
export function parseLensStrayLightProfile(value: unknown): LensStrayLightProfile;
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
71
|
+
|
|
72
|
+
## StrayLightIrradiance
|
|
73
|
+
|
|
74
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
export interface StrayLightIrradiance {
|
|
78
|
+
profileId: string;
|
|
79
|
+
profileVersion: string;
|
|
80
|
+
interaction: LensStrayLightProfile["interaction"];
|
|
81
|
+
imagePointMm: LensFieldPointMm;
|
|
82
|
+
wavelengthNm: number;
|
|
83
|
+
wavelengthBasis: "air" | "vacuum";
|
|
84
|
+
timeSeconds: number;
|
|
85
|
+
primarySpectralIrradianceWPerM2PerNm: number;
|
|
86
|
+
ghostSpectralIrradianceWPerM2PerNm: number;
|
|
87
|
+
veilSpectralIrradianceWPerM2PerNm: number;
|
|
88
|
+
totalSpectralIrradianceWPerM2PerNm: number;
|
|
89
|
+
/** If primary-only, the meter excludes these additions; sensor always receives total. */
|
|
90
|
+
meterDomain: "primary-only" | "primary-plus-stray";
|
|
91
|
+
meterSpectralIrradianceWPerM2PerNm: number;
|
|
92
|
+
contributions: readonly { sourceId: string; responseId: string; kind: "ghost" | "veil"; spectralIrradianceWPerM2PerNm: number }[];
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## StrayLightSource
|
|
97
|
+
|
|
98
|
+
Direction remains available beyond the active frame; no crop clipping.
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
export interface StrayLightSource {
|
|
102
|
+
id: string;
|
|
103
|
+
fieldAngleXDegrees: number;
|
|
104
|
+
fieldAngleYDegrees: number;
|
|
105
|
+
incidentSpectralPowerWPerNm: number;
|
|
106
|
+
/** Explicit source/path admission, e.g. a flag/hood decision; not a global hood scalar. */
|
|
107
|
+
admittedFraction: number;
|
|
108
|
+
}
|
|
109
|
+
```
|