{
  "schema_version": "camera-spectra-application-export-1",
  "profile_id": "prf-sobotka-ref-pointgreygrasshopper-eb9efe1231dd",
  "profile_revision": 1,
  "exports": {
    "xspd": "/application-data/prf-sobotka-ref-pointgreygrasshopper-eb9efe1231dd-r1.xspd",
    "siril": null,
    "metadata": "/application-data/prf-sobotka-ref-pointgreygrasshopper-eb9efe1231dd-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-pointgreygrasshopper-eb9efe1231dd-r1.estimated.siril.json",
    "siril_estimated_alternative": "/application-data/prf-sobotka-ref-pointgreygrasshopper-eb9efe1231dd-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.04426299030234381,
            0.03665045439032069,
            0.024636100257475407,
            0.019606766383495105,
            0.013920226014941561,
            0.010118189361568702,
            0.008585328504340626,
            0.009832288117477127,
            0.012296911396503263,
            0.011760066058864236,
            0.01547167456370499,
            0.021821024618421156,
            0.028311763085378683,
            0.037308765246371604,
            0.025204790009024845,
            0.024045314957945957,
            0.020160166114425462,
            0.03798401955309329,
            0.1965666423689045,
            0.3993615565652919,
            0.43520187086615064,
            0.40034593346955916,
            0.3502828600957354,
            0.34793717131209917,
            0.3161388951539845,
            0.3113766139444055,
            0.2706849992529741,
            0.24618040162849056,
            0.1013089602306267,
            0.015044330599641047,
            0.0034354956216912226,
            0.0033871083594138817,
            0.0033400651877553552
          ]
        },
        {
          "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.03165890779453812,
            0.04021439883517392,
            0.04401507147281719,
            0.056988410822015376,
            0.0661773826168296,
            0.07735028248976551,
            0.10131129114742794,
            0.1475049474196579,
            0.18968242810892633,
            0.20018948044321336,
            0.25014794098949844,
            0.34576782467709904,
            0.3863019891319986,
            0.4390953114705851,
            0.40113275980569846,
            0.3845073797856662,
            0.321760605934591,
            0.28939376436834174,
            0.21917347997157938,
            0.17064494625667234,
            0.10596825007110813,
            0.061367191396660144,
            0.03714000178694243,
            0.030328954778439964,
            0.02547813497072178,
            0.024436068789434252,
            0.022933881903985036,
            0.02722243004501809,
            0.015633363887991497,
            0.002979076533788301,
            0.0008132525737564524,
            0.0008017983121542489,
            0.0007906622244854399
          ]
        },
        {
          "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.3800529741460808,
            0.578819434551961,
            0.6494743960679248,
            0.832879328616434,
            0.8896092394921282,
            0.974664752067247,
            1,
            0.9493575915853083,
            0.8668564499421157,
            0.6954528574276407,
            0.49152204393194016,
            0.3508263906961859,
            0.19842937806680455,
            0.1366935554256193,
            0.08694545293593056,
            0.0554072331189192,
            0.04365765441793121,
            0.039251879670928344,
            0.02974007087319882,
            0.022568696004143112,
            0.013458812718553365,
            0.007675019567904311,
            0.004947971366941013,
            0.004714520550795272,
            0.006175583757944638,
            0.0096780056142205,
            0.012641193213880889,
            0.015178519931790438,
            0.007206545982033983,
            0.0013067454498810528,
            0.0004841089259358479,
            0.0004772904903592866,
            0.00047066145577096316
          ]
        }
      ],
      "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.002173913043478261,
        "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.03848955678464679,
            0.03266670934789453,
            0.02249383066986885,
            0.01832806422804977,
            0.013314998796900623,
            0.009898228723273731,
            0.008585328504340626,
            0.010046033511335326,
            0.012831559718090363,
            0.012527026888790165,
            0.016817037569244554,
            0.024192875120423455,
            0.032004601748688945,
            0.0429861860447325,
            0.02958823174972482,
            0.028749833101891907,
            0.02454281092190926,
            0.0470671546636156,
            0.24784489689992306,
            0.5122246051598309,
            0.56765461417324,
            0.5308935204705023,
            0.47212037665077383,
            0.47652264766657054,
            0.43984541934467414,
            0.43998869361709475,
            0.38837412936296284,
            0.358567106719758,
            0.14976107164527427,
            0.02256649589946157,
            0.005227928119964904,
            0.005227928119964904,
            0.005227928119964904
          ]
        },
        {
          "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.0275294850387288,
            0.03584326852700284,
            0.040187673953441784,
            0.05327177533362307,
            0.06330010511175005,
            0.07566875460955322,
            0.10131129114742794,
            0.15071157671138957,
            0.19792949020061879,
            0.2132453161242925,
            0.2718999358581505,
            0.38335128388113154,
            0.43668920510573755,
            0.5059141632161089,
            0.47089497890234167,
            0.45973708452634,
            0.3917085637464586,
            0.35859662106511914,
            0.2763491703989479,
            0.21887069193790584,
            0.13821945661448887,
            0.08137823206948411,
            0.05005826327805284,
            0.04153748154438517,
            0.035447839959265086,
            0.03452922763724405,
            0.03290513490571766,
            0.039650061152526346,
            0.02311019009529178,
            0.004468614800682452,
            0.0012375582644119929,
            0.0012375582644119929,
            0.0012375582644119929
          ]
        },
        {
          "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.3304808470835485,
            0.5159042786224001,
            0.5929983616272356,
            0.7785611115327534,
            0.850930576905514,
            0.9534763878918721,
            1,
            0.9699958000980323,
            0.9045458608091643,
            0.740808478564226,
            0.5342630912303697,
            0.38895969403272784,
            0.2243114708581269,
            0.1574947486425614,
            0.10206640127261414,
            0.06624777872914252,
            0.05314844885661191,
            0.04863819872267208,
            0.0374983502314246,
            0.02894680574444443,
            0.017554973111156565,
            0.010177743340047021,
            0.006669004885877018,
            0.006456843363045698,
            0.00859211653279254,
            0.013675442715746361,
            0.018137364176437798,
            0.022107844248477376,
            0.010653154929963278,
            0.001960118174821579,
            0.0007366874959893337,
            0.0007366874959893337,
            0.0007366874959893337
          ]
        }
      ],
      "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.04529855910733206,
      "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": 615.3660764070012,
          "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": 535.8229502304661,
          "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": 465.43012352459385,
          "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.3304808470835485,
        0.5159042786224001,
        0.5929983616272356,
        0.7785611115327534,
        0.850930576905514,
        0.9534763878918721,
        1,
        0.9699958000980323,
        0.9045458608091643,
        0.740808478564226,
        0.5342630912303697,
        0.38895969403272784,
        0.2243114708581269,
        0.1574947486425614,
        0.10206640127261414,
        0.06624777872914252,
        0.05314844885661191,
        0.04863819872267208,
        0.0374983502314246,
        0.02894680574444443,
        0.017554973111156565,
        0.010177743340047021,
        0.006669004885877018,
        0.006456843363045698,
        0.00859211653279254,
        0.013675442715746361,
        0.018137364176437798,
        0.022107844248477376,
        0.010653154929963278,
        0.001960118174821579,
        0.0007366874959893337,
        0.0007366874959893337,
        0.0007366874959893337
      ],
      "camera_id": "cam-sobotka-ref-pointgreygrasshopper",
      "checksum": {
        "algorithm": "sha256",
        "covers": "canonical_profile_revision",
        "value": "3884f5f56f81c4361787b4934c5a4cfb40fdb39e1ff62898a525b895e8b217ec"
      },
      "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.0275294850387288,
        0.03584326852700284,
        0.040187673953441784,
        0.05327177533362307,
        0.06330010511175005,
        0.07566875460955322,
        0.10131129114742794,
        0.15071157671138957,
        0.19792949020061879,
        0.2132453161242925,
        0.2718999358581505,
        0.38335128388113154,
        0.43668920510573755,
        0.5059141632161089,
        0.47089497890234167,
        0.45973708452634,
        0.3917085637464586,
        0.35859662106511914,
        0.2763491703989479,
        0.21887069193790584,
        0.13821945661448887,
        0.08137823206948411,
        0.05005826327805284,
        0.04153748154438517,
        0.035447839959265086,
        0.03452922763724405,
        0.03290513490571766,
        0.039650061152526346,
        0.02311019009529178,
        0.004468614800682452,
        0.0012375582644119929,
        0.0012375582644119929,
        0.0012375582644119929
      ],
      "interpolation_method": null,
      "license_id": "lic-src-sobotka-jiang2013-mirror",
      "measurement_method": null,
      "normalization_method": "unknown",
      "optical_configuration": {
        "configuration_id": "cfg-prf-sobotka-ref-pointgreygrasshopper-eb9efe1231dd",
        "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_PointGreyGrasshopper.mat",
      "profile_id": "prf-sobotka-ref-pointgreygrasshopper-eb9efe1231dd",
      "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.03848955678464679,
        0.03266670934789453,
        0.02249383066986885,
        0.01832806422804977,
        0.013314998796900623,
        0.009898228723273731,
        0.008585328504340626,
        0.010046033511335326,
        0.012831559718090363,
        0.012527026888790165,
        0.016817037569244554,
        0.024192875120423455,
        0.032004601748688945,
        0.0429861860447325,
        0.02958823174972482,
        0.028749833101891907,
        0.02454281092190926,
        0.0470671546636156,
        0.24784489689992306,
        0.5122246051598309,
        0.56765461417324,
        0.5308935204705023,
        0.47212037665077383,
        0.47652264766657054,
        0.43984541934467414,
        0.43998869361709475,
        0.38837412936296284,
        0.358567106719758,
        0.14976107164527427,
        0.02256649589946157,
        0.005227928119964904,
        0.005227928119964904,
        0.005227928119964904
      ],
      "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"
  }
}
