{
  "schema_version": "camera-spectra-application-export-1",
  "profile_id": "prf-sobotka-ref-hasselblad-334c38bc5b6f",
  "profile_revision": 1,
  "exports": {
    "xspd": "/application-data/prf-sobotka-ref-hasselblad-334c38bc5b6f-r1.xspd",
    "siril": null,
    "metadata": "/application-data/prf-sobotka-ref-hasselblad-334c38bc5b6f-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-hasselblad-334c38bc5b6f-r1.estimated.siril.json",
    "siril_estimated_alternative": "/application-data/prf-sobotka-ref-hasselblad-334c38bc5b6f-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.015240472770255878,
            0.01414577185856051,
            0.012384631964275061,
            0.010946245231709678,
            0.011259582621329065,
            0.012462793475526621,
            0.017100734621975432,
            0.02702665892513843,
            0.0314373648072264,
            0.03152843667391976,
            0.0393838890787621,
            0.04620780854389942,
            0.05100634132896099,
            0.058435235440177175,
            0.06376409828701833,
            0.06685197376359132,
            0.056239793166826424,
            0.059232793068365104,
            0.09823184786143835,
            0.2722797981177613,
            0.4146175883526052,
            0.44933943385965097,
            0.2992130662689225,
            0.27205435911902903,
            0.19372042428746672,
            0.13096254946438068,
            0.08641254817261505,
            0.060452336238694754,
            0.0373953969756077,
            0.020697419701130756,
            0.013552897333900464,
            0.008752502586384006,
            0.005238568644067047
          ]
        },
        {
          "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.014304497366633827,
            0.01860920816787866,
            0.023609415764075888,
            0.03167368853927689,
            0.04346328682216998,
            0.06465216587623508,
            0.10974127039426905,
            0.20922943072047182,
            0.29558988258315977,
            0.3526078808381748,
            0.5029747004496918,
            0.7127591806829278,
            0.8839473930067857,
            1,
            0.9401645456239452,
            0.9045417940436552,
            0.7413211081697868,
            0.6244242043379414,
            0.4349676075175498,
            0.27934415799827694,
            0.11829019433205928,
            0.05164791423704463,
            0.018922769661221823,
            0.015248025022809237,
            0.009946885413378386,
            0.006976905556820051,
            0.005241479945063771,
            0.004821682221610003,
            0.004111927400710633,
            0.003219165723537455,
            0.0029454568619923845,
            0.0022302590689655334,
            0.0013786360871716127
          ]
        },
        {
          "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.34463807722810125,
            0.49509326482475285,
            0.5581652471855642,
            0.6411638307850263,
            0.7035254544423175,
            0.837311020510323,
            0.8751568028882794,
            0.9330637570169502,
            0.946929360924421,
            0.8725828263869534,
            0.7447083939699595,
            0.5827726340737306,
            0.39229366966601203,
            0.25189097093186796,
            0.14633455184586874,
            0.08729214851244195,
            0.05069052332398617,
            0.03933117909204251,
            0.029193601554840572,
            0.023385758001124815,
            0.016702685579955866,
            0.013682306554729082,
            0.008844763428010194,
            0.009151632999451034,
            0.007349233939498723,
            0.006018732621247122,
            0.004714171198004909,
            0.003945316159127406,
            0.0028067103539813018,
            0.0018400588836881054,
            0.00146237026185602,
            0.0010421390046530471,
            0.0006563288376548561
          ]
        }
      ],
      "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.0018867924528301887,
        "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.011502243600193116,
            0.010942955588697754,
            0.009814236650934954,
            0.00888091594270785,
            0.009347578025254318,
            0.010581617101862225,
            0.014842147030393774,
            0.023967037160028418,
            0.02847157567446919,
            0.02914893201928431,
            0.037154612338454816,
            0.044464117655450386,
            0.05004395753030135,
            0.058435235440177175,
            0.06496719448111302,
            0.06937468975467025,
            0.05942317768570339,
            0.06370319254522284,
            0.10749900332006461,
            0.3031039262065645,
            0.46937840190860963,
            0.5171642540648813,
            0.3500228322391169,
            0.3233853702735628,
            0.23392655008297866,
            0.16061444745631595,
            0.10760807885646402,
            0.07642087788665186,
            0.047978999893232524,
            0.026945697346755133,
            0.017900053082510047,
            0.011725050634589895,
            0.007116546082506177
          ]
        },
        {
          "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.010795847069157604,
            0.014395802544962737,
            0.018709348341343156,
            0.025697520890356724,
            0.036082728682556214,
            0.05489334838548262,
            0.09524714034219578,
            0.18554308007287124,
            0.2677040446036164,
            0.3259959653032182,
            0.47450443438650175,
            0.6858626078269682,
            0.8672691403085444,
            1,
            0.9579034993149631,
            0.9386754466490761,
            0.7832826803303408,
            0.6715505593823143,
            0.47600228747203566,
            0.3109680249414781,
            0.1339134275457275,
            0.059443825819994765,
            0.02213607016973119,
            0.01812501087616947,
            0.01201133332936258,
            0.0085565822866661,
            0.006527125969324695,
            0.006095334129205098,
            0.005275680438647604,
            0.004190989338190272,
            0.0038902260441408855,
            0.0029877055452179786,
            0.0018728641184218135
          ]
        },
        {
          "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.26010420922875566,
            0.38299667656254466,
            0.44231962984516404,
            0.5201895230897383,
            0.5840588678389051,
            0.7109244513766894,
            0.7595700553369972,
            0.8274338977320125,
            0.8575964023466455,
            0.8067275187351078,
            0.7025550886509052,
            0.5607812139200049,
            0.3848919023138231,
            0.25189097093186796,
            0.14909558112597948,
            0.09058619185253411,
            0.05355979822911747,
            0.04229956996691365,
            0.031947714909070814,
            0.026033202303138943,
            0.01890870065655381,
            0.01574756037431083,
            0.010346704387483622,
            0.010878356206894627,
            0.008874546643922987,
            0.007381464535491754,
            0.0058704773409117735,
            0.004987475144557286,
            0.003601062340957142,
            0.002395548358009043,
            0.001931432421319272,
            0.0013960730062333275,
            0.0008916165341726349
          ]
        }
      ],
      "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.03858334291184023,
      "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": 610,
          "positive_response_centroid_nm": 601.8010803114262,
          "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.8830930973004,
          "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": 480,
          "positive_response_centroid_nm": 473.243206163864,
          "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.26010420922875566,
        0.38299667656254466,
        0.44231962984516404,
        0.5201895230897383,
        0.5840588678389051,
        0.7109244513766894,
        0.7595700553369972,
        0.8274338977320125,
        0.8575964023466455,
        0.8067275187351078,
        0.7025550886509052,
        0.5607812139200049,
        0.3848919023138231,
        0.25189097093186796,
        0.14909558112597948,
        0.09058619185253411,
        0.05355979822911747,
        0.04229956996691365,
        0.031947714909070814,
        0.026033202303138943,
        0.01890870065655381,
        0.01574756037431083,
        0.010346704387483622,
        0.010878356206894627,
        0.008874546643922987,
        0.007381464535491754,
        0.0058704773409117735,
        0.004987475144557286,
        0.003601062340957142,
        0.002395548358009043,
        0.001931432421319272,
        0.0013960730062333275,
        0.0008916165341726349
      ],
      "camera_id": "cam-sobotka-ref-hasselblad",
      "checksum": {
        "algorithm": "sha256",
        "covers": "canonical_profile_revision",
        "value": "419794f7c12bb31834b462630e3ad24fc76f03c37a1aa76b4e0b1bdac949cf7e"
      },
      "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.010795847069157604,
        0.014395802544962737,
        0.018709348341343156,
        0.025697520890356724,
        0.036082728682556214,
        0.05489334838548262,
        0.09524714034219578,
        0.18554308007287124,
        0.2677040446036164,
        0.3259959653032182,
        0.47450443438650175,
        0.6858626078269682,
        0.8672691403085444,
        1,
        0.9579034993149631,
        0.9386754466490761,
        0.7832826803303408,
        0.6715505593823143,
        0.47600228747203566,
        0.3109680249414781,
        0.1339134275457275,
        0.059443825819994765,
        0.02213607016973119,
        0.01812501087616947,
        0.01201133332936258,
        0.0085565822866661,
        0.006527125969324695,
        0.006095334129205098,
        0.005275680438647604,
        0.004190989338190272,
        0.0038902260441408855,
        0.0029877055452179786,
        0.0018728641184218135
      ],
      "interpolation_method": null,
      "license_id": "lic-src-sobotka-jiang2013-mirror",
      "measurement_method": null,
      "normalization_method": "unknown",
      "optical_configuration": {
        "configuration_id": "cfg-prf-sobotka-ref-hasselblad-334c38bc5b6f",
        "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_Hasselblad.mat",
      "profile_id": "prf-sobotka-ref-hasselblad-334c38bc5b6f",
      "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.011502243600193116,
        0.010942955588697754,
        0.009814236650934954,
        0.00888091594270785,
        0.009347578025254318,
        0.010581617101862225,
        0.014842147030393774,
        0.023967037160028418,
        0.02847157567446919,
        0.02914893201928431,
        0.037154612338454816,
        0.044464117655450386,
        0.05004395753030135,
        0.058435235440177175,
        0.06496719448111302,
        0.06937468975467025,
        0.05942317768570339,
        0.06370319254522284,
        0.10749900332006461,
        0.3031039262065645,
        0.46937840190860963,
        0.5171642540648813,
        0.3500228322391169,
        0.3233853702735628,
        0.23392655008297866,
        0.16061444745631595,
        0.10760807885646402,
        0.07642087788665186,
        0.047978999893232524,
        0.026945697346755133,
        0.017900053082510047,
        0.011725050634589895,
        0.007116546082506177
      ],
      "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"
  }
}
