{
  "schema_version": "camera-spectra-application-export-1",
  "profile_id": "prf-sobotka-ref-nikond90-3cf14ed8587e",
  "profile_revision": 1,
  "exports": {
    "xspd": "/application-data/prf-sobotka-ref-nikond90-3cf14ed8587e-r1.xspd",
    "siril": null,
    "metadata": "/application-data/prf-sobotka-ref-nikond90-3cf14ed8587e-r1.metadata.json",
    "xspd_reason": null,
    "siril_reason": "The source does not establish a sensor-only response. A Siril sensor export would misrepresent its physical scope; use CSV or source JSON.",
    "siril_estimated": "/application-data/prf-sobotka-ref-nikond90-3cf14ed8587e-r1.estimated.siril.json",
    "siril_estimated_alternative": "/application-data/prf-sobotka-ref-nikond90-3cf14ed8587e-r1.alternative-estimate.siril.json",
    "siril_estimated_reason": null,
    "siril_estimated_note": "Estimated relative photon response. Assumes the source values describe energy response. Source optics remain unseparated; calibration accuracy is unverified.",
    "notes": []
  },
  "siril_assessment": null,
  "siril_estimate": {
    "primary": {
      "channels": [
        {
          "channel": "red",
          "wavelengths": [
            400,
            410,
            420,
            430,
            440,
            450,
            460,
            470,
            480,
            490,
            500,
            510,
            520,
            530,
            540,
            550,
            560,
            570,
            580,
            590,
            600,
            610,
            620,
            630,
            640,
            650,
            660,
            670,
            680,
            690,
            700,
            710,
            720
          ],
          "values": [
            0.003632354755051812,
            0.012525723438434935,
            0.07427509791169547,
            0.0761009346137463,
            0.0549898911869755,
            0.04392205024779108,
            0.03795089651743821,
            0.039713859817354105,
            0.05092268678363637,
            0.044202437600238204,
            0.044499894501302296,
            0.052654675821461716,
            0.07628961581227268,
            0.10354869077464139,
            0.05770139049531096,
            0.03020914005180721,
            0.02890134325707626,
            0.07367703285899262,
            0.33468805340993923,
            0.6013387405068485,
            0.5517688166413703,
            0.4881090531339802,
            0.3612202949690561,
            0.31009332559644004,
            0.2207185409421124,
            0.17383865938883872,
            0.11163720614372989,
            0.04973634632646578,
            0.009052065863494045,
            0.0017199639224276032,
            0.0004828888928799229,
            0.0002374927187005939,
            0.00016881853697114924
          ]
        },
        {
          "channel": "green",
          "wavelengths": [
            400,
            410,
            420,
            430,
            440,
            450,
            460,
            470,
            480,
            490,
            500,
            510,
            520,
            530,
            540,
            550,
            560,
            570,
            580,
            590,
            600,
            610,
            620,
            630,
            640,
            650,
            660,
            670,
            680,
            690,
            700,
            710,
            720
          ],
          "values": [
            0.002765176045966846,
            0.008358170948591646,
            0.06395474345541925,
            0.09595581381458046,
            0.1106113559645005,
            0.1344606667452039,
            0.19361718084461976,
            0.3013157494807977,
            0.4013877386237878,
            0.40472004527178584,
            0.5419497072255239,
            0.7716037760807218,
            0.8556329490489916,
            0.9629753448834008,
            0.8697872666928916,
            0.7999002018489741,
            0.6323572279951706,
            0.5126323572701552,
            0.343055848700273,
            0.2271269883004884,
            0.11338783401191425,
            0.05726428190391797,
            0.02662103421140134,
            0.018519738783050473,
            0.011809623548996293,
            0.009097918971906566,
            0.00642287296486438,
            0.003669730042182353,
            0.0009917989047132827,
            0.00028022797751946297,
            0.00011697793262248914,
            0.00006705800015491245,
            0.00004634725565147869
          ]
        },
        {
          "channel": "blue",
          "wavelengths": [
            400,
            410,
            420,
            430,
            440,
            450,
            460,
            470,
            480,
            490,
            500,
            510,
            520,
            530,
            540,
            550,
            560,
            570,
            580,
            590,
            600,
            610,
            620,
            630,
            640,
            650,
            660,
            670,
            680,
            690,
            700,
            710,
            720
          ],
          "values": [
            0.011684157534186697,
            0.06402607415032087,
            0.5425333827898978,
            0.7871064973602733,
            0.8252306671830922,
            0.9412104161202082,
            1,
            0.9474848968908949,
            0.8852130728172055,
            0.6982074041335996,
            0.5213419297598628,
            0.3712356495900535,
            0.2035141415924856,
            0.1342652321775826,
            0.0807509745346958,
            0.046835985061790306,
            0.020944776915476377,
            0.01100686870088054,
            0.006734813544700558,
            0.004271800846418762,
            0.0023421708543199457,
            0.001719000898106399,
            0.0013177983506764467,
            0.0016834628790148012,
            0.002303802133152922,
            0.0031788061010697938,
            0.003090691511755774,
            0.001707524712889335,
            0.00037043778866249305,
            0.00007775860331855521,
            0.000024613175876268115,
            0.000009662679982635181,
            0.000005275852468850108
          ]
        }
      ],
      "interpretation": "energy_response",
      "basis": "The source quantity is not established; energy response is the explicit primary assumption, with a photon-response alternative for sensitivity comparison. Numeric values and profile naming cannot prove source units or optical scope.",
      "metadata": {
        "status": "estimated",
        "original_response_unit": "unknown",
        "original_response_scale": "unknown",
        "original_response_scope": "unknown",
        "source_attribution": "Sobotka (depositor); Sobotka Jiang 2013 camera spectral sensitivity mirror; src-sobotka-jiang2013-mirror; Sobotka, camera-spectral-sensitivity, pinned revision ae75f609f5831dc1b9287f9f89a04c1d93ed4efa, 2013.; https://github.com/sobotka/camera-spectral-sensitivity",
        "source_positive_peak": 1,
        "input_scale_hint": "normalized_or_fractional",
        "normalization": "one shared positive maximum across all channels",
        "normalization_divisor": 0.0019593361998885297,
        "method_version": "camera-spectra-siril-estimate-v1",
        "uncertainty": "unknown",
        "effective_camera_detection_model": true,
        "optical_transmission_separated": false,
        "interchannel_scale_comparability": "unknown; channel ratios inherit original possibly incomparable scales",
        "quantity_evidence_uri": null,
        "retained_channel_intervals_nm": [
          {
            "channel": "red",
            "minimum": 400,
            "maximum": 720
          },
          {
            "channel": "green",
            "minimum": 400,
            "maximum": 720
          },
          {
            "channel": "blue",
            "minimum": 400,
            "maximum": 720
          }
        ],
        "repairs": {
          "conflicting_duplicate_groups_merged": 0,
          "identical_duplicate_samples_removed": 0,
          "negative_samples_floored": 0,
          "negative_magnitude_total": 0,
          "bounded_nulls_interpolated": 0,
          "trimmed_null_samples": 0,
          "documented_gap_samples_omitted": 0,
          "partial_channels": []
        }
      }
    },
    "alternative": {
      "channels": [
        {
          "channel": "red",
          "wavelengths": [
            400,
            410,
            420,
            430,
            440,
            450,
            460,
            470,
            480,
            490,
            500,
            510,
            520,
            530,
            540,
            550,
            560,
            570,
            580,
            590,
            600,
            610,
            620,
            630,
            640,
            650,
            660,
            670,
            680,
            690,
            700,
            710,
            720
          ],
          "values": [
            0.0028468016649640993,
            0.010062262378714295,
            0.06112255299723294,
            0.06411614589464715,
            0.04740722114945182,
            0.038726128360719016,
            0.0342049400678265,
            0.036572017493396974,
            0.04789183853316669,
            0.04243764369559568,
            0.04359512709381106,
            0.05261578833949647,
            0.07772804308701861,
            0.10752995009148371,
            0.061050468517938015,
            0.032554423919054574,
            0.03171137091863652,
            0.08228410422117052,
            0.38034452285546533,
            0.6951526099755616,
            0.6486603698490561,
            0.5833855397522199,
            0.43880624004171614,
            0.38277355925650297,
            0.276775569442854,
            0.2213954458824184,
            0.14436498070620657,
            0.06529164995111698,
            0.012060507424480992,
            0.002325291427243122,
            0.0006622991818406092,
            0.0003303829374816122,
            0.0002381560349038508
          ]
        },
        {
          "channel": "green",
          "wavelengths": [
            400,
            410,
            420,
            430,
            440,
            450,
            460,
            470,
            480,
            490,
            500,
            510,
            520,
            530,
            540,
            550,
            560,
            570,
            580,
            590,
            600,
            610,
            620,
            630,
            640,
            650,
            660,
            670,
            680,
            690,
            700,
            710,
            720
          ],
          "values": [
            0.0021671638103709884,
            0.006714351430817228,
            0.05262971448285052,
            0.08084417082656868,
            0.09535892689840082,
            0.11855414331676162,
            0.17450612962064466,
            0.2774780621105071,
            0.3774976927089517,
            0.38856149140555196,
            0.5309308399429796,
            0.7710339173272772,
            0.8717657576623149,
            1,
            0.92027106603008,
            0.8620003819794603,
            0.6938402285203772,
            0.5725189068551548,
            0.3898538109063178,
            0.26256069678779526,
            0.13329893268389728,
            0.06844198810193056,
            0.03233892472549918,
            0.022860428604369508,
            0.014808974673026871,
            0.01158682329045096,
            0.008305814554847137,
            0.004817457393362451,
            0.00132142189796988,
            0.00037885196619704873,
            0.00016043936858275504,
            0.00009328630870891192,
            0.00006538309614966991
          ]
        },
        {
          "channel": "blue",
          "wavelengths": [
            400,
            410,
            420,
            430,
            440,
            450,
            460,
            470,
            480,
            490,
            500,
            510,
            520,
            530,
            540,
            550,
            560,
            570,
            580,
            590,
            600,
            610,
            620,
            630,
            640,
            650,
            660,
            670,
            680,
            690,
            700,
            710,
            720
          ],
          "values": [
            0.009157277128772918,
            0.05143392797598307,
            0.4464622245502556,
            0.663148688981543,
            0.7114379005667982,
            0.8298664380074117,
            0.9012946519487237,
            0.8725274849432112,
            0.8325264087289496,
            0.6703312905550893,
            0.5107420577491212,
            0.37096147793477185,
            0.20735136490192638,
            0.1394274867897472,
            0.0854378860943374,
            0.05047209254395229,
            0.02298120138108619,
            0.012292709087041508,
            0.007653543107026206,
            0.004938237481890618,
            0.0027534600847157484,
            0.0020545414192534644,
            0.0016008462078329318,
            0.0020780359488140263,
            0.0028889106667948383,
            0.004048427413064166,
            0.003996764482703054,
            0.0022415620380527895,
            0.0004935522750104939,
            0.00010512511997102413,
            0.00003375784054201664,
            0.000013442031461319919,
            0.000007442761483792289
          ]
        }
      ],
      "interpretation": "photon_response",
      "basis": "Alternative photon-response source-quantity assumption applied to the same numeric samples; this is a sensitivity comparison, not a probability or claim that the source measured this quantity.",
      "metadata": {
        "status": "estimated",
        "original_response_unit": "unknown",
        "original_response_scale": "unknown",
        "original_response_scope": "unknown",
        "source_attribution": "Sobotka (depositor); Sobotka Jiang 2013 camera spectral sensitivity mirror; src-sobotka-jiang2013-mirror; Sobotka, camera-spectral-sensitivity, pinned revision ae75f609f5831dc1b9287f9f89a04c1d93ed4efa, 2013.; https://github.com/sobotka/camera-spectral-sensitivity",
        "source_positive_peak": 1,
        "input_scale_hint": "normalized_or_fractional",
        "normalization": "one shared positive maximum across all channels",
        "normalization_divisor": 1,
        "method_version": "camera-spectra-siril-estimate-v1",
        "uncertainty": "unknown",
        "effective_camera_detection_model": true,
        "optical_transmission_separated": false,
        "interchannel_scale_comparability": "unknown; channel ratios inherit original possibly incomparable scales",
        "quantity_evidence_uri": null,
        "retained_channel_intervals_nm": [
          {
            "channel": "red",
            "minimum": 400,
            "maximum": 720
          },
          {
            "channel": "green",
            "minimum": 400,
            "maximum": 720
          },
          {
            "channel": "blue",
            "minimum": 400,
            "maximum": 720
          }
        ],
        "repairs": {
          "conflicting_duplicate_groups_merged": 0,
          "identical_duplicate_samples_removed": 0,
          "negative_samples_floored": 0,
          "negative_magnitude_total": 0,
          "bounded_nulls_interpolated": 0,
          "trimmed_null_samples": 0,
          "documented_gap_samples_omitted": 0,
          "partial_channels": []
        }
      }
    },
    "diagnostics": {
      "source_family_prior": "none",
      "primary_basis": "energy_response_assumption",
      "interpretation_difference_rms": 0.03751558499789329,
      "comparison_sample_count": 99,
      "comparison_limitations": "sampled-assumption difference only; not uncertainty bounds and excludes optics, gain, and measurement-error uncertainty",
      "observed_channel_diagnostics": [
        {
          "channel": "red",
          "positive_peak_wavelength_nm": 590,
          "positive_response_centroid_nm": 591.2439331057332,
          "observed_nir_to_visible_mean_ratio": null,
          "note": "descriptive numeric summary only; does not identify optical filtering or physical units"
        },
        {
          "channel": "green",
          "positive_peak_wavelength_nm": 530,
          "positive_response_centroid_nm": 529.3279589584338,
          "observed_nir_to_visible_mean_ratio": null,
          "note": "descriptive numeric summary only; does not identify optical filtering or physical units"
        },
        {
          "channel": "blue",
          "positive_peak_wavelength_nm": 460,
          "positive_response_centroid_nm": 468.6032340171482,
          "observed_nir_to_visible_mean_ratio": null,
          "note": "descriptive numeric summary only; does not identify optical filtering or physical units"
        }
      ]
    }
  },
  "transformations": {
    "xspd": "Longest uninterrupted native run per channel; no interpolation, padding, rescaling or default replacement. Repeated identical wavelength/value pairs removed.",
    "siril": "Source scales and channel grids retained. Pairs sorted by wavelength and repeated identical wavelength/value pairs removed.",
    "siril_estimated": "Derived relative photon-response model with documented source-quantity assumptions, numeric repairs and shared RGB normalization. Original samples and unknown source metadata are preserved separately."
  },
  "compatibility": "Format validation does not establish calibration accuracy or a complete optical response.",
  "original": {
    "profile": {
      "attribution_required": null,
      "blue": [
        0.009157277128772918,
        0.05143392797598307,
        0.4464622245502556,
        0.663148688981543,
        0.7114379005667982,
        0.8298664380074117,
        0.9012946519487237,
        0.8725274849432112,
        0.8325264087289496,
        0.6703312905550893,
        0.5107420577491212,
        0.37096147793477185,
        0.20735136490192638,
        0.1394274867897472,
        0.0854378860943374,
        0.05047209254395229,
        0.02298120138108619,
        0.012292709087041508,
        0.007653543107026206,
        0.004938237481890618,
        0.0027534600847157484,
        0.0020545414192534644,
        0.0016008462078329318,
        0.0020780359488140263,
        0.0028889106667948383,
        0.004048427413064166,
        0.003996764482703054,
        0.0022415620380527895,
        0.0004935522750104939,
        0.00010512511997102413,
        0.00003375784054201664,
        0.000013442031461319919,
        0.000007442761483792289
      ],
      "camera_id": "cam-sobotka-ref-nikond90",
      "checksum": {
        "algorithm": "sha256",
        "covers": "canonical_profile_revision",
        "value": "594cf804aa56b13f4ee7cee48eb7dc4feb5d0875b6b9b62a001732c2dd8c1250"
      },
      "citation": "Sobotka, camera-spectral-sensitivity, pinned revision ae75f609f5831dc1b9287f9f89a04c1d93ed4efa, 2013.",
      "commercial_api_allowed": null,
      "confidence_grade": "unassessed",
      "confidence_reason": "Canonical release: no claim about the per-leaf measurement precision is asserted; the upstream 'as is' wording (where present) is preserved.",
      "created_at": "2026-09-23T00:00:00Z",
      "derivatives_allowed": null,
      "derived_from": [
        {
          "checksum": null,
          "id": "src-sobotka-jiang2013-mirror",
          "kind": "source_artifact",
          "order": 0,
          "revision": "ae75f609f5831dc1b9287f9f89a04c1d93ed4efa",
          "uri": "https://github.com/sobotka/camera-spectral-sensitivity"
        }
      ],
      "documented_gaps": null,
      "estimation_method": null,
      "green": [
        0.0021671638103709884,
        0.006714351430817228,
        0.05262971448285052,
        0.08084417082656868,
        0.09535892689840082,
        0.11855414331676162,
        0.17450612962064466,
        0.2774780621105071,
        0.3774976927089517,
        0.38856149140555196,
        0.5309308399429796,
        0.7710339173272772,
        0.8717657576623149,
        1,
        0.92027106603008,
        0.8620003819794603,
        0.6938402285203772,
        0.5725189068551548,
        0.3898538109063178,
        0.26256069678779526,
        0.13329893268389728,
        0.06844198810193056,
        0.03233892472549918,
        0.022860428604369508,
        0.014808974673026871,
        0.01158682329045096,
        0.008305814554847137,
        0.004817457393362451,
        0.00132142189796988,
        0.00037885196619704873,
        0.00016043936858275504,
        0.00009328630870891192,
        0.00006538309614966991
      ],
      "interpolation_method": null,
      "license_id": "lic-src-sobotka-jiang2013-mirror",
      "measurement_method": null,
      "normalization_method": "unknown",
      "optical_configuration": {
        "configuration_id": "cfg-prf-sobotka-ref-nikond90-3cf14ed8587e",
        "configuration_type": "unknown",
        "description": "Canonical release: the optical configuration is honestly unknown; lens, body serial, filter stack, and hot-mirror / IR-cut filter state are not documented per leaf in the inspected source.",
        "evidence_source_ids": [
          "src-sobotka-jiang2013-mirror"
        ],
        "external_filters": null,
        "geometry": null,
        "internal_optical_stack": null,
        "lens": null,
        "modifier_or_vendor": null,
        "name": "unknown",
        "removed_components": null,
        "replacement_components": null
      },
      "original_normalization_method": "unknown",
      "original_wavelength_unit": "nm",
      "processing_notes": "source_column=cmf_NikonD90.mat",
      "profile_id": "prf-sobotka-ref-nikond90-3cf14ed8587e",
      "profile_revision": 1,
      "profile_type": "measured",
      "provenance_tier": "community_unverified",
      "quality_grade": "unassessed",
      "quality_reason": "Canonical release: no per-leaf scientific-quality assessment is asserted; the source-side claim is preserved verbatim.",
      "red": [
        0.0028468016649640993,
        0.010062262378714295,
        0.06112255299723294,
        0.06411614589464715,
        0.04740722114945182,
        0.038726128360719016,
        0.0342049400678265,
        0.036572017493396974,
        0.04789183853316669,
        0.04243764369559568,
        0.04359512709381106,
        0.05261578833949647,
        0.07772804308701861,
        0.10752995009148371,
        0.061050468517938015,
        0.032554423919054574,
        0.03171137091863652,
        0.08228410422117052,
        0.38034452285546533,
        0.6951526099755616,
        0.6486603698490561,
        0.5833855397522199,
        0.43880624004171614,
        0.38277355925650297,
        0.276775569442854,
        0.2213954458824184,
        0.14436498070620657,
        0.06529164995111698,
        0.012060507424480992,
        0.002325291427243122,
        0.0006622991818406092,
        0.0003303829374816122,
        0.0002381560349038508
      ],
      "redistribution_allowed": null,
      "response_scale": "unknown",
      "response_scope": "unknown",
      "response_unit": "unknown",
      "retrieved_date": "2026-09-23",
      "rights_evidence_source_ids": [
        "src-sobotka-jiang2013-mirror"
      ],
      "sample_count": 33,
      "sample_identifiers": null,
      "sampling_interval": 10,
      "schema_version": "0.1.0-draft",
      "scientific_notes": "Canonical release: native grid and native R/G/B samples are preserved verbatim; sparse cells (wavelengths absent in the upstream CSV / JSON) are preserved as null; the parser never invents a value.",
      "source_author": "Sobotka (depositor)",
      "source_id": "src-sobotka-jiang2013-mirror",
      "source_uri": "https://github.com/sobotka/camera-spectral-sensitivity",
      "uncertainty": null,
      "updated_at": "2026-09-23T00:00:00Z",
      "validation_reason": "Mirror copy of an upstream measurement; the depositor's authority to apply the upstream license is not independently re-verified.",
      "validation_status": "unverified",
      "version_date": "2026-09-23",
      "wavelength_max": 720,
      "wavelength_min": 400,
      "wavelength_unit": "nm",
      "wavelengths": [
        400,
        410,
        420,
        430,
        440,
        450,
        460,
        470,
        480,
        490,
        500,
        510,
        520,
        530,
        540,
        550,
        560,
        570,
        580,
        590,
        600,
        610,
        620,
        630,
        640,
        650,
        660,
        670,
        680,
        690,
        700,
        710,
        720
      ]
    },
    "source": {
      "authors": [
        "Sobotka (depositor)",
        "Jiang et al. (upstream)"
      ],
      "citation_text": "Sobotka, camera-spectral-sensitivity, pinned revision ae75f609f5831dc1b9287f9f89a04c1d93ed4efa, 2013.",
      "data_acquisition_method": "MATLAB v5 (.mat) mirror; parsed via stdlib-only parse_matlab_v5_bytes. Float32 re-encode of the Jiang float64 curves (max |diff| ~4.9e-6, worst at green[14]@540nm).",
      "doi": null,
      "known_limitations": [
        "source_category=mirror",
        "permission_status is 'unknown' on the canonical License record (no independent operational clearance granted)."
      ],
      "license_id": "lic-src-sobotka-jiang2013-mirror",
      "measurement_method": null,
      "normalization_method": null,
      "organization": "sobotka/camera-spectral-sensitivity",
      "original_wavelength_coverage": {
        "maximum": 720,
        "minimum": 400,
        "unit": "nm"
      },
      "publication": "Jiang et al., WACV 2013",
      "record_version": 1,
      "repository": "https://github.com/sobotka/camera-spectral-sensitivity",
      "retrieved_date": "2026-09-23",
      "rights_notes": "Mirror designation. Upstream Jiang 2013 license is CC BY-NC-SA 4.0; the Sobotka mirror-depositor's authority to apply that license is not independently re-verified.",
      "schema_version": "0.1.0-draft",
      "source_id": "src-sobotka-jiang2013-mirror",
      "title": "Sobotka Jiang 2013 camera spectral sensitivity mirror",
      "url": "https://github.com/sobotka/camera-spectral-sensitivity",
      "version": "ae75f609f5831dc1b9287f9f89a04c1d93ed4efa",
      "year": 2013
    },
    "license": {
      "attribution_required": null,
      "commercial_api_allowed": null,
      "commercial_use_allowed": null,
      "derivatives_allowed": null,
      "evidence_revision": "ae75f609f5831dc1b9287f9f89a04c1d93ed4efa",
      "evidence_url": "https://www.gujinwei.org/research/camspec/db.html",
      "license_id": "lic-src-sobotka-jiang2013-mirror",
      "license_name": null,
      "license_url": null,
      "notes": "Canonical release: observed upstream license text is preserved verbatim on license_name/license_url when available; the operational permission_status is the literal 'unknown' because the owner-updated policy (2026-09-23) revoked the prior bespoke grants. Downstream redistribution requires a fresh per-source review and a new authorization ID.",
      "permission_status": "unknown",
      "record_version": 1,
      "redistribution_allowed": null,
      "reviewed_date": "2026-09-23",
      "rights_holder": "sobotka/camera-spectral-sensitivity",
      "schema_version": "0.1.0-draft",
      "share_alike_required": null
    },
    "dataset_version": "recovered-2026-10-01-siril-source-review-v2"
  }
}
