{
  "schema_version": "camera-spectra-application-export-1",
  "profile_id": "prf-sobotka-ref-pointgreygrasshopper2-6d3207902d10",
  "profile_revision": 1,
  "exports": {
    "xspd": "/application-data/prf-sobotka-ref-pointgreygrasshopper2-6d3207902d10-r1.xspd",
    "siril": null,
    "metadata": "/application-data/prf-sobotka-ref-pointgreygrasshopper2-6d3207902d10-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-pointgreygrasshopper2-6d3207902d10-r1.estimated.siril.json",
    "siril_estimated_alternative": "/application-data/prf-sobotka-ref-pointgreygrasshopper2-6d3207902d10-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.021935099335666394,
            0.016205645022055043,
            0.010819604847655278,
            0.008539222941544513,
            0.006736251333065911,
            0.004214184829046297,
            0.0036999623832931106,
            0.004502681616816328,
            0.006125537636419204,
            0.0039028762197554755,
            0.005492882749649015,
            0.011333512930005564,
            0.02791222819870161,
            0.045996273215364744,
            0.025588522265029483,
            0.010959309332379902,
            0.012127726550272059,
            0.04956572514799868,
            0.24802512154125245,
            0.4485597282954049,
            0.4665224352395908,
            0.4576014661379703,
            0.4174243707351773,
            0.4321386339156434,
            0.3798608523346954,
            0.3773943197180699,
            0.3234298452913254,
            0.2115235126702611,
            0.07202732650909047,
            0.030586983629682537,
            0.014151064112631067,
            0.005091797300450216,
            0.005021077893499519
          ]
        },
        {
          "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.02014964913487338,
            0.026081721743833004,
            0.03116131575813747,
            0.043412086104941246,
            0.053451908279736796,
            0.06741026584991427,
            0.09093860023584407,
            0.1393872492953886,
            0.1936679023208638,
            0.20693182930294973,
            0.25684100609778987,
            0.3558128087934266,
            0.41015984104895775,
            0.4778427773387212,
            0.4557625128841155,
            0.44419780649124535,
            0.37637734526691746,
            0.3242402047426345,
            0.24766274097274002,
            0.1798721065599351,
            0.09583295217708339,
            0.04003820881783524,
            0.015330335440285073,
            0.008250546398681106,
            0.004685558225306208,
            0.00269246479421356,
            0.0028153208217344757,
            0.004322931306946529,
            0.003243281647467918,
            0.0024201815854049836,
            0.0016616063954248976,
            0.0007469525646148802,
            0.0007365782234396734
          ]
        },
        {
          "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.2587230662894121,
            0.4479404128205134,
            0.5354782480606793,
            0.7283214356615508,
            0.8274879210857238,
            0.9536592171350038,
            1,
            0.981587169845248,
            0.952302934937357,
            0.8199155096290407,
            0.6545597799008183,
            0.4879455708657341,
            0.2653576581066132,
            0.1332163190670167,
            0.05284797562794223,
            0.01273440356679007,
            0,
            0,
            0,
            0,
            0.000011052649715985548,
            0.00002456920623559572,
            0.00019779960538702466,
            0.00046101249918331096,
            0.00047146849278475615,
            0.0012609895064694455,
            0.0015848182658384682,
            0.0014456550504319174,
            0.0005081121998595058,
            0.00021756858868464038,
            0.00013538297159325748,
            0.00004064889957478163,
            0.00004008433152513189
          ]
        }
      ],
      "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.0021675706853457764,
        "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.019018351320055235,
            0.014402021245639749,
            0.009849948483817107,
            0.007959028809201327,
            0.006424572404217034,
            0.004110544574131345,
            0.00368916779949779,
            0.004587143918686506,
            0.00637321719008857,
            0.004145282440412804,
            0.005953105813090354,
            0.012528757098424364,
            0.031460898355217426,
            0.05284109193209326,
            0.029951062601217632,
            0.013065292702276687,
            0.01472111454814525,
            0.0612392113123635,
            0.3118149499556424,
            0.5736481014310738,
            0.6067322128088762,
            0.6050489493788666,
            0.5609740341997762,
            0.5901153519749788,
            0.5269601587399337,
            0.5317187617539849,
            0.4626976539368018,
            0.30718975076803395,
            0.1061645386097546,
            0.0457466198575072,
            0.02147140221589142,
            0.007836149700566841,
            0.007836149700566841
          ]
        },
        {
          "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.01747031551390177,
            0.023178929944863955,
            0.028368628912739717,
            0.04046246904923426,
            0.05097874736369741,
            0.06575243226643784,
            0.09067328825729329,
            0.14200190627732398,
            0.20149865652629453,
            0.21978428986040446,
            0.2783605178061425,
            0.3933372010436984,
            0.46230623283717814,
            0.5489517380727192,
            0.5334646296998532,
            0.5295565791149256,
            0.45686172012814824,
            0.40060373080206885,
            0.31135936836723943,
            0.23003244812151716,
            0.12463481869751379,
            0.05293924511364839,
            0.0206023431320652,
            0.01126669478247579,
            0.0065000183383388905,
            0.0037934700435208594,
            0.004027588542803253,
            0.006278073647719537,
            0.004780428711892561,
            0.0036196811138388806,
            0.0025211545193142494,
            0.0011495414625061734,
            0.0011495414625061734
          ]
        },
        {
          "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.22432021364468072,
            0.3980864281206864,
            0.4874885203173899,
            0.6788359231830389,
            0.7892009664981791,
            0.9302056932922365,
            0.9970825152590571,
            1,
            0.9908082841627013,
            0.8708401633348031,
            0.7094022953596986,
            0.5394048228809665,
            0.29909437003882894,
            0.15304056765024754,
            0.06185793028553764,
            0.01518149592670527,
            0,
            0,
            0,
            0,
            0.000014374439711859356,
            0.00003248584963108008,
            0.0002658216682501238,
            0.0006295446226488753,
            0.0006540424217756122,
            0.0017766345276886753,
            0.0022672357056571155,
            0.0020994848706536572,
            0.000748930994311773,
            0.0003254007534705667,
            0.00020541651236438143,
            0.00006255764780800135,
            0.00006255764780800135
          ]
        }
      ],
      "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.05001983901060522,
      "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": 600,
          "positive_response_centroid_nm": 619.7603009130149,
          "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": 533.6154521213789,
          "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": 470,
          "positive_response_centroid_nm": 465.4373882835073,
          "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.22432021364468072,
        0.3980864281206864,
        0.4874885203173899,
        0.6788359231830389,
        0.7892009664981791,
        0.9302056932922365,
        0.9970825152590571,
        1,
        0.9908082841627013,
        0.8708401633348031,
        0.7094022953596986,
        0.5394048228809665,
        0.29909437003882894,
        0.15304056765024754,
        0.06185793028553764,
        0.01518149592670527,
        0,
        0,
        0,
        0,
        0.000014374439711859356,
        0.00003248584963108008,
        0.0002658216682501238,
        0.0006295446226488753,
        0.0006540424217756122,
        0.0017766345276886753,
        0.0022672357056571155,
        0.0020994848706536572,
        0.000748930994311773,
        0.0003254007534705667,
        0.00020541651236438143,
        0.00006255764780800135,
        0.00006255764780800135
      ],
      "camera_id": "cam-sobotka-ref-pointgreygrasshopper2",
      "checksum": {
        "algorithm": "sha256",
        "covers": "canonical_profile_revision",
        "value": "911c4e1427aa4e65673f913ec582d02512ac30214b4cde8008e3d2cb73ab0aa9"
      },
      "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.01747031551390177,
        0.023178929944863955,
        0.028368628912739717,
        0.04046246904923426,
        0.05097874736369741,
        0.06575243226643784,
        0.09067328825729329,
        0.14200190627732398,
        0.20149865652629453,
        0.21978428986040446,
        0.2783605178061425,
        0.3933372010436984,
        0.46230623283717814,
        0.5489517380727192,
        0.5334646296998532,
        0.5295565791149256,
        0.45686172012814824,
        0.40060373080206885,
        0.31135936836723943,
        0.23003244812151716,
        0.12463481869751379,
        0.05293924511364839,
        0.0206023431320652,
        0.01126669478247579,
        0.0065000183383388905,
        0.0037934700435208594,
        0.004027588542803253,
        0.006278073647719537,
        0.004780428711892561,
        0.0036196811138388806,
        0.0025211545193142494,
        0.0011495414625061734,
        0.0011495414625061734
      ],
      "interpolation_method": null,
      "license_id": "lic-src-sobotka-jiang2013-mirror",
      "measurement_method": null,
      "normalization_method": "unknown",
      "optical_configuration": {
        "configuration_id": "cfg-prf-sobotka-ref-pointgreygrasshopper2-6d3207902d10",
        "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_PointGreyGrasshopper2.mat",
      "profile_id": "prf-sobotka-ref-pointgreygrasshopper2-6d3207902d10",
      "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.019018351320055235,
        0.014402021245639749,
        0.009849948483817107,
        0.007959028809201327,
        0.006424572404217034,
        0.004110544574131345,
        0.00368916779949779,
        0.004587143918686506,
        0.00637321719008857,
        0.004145282440412804,
        0.005953105813090354,
        0.012528757098424364,
        0.031460898355217426,
        0.05284109193209326,
        0.029951062601217632,
        0.013065292702276687,
        0.01472111454814525,
        0.0612392113123635,
        0.3118149499556424,
        0.5736481014310738,
        0.6067322128088762,
        0.6050489493788666,
        0.5609740341997762,
        0.5901153519749788,
        0.5269601587399337,
        0.5317187617539849,
        0.4626976539368018,
        0.30718975076803395,
        0.1061645386097546,
        0.0457466198575072,
        0.02147140221589142,
        0.007836149700566841,
        0.007836149700566841
      ],
      "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"
  }
}
