{
  "schema_version": "camera-spectra-application-export-1",
  "profile_id": "prf-sobotka-ref-nikond40-e48e7ccf213d",
  "profile_revision": 1,
  "exports": {
    "xspd": "/application-data/prf-sobotka-ref-nikond40-e48e7ccf213d-r1.xspd",
    "siril": null,
    "metadata": "/application-data/prf-sobotka-ref-nikond40-e48e7ccf213d-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-nikond40-e48e7ccf213d-r1.estimated.siril.json",
    "siril_estimated_alternative": "/application-data/prf-sobotka-ref-nikond40-e48e7ccf213d-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.03307333689208351,
            0.02733092300387033,
            0.020191319924379073,
            0.01651776229932582,
            0.012603269731090124,
            0.010254115458335215,
            0.009924983750291856,
            0.015763114640394538,
            0.018755778884054723,
            0.016717130203074554,
            0.021251067295154493,
            0.038069917903382024,
            0.07605619294885156,
            0.09647923290686074,
            0.05060374949664381,
            0.030573753521917737,
            0.033347862820855216,
            0.10284393645939134,
            0.41168961776918533,
            0.606431591106893,
            0.5078132116299098,
            0.43499148200721444,
            0.321070008577416,
            0.2533672338486959,
            0.17702773365959873,
            0.12663233103827082,
            0.09220381860458964,
            0.062288139946196315,
            0.03964040066471486,
            0.027296400761787062,
            0.016755144924634157,
            0.011356676340984336,
            0.007248258619082421
          ]
        },
        {
          "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.04622579394334634,
            0.06381970360341148,
            0.08107605109239913,
            0.10697889344017951,
            0.12168260582057645,
            0.1542805923516867,
            0.21075077019498814,
            0.3293885671753371,
            0.4257351984418202,
            0.462130870674201,
            0.585281691639307,
            0.8198217083390139,
            0.899550446053084,
            1,
            0.8869692939436677,
            0.843557178031826,
            0.660501117010316,
            0.534616066797627,
            0.35343767342074406,
            0.23878810137425668,
            0.10463198133384335,
            0.04257028469044125,
            0.01662458891441619,
            0.008979985977788135,
            0.004942465425017218,
            0.00285165274348963,
            0.0022903434963747393,
            0.0024806625351112034,
            0.0026932222728480028,
            0.0029853796763872026,
            0.002688193945650151,
            0.0021680419992760936,
            0.0013482575927773251
          ]
        },
        {
          "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.3187252961130184,
            0.5241112968411926,
            0.6631931877070206,
            0.8331456177399614,
            0.8660133343005579,
            0.9752154063565276,
            0.9548201214058062,
            0.8991994332190669,
            0.791683015700801,
            0.5981701861449764,
            0.38529487746944396,
            0.22635354775227118,
            0.08731341474722942,
            0.035779070455327217,
            0.01793692685106097,
            0.010812349687510813,
            0.0055996726455373015,
            0.0035002190934405853,
            0.003101129520091122,
            0.002632870041543583,
            0.0015508197479193765,
            0.0009483573984127595,
            0.0006379186597628362,
            0.00047854401846419384,
            0.0006032241234631792,
            0.00048286201384284514,
            0.0004208740719253384,
            0.0004287820194078556,
            0.00035588375141270607,
            0.0002678562515518697,
            0.00021139507244764962,
            0.00016958538520571605,
            0.0001264488572853494
          ]
        }
      ],
      "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.024961008975157368,
            0.021142789493560066,
            0.016000668619319265,
            0.013401203374924722,
            0.010463091852225763,
            0.008706324445756313,
            0.008614136839875951,
            0.01397861109619893,
            0.01698636578178541,
            0.015455459999068928,
            0.020048176693541975,
            0.0366333172277827,
            0.07462117044038268,
            0.09647923290686074,
            0.05155853722299559,
            0.03172748006991463,
            0.03523547769750739,
            0.11060574298462843,
            0.4505282609549575,
            0.6750842240623903,
            0.5748828810904639,
            0.5006505736309449,
            0.37559133078867535,
            0.30117237231071403,
            0.21376933875876075,
            0.15530380221674725,
            0.11481984958307388,
            0.07874161087538024,
            0.050859381984917185,
            0.035536823633269946,
            0.022129436692913035,
            0.01521366075867713,
            0.009846690954225176
          ]
        },
        {
          "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.034887391655355725,
            0.049369959391318316,
            0.06424894614869366,
            0.08679419656467395,
            0.10101952181330875,
            0.1309929557703,
            0.18291576281074443,
            0.2920992954196386,
            0.38557150047561073,
            0.42725306911388394,
            0.5521525392823651,
            0.7888850400998059,
            0.882577796127554,
            1,
            0.9037045636407182,
            0.8753895243726496,
            0.6978879726901452,
            0.5749644491974478,
            0.3867808501585501,
            0.26582071662417256,
            0.11845129962321889,
            0.048995988039941825,
            0.01944763231497743,
            0.010674322954729292,
            0.005968260135869848,
            0.003497309968430679,
            0.0028521258634100527,
            0.0031359318840085025,
            0.0034554549915785694,
            0.003886626371145603,
            0.0035504448338775575,
            0.002904358149973635,
            0.0018315952203767436
          ]
        },
        {
          "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.2405473932928441,
            0.40544458812243206,
            0.5255493185602805,
            0.675948331373931,
            0.7189544662117839,
            0.8280130808687498,
            0.8287118034842846,
            0.7974032709678518,
            0.7169959387478954,
            0.5530252664359216,
            0.36348573346173957,
            0.21781190444086473,
            0.08566599182747038,
            0.035779070455327217,
            0.01827535943315646,
            0.011220362883265937,
            0.005916635248114885,
            0.0037643865721908184,
            0.0033936889087789637,
            0.0029309308009636114,
            0.0017556449976445774,
            0.001091505684965629,
            0.0007462444699112423,
            0.000568835342702721,
            0.0007284215830498769,
            0.0005921892622600931,
            0.0005241073348504214,
            0.0005420451943457797,
            0.0004566055678502644,
            0.0003487185161713021,
            0.0002792010390818014,
            0.0002271804216906762,
            0.00017177957970839923
          ]
        }
      ],
      "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.042762089958092254,
      "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": 598.924207235317,
          "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": 526.8192539885209,
          "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": 457.02242391379826,
          "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.2405473932928441,
        0.40544458812243206,
        0.5255493185602805,
        0.675948331373931,
        0.7189544662117839,
        0.8280130808687498,
        0.8287118034842846,
        0.7974032709678518,
        0.7169959387478954,
        0.5530252664359216,
        0.36348573346173957,
        0.21781190444086473,
        0.08566599182747038,
        0.035779070455327217,
        0.01827535943315646,
        0.011220362883265937,
        0.005916635248114885,
        0.0037643865721908184,
        0.0033936889087789637,
        0.0029309308009636114,
        0.0017556449976445774,
        0.001091505684965629,
        0.0007462444699112423,
        0.000568835342702721,
        0.0007284215830498769,
        0.0005921892622600931,
        0.0005241073348504214,
        0.0005420451943457797,
        0.0004566055678502644,
        0.0003487185161713021,
        0.0002792010390818014,
        0.0002271804216906762,
        0.00017177957970839923
      ],
      "camera_id": "cam-sobotka-ref-nikond40",
      "checksum": {
        "algorithm": "sha256",
        "covers": "canonical_profile_revision",
        "value": "64a9555fcc007b71f1dd6a98f0f1ee9feb4207af9b1c91fffe3fe5ce2a001a7d"
      },
      "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.034887391655355725,
        0.049369959391318316,
        0.06424894614869366,
        0.08679419656467395,
        0.10101952181330875,
        0.1309929557703,
        0.18291576281074443,
        0.2920992954196386,
        0.38557150047561073,
        0.42725306911388394,
        0.5521525392823651,
        0.7888850400998059,
        0.882577796127554,
        1,
        0.9037045636407182,
        0.8753895243726496,
        0.6978879726901452,
        0.5749644491974478,
        0.3867808501585501,
        0.26582071662417256,
        0.11845129962321889,
        0.048995988039941825,
        0.01944763231497743,
        0.010674322954729292,
        0.005968260135869848,
        0.003497309968430679,
        0.0028521258634100527,
        0.0031359318840085025,
        0.0034554549915785694,
        0.003886626371145603,
        0.0035504448338775575,
        0.002904358149973635,
        0.0018315952203767436
      ],
      "interpolation_method": null,
      "license_id": "lic-src-sobotka-jiang2013-mirror",
      "measurement_method": null,
      "normalization_method": "unknown",
      "optical_configuration": {
        "configuration_id": "cfg-prf-sobotka-ref-nikond40-e48e7ccf213d",
        "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_NikonD40.mat",
      "profile_id": "prf-sobotka-ref-nikond40-e48e7ccf213d",
      "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.024961008975157368,
        0.021142789493560066,
        0.016000668619319265,
        0.013401203374924722,
        0.010463091852225763,
        0.008706324445756313,
        0.008614136839875951,
        0.01397861109619893,
        0.01698636578178541,
        0.015455459999068928,
        0.020048176693541975,
        0.0366333172277827,
        0.07462117044038268,
        0.09647923290686074,
        0.05155853722299559,
        0.03172748006991463,
        0.03523547769750739,
        0.11060574298462843,
        0.4505282609549575,
        0.6750842240623903,
        0.5748828810904639,
        0.5006505736309449,
        0.37559133078867535,
        0.30117237231071403,
        0.21376933875876075,
        0.15530380221674725,
        0.11481984958307388,
        0.07874161087538024,
        0.050859381984917185,
        0.035536823633269946,
        0.022129436692913035,
        0.01521366075867713,
        0.009846690954225176
      ],
      "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"
  }
}
