{
  "conformance": {
    "checked": 2,
    "counts": {
      "SKIPPED": 2
    },
    "missing": [
      "orekit_jpype not importable (ModuleNotFoundError: No module named 'orekit_jpype'); pip install 'satnogs-optical-network[od]'",
      "no JVM (JAVA_HOME unset and no 'java' on PATH)",
      "orekit-data not found (set OREKIT_DATA_PATH to the orekit-data zip or directory, or put orekit-data.zip in the working directory)"
    ],
    "note": "Orekit is the conformance authority (ADR 0014). SKIPPED means it did not run here; it does not mean the file conforms. NOT_RUN means nothing was checked at all, which is not a pass either. This deployment does not carry a JVM, by decision (network #11): the gate runs on bench machines that install the optional [od] extra, not on the deployed service.",
    "status": "SKIPPED",
    "structural_problems": []
  },
  "correlation_metrics": {
    "basis": "correlation",
    "correlation_run_id": 526,
    "note": "counts here move when correlation improves; the five primary metrics do not (see docs/decisions/0002-unk-participants.md)",
    "objects": 312,
    "objects_not_in_advisory": 312,
    "tracks_resolved_beyond_advisory": 394,
    "tracks_with_object": 394,
    "tracks_without_object": 267,
    "unk_designations": 212
  },
  "correlation_run_id": 526,
  "correlation_version": 14,
  "date": "2026-09-01",
  "epoch_collisions": {
    "detail": [
      {
        "epoch": "2026-09-01T19:23:52.164634",
        "excluded_measurements": 3,
        "kind": "contradictory",
        "measurements": [
          "0d6b8c1b-9b51-585f-a281-cf31220a2911",
          "2e41faa7-4eb4-5854-80a6-51a8e739ae62",
          "42242d1f-1007-5c78-b50d-f96203d53a7d"
        ],
        "object_norad_id": 55628,
        "positions": [
          "198.223223 44.482070",
          "199.988627 44.286944",
          "201.448369 44.103851"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7350,
          7352,
          7354
        ],
        "station_id": 7,
        "track_id": 7350
      },
      {
        "epoch": "2026-09-01T19:50:09.441754",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "33123c64-635b-5eab-b3c8-2091cdaeb664",
          "e7691c77-ba28-5170-92b2-c419d0dcaa58"
        ],
        "object_norad_id": 67679,
        "positions": [
          "41.312939 64.031731",
          "42.301598 64.111749"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7528,
          7529
        ],
        "station_id": 11,
        "track_id": 7528
      },
      {
        "epoch": "2026-09-01T19:53:33.253059",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "7b5616be-59f2-54c4-8d52-e33797792361",
          "fcf5deba-4f27-59ca-b20c-abb21a129a4e"
        ],
        "object_norad_id": 67571,
        "positions": [
          "38.627820 56.392830",
          "42.357047 57.072640"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7542,
          7543
        ],
        "station_id": 11,
        "track_id": 7542
      },
      {
        "epoch": "2026-09-01T20:09:41.774800",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "14729f2c-d3cb-5210-b29a-f64baf52963a",
          "4f31e0e6-c9f8-5767-945f-c7338fe1caf4"
        ],
        "object_norad_id": 65985,
        "positions": [
          "54.460461 55.263220",
          "55.757449 55.438024"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7606,
          7607
        ],
        "station_id": 11,
        "track_id": 7606
      },
      {
        "epoch": "2026-09-01T20:42:23.929829",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "48417db5-f4c0-5eb1-9b32-b24b9c5aa768",
          "ed55a7e9-8174-5c7f-8025-7048cb49ff33"
        ],
        "object_norad_id": 65065,
        "positions": [
          "62.005336 59.330668",
          "63.656810 59.454501"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7697,
          7698
        ],
        "station_id": 11,
        "track_id": 7697
      },
      {
        "epoch": "2026-09-01T20:45:36.331932",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "5c3fa960-494a-5a4d-8225-b2c4fead2c5e",
          "6253efd8-aac3-59c0-82ac-b4457bcd1b0b"
        ],
        "object_norad_id": 99155,
        "positions": [
          "51.456634 63.752715",
          "53.498956 62.650092"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7708,
          7709
        ],
        "station_id": 11,
        "track_id": 7708
      },
      {
        "epoch": "2026-09-01T20:48:38.222265",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "cacc9486-de53-52a5-b167-7c1c8268d659",
          "e27e5a71-0694-5afa-a49d-7ab410cf175e"
        ],
        "object_norad_id": 57761,
        "positions": [
          "48.013695 60.340662",
          "49.013540 60.272860"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7726,
          7727
        ],
        "station_id": 11,
        "track_id": 7726
      },
      {
        "epoch": "2026-09-01T20:49:42.092809",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "65722df9-d309-5d19-91ae-6d2eac782d4b",
          "85ab9d71-4aa5-54c5-9c31-e74bdcfaa3ad"
        ],
        "object_norad_id": 68652,
        "positions": [
          "54.249880 55.117766",
          "54.873967 55.181455"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7731,
          7732
        ],
        "station_id": 11,
        "track_id": 7731
      },
      {
        "epoch": "2026-09-01T20:51:40.311426",
        "excluded_measurements": 5,
        "kind": "contradictory",
        "measurements": [
          "02a12832-c5dc-5579-b5c2-d147fcad4733",
          "3e2db68a-f521-5330-b113-ab00107f550e",
          "561471c0-c87d-59e1-ba85-2320b54ae362",
          "5a5342ba-dd14-5c28-b545-7de37646384d",
          "b1af5a34-a3e6-51ef-ab9f-5bc92ffaa7ad"
        ],
        "object_norad_id": 68672,
        "positions": [
          "53.629370 57.738209",
          "55.488300 57.515848",
          "56.613990 57.368971",
          "56.869707 57.333898",
          "58.696420 57.060235"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7738,
          7739,
          7740,
          7741,
          7742
        ],
        "station_id": 11,
        "track_id": 7738
      },
      {
        "epoch": "2026-09-01T20:52:44.381911",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "a0b5d913-e561-5f5e-bb0a-2b2c3b70bb78",
          "dd68e5c2-c35a-54de-b501-7984f928e9d5"
        ],
        "object_norad_id": 68692,
        "positions": [
          "59.016134 57.671543",
          "61.956507 58.053663"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7746,
          7747
        ],
        "station_id": 11,
        "track_id": 7746
      },
      {
        "epoch": "2026-09-01T20:52:54.990006",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "222e0d02-cddf-5c93-a426-86071b71eea5",
          "8b96da85-faa5-5123-8949-ce68c2fb0bd4"
        ],
        "object_norad_id": 68692,
        "positions": [
          "64.938251 58.363928",
          "67.316166 58.558953"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7747,
          7748
        ],
        "station_id": 11,
        "track_id": 7747
      },
      {
        "epoch": "2026-09-01T21:01:38.040597",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "2c9b03ce-4d0c-5a85-9596-71f5be1b3d43",
          "62f65cad-3e63-5ac7-bab7-cb2b366fb4d9"
        ],
        "object_norad_id": 68372,
        "positions": [
          "56.829083 61.952365",
          "60.557583 61.478770"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7772,
          7773
        ],
        "station_id": 11,
        "track_id": 7772
      },
      {
        "epoch": "2026-09-01T21:01:48.452862",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "c01ac450-02b6-5a32-ac5f-e85337687087",
          "ead75726-0ae8-572c-bd90-693c2bf81655"
        ],
        "object_norad_id": 68372,
        "positions": [
          "64.466228 60.853917",
          "68.695727 60.000481"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7772,
          7773
        ],
        "station_id": 11,
        "track_id": 7772
      },
      {
        "epoch": "2026-09-01T21:04:11.849683",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "80ed697b-35b5-52a6-8e4e-79b2578d380a",
          "caf2f0e3-dc5c-5d3d-9475-e9c7646740ac"
        ],
        "object_norad_id": 5721,
        "positions": [
          "232.699768 36.045397",
          "233.443649 35.906494"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7775,
          7776
        ],
        "station_id": 7,
        "track_id": 7775
      },
      {
        "epoch": "2026-09-01T21:20:57.758792",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "d0170519-fed6-585f-a37c-7b642c2af272",
          "db9fda94-aea4-5fee-a8c4-eac2e51ded8d"
        ],
        "object_norad_id": 62330,
        "positions": [
          "70.474635 55.144828",
          "71.434206 55.117500"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7798,
          7799
        ],
        "station_id": 11,
        "track_id": 7798
      },
      {
        "epoch": "2026-09-01T21:29:29.094",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "68c89557-39dc-5a23-a894-3e60a1a35304",
          "cd78c923-7ecc-5464-89d7-bfcde447a5cf"
        ],
        "object_norad_id": 8520,
        "positions": [
          "62.686674 58.930831",
          "64.520383 59.258608"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7810,
          7811
        ],
        "station_id": 11,
        "track_id": 7810
      },
      {
        "epoch": "2026-09-01T22:07:39.318839",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "3fea1991-62cd-501e-b2ab-f39ed76abf25",
          "bf5da49e-1b53-5eb9-98c8-7c77ac660475"
        ],
        "object_norad_id": 53686,
        "positions": [
          "237.984944 42.900935",
          "238.463637 42.509360"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7838,
          7839
        ],
        "station_id": 7,
        "track_id": 7838
      },
      {
        "epoch": "2026-09-01T22:57:25.925294",
        "excluded_measurements": 4,
        "kind": "contradictory",
        "measurements": [
          "16b13358-e4ee-54e7-92e3-97babd0d7500",
          "48dc42e0-ad3b-5a53-9681-c6e42e68c906",
          "61efd70f-0903-5185-9589-fdb30374c8cc",
          "e42c545a-4c00-53b8-aa44-652155df8f1b"
        ],
        "object_norad_id": 13992,
        "positions": [
          "82.191905 58.350672",
          "82.978028 58.139179",
          "83.875664 57.894236",
          "85.487909 57.420057"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7884,
          7885,
          7886,
          7887
        ],
        "station_id": 11,
        "track_id": 7884
      },
      {
        "epoch": "2026-09-01T23:11:46.430210",
        "excluded_measurements": 3,
        "kind": "contradictory",
        "measurements": [
          "2900cf9a-0ad9-5572-b474-e46086e9c93e",
          "7cadde06-203b-531a-b2c2-80c1af2e9bc4",
          "beda9f14-926b-5f7e-806c-e274a00a5e1e"
        ],
        "object_norad_id": 43280,
        "positions": [
          "100.190236 56.846945",
          "100.398321 57.264769",
          "100.593218 57.646315"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7903,
          7904,
          7905
        ],
        "station_id": 11,
        "track_id": 7903
      },
      {
        "epoch": "2026-09-01T23:22:56.534536",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "0d1b4912-1b76-5165-aa5e-a10d80c02c8f",
          "50910650-d29a-590c-a63c-5aec6956ce7a"
        ],
        "object_norad_id": 42809,
        "positions": [
          "264.882256 40.072649",
          "265.048658 39.927770"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7912,
          7913
        ],
        "station_id": 7,
        "track_id": 7912
      },
      {
        "epoch": "2026-09-01T23:25:35.899961",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "05ad341d-eac7-597c-a8f5-0f18ba5136ca",
          "e582d2b2-eda0-59c6-9e8a-3b648c703124"
        ],
        "object_norad_id": 65228,
        "positions": [
          "98.093878 57.020100",
          "99.565667 56.996816"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7914,
          7915
        ],
        "station_id": 11,
        "track_id": 7914
      },
      {
        "epoch": "2026-09-01T23:36:21.178991",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "58d0eb13-c929-52c1-89e9-901136ffe71a",
          "70c24d65-15e8-56ef-bd59-e4c92a5b79a5"
        ],
        "object_norad_id": 69390,
        "positions": [
          "108.765775 57.024449",
          "109.751068 56.981364"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7924,
          7925
        ],
        "station_id": 11,
        "track_id": 7924
      },
      {
        "epoch": "2026-09-02T03:43:46.950138",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "44531635-7536-51ae-bb92-7dd94d710565",
          "901fb658-ede8-5ec8-a857-e13c02eff4ed"
        ],
        "object_norad_id": 64961,
        "positions": [
          "152.985685 60.790911",
          "153.884922 60.889928"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          7970,
          7971
        ],
        "station_id": 11,
        "track_id": 7970
      }
    ],
    "detail_omitted": 0,
    "epochs": 23,
    "measurements_excluded": 53,
    "note": "one epoch stated twice costs its own measurements, never the session: a repeated epoch is published once, a contradicted one is published not at all, and every excluded row is still in the parquet archive. Counted over tracks with a correlated object, which are the only tracks a TDM is written for. See docs/decisions/0004-duplicate-epochs.md",
    "tracks": 22,
    "tracks_left_without_observations": 37
  },
  "generated_at": "2026-09-22T23:31:15.150462Z",
  "generation_id": "dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f",
  "generator": "satnogs_optical_network.products",
  "iod": {
    "11": {
      "identified_lines": 35781,
      "identified_tracks": 290,
      "lines": 41176,
      "skipped": 0,
      "skipped_reasons": [],
      "unk_lines": 5395,
      "unk_tracks": 119,
      "wide_id_tracks": 0
    },
    "7": {
      "identified_lines": 13295,
      "identified_tracks": 104,
      "lines": 17359,
      "skipped": 0,
      "skipped_reasons": [],
      "unk_lines": 4064,
      "unk_tracks": 93,
      "wide_id_tracks": 0
    }
  },
  "layout": {
    "generation_dir": "session_date=2026-09-01/generations/dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f",
    "measurements": "measurements.parquet",
    "note": "Resolve products through this manifest. Retained generations must not be combined with a recursive Parquet wildcard.",
    "session_dir": "session_date=2026-09-01",
    "stations": "stations",
    "tracks": "tracks.parquet"
  },
  "metrics": {
    "measurements": 58900,
    "objects": 0,
    "stations": 2,
    "tracks": 661,
    "unk_tracks": 661
  },
  "metrics_basis": "as-ingested",
  "packaging": {
    "note": "TDM file count is a packaging artifact, not a headline metric: it both overstates the claim to experts and understates the data volume (ADR 0010). tdm_observations is the count actually read back out of the published station-night TDMs and checked against the measurement rows; it is the number to compare a published file against. tdm_tracks is the number of segments across them.",
    "tdm_files": 2,
    "tdm_observations": 49023,
    "tdm_observations_expected": 49023,
    "tdm_observations_verified": true,
    "tdm_tracks": 357
  },
  "per_station": [
    {
      "epoch_collisions": 4,
      "iod": {
        "identified_lines": 13295,
        "identified_tracks": 104,
        "lines": 17359,
        "skipped": 0,
        "skipped_reasons": [],
        "unk_lines": 4064,
        "unk_tracks": 93,
        "wide_id_tracks": 0
      },
      "iod_station_code": "7",
      "measurements": 17591,
      "name": "Drachten",
      "objects": 0,
      "station_id": 7,
      "tdm_tracks": 104,
      "tracks": 221,
      "unk_tracks": 221
    },
    {
      "epoch_collisions": 19,
      "iod": {
        "identified_lines": 35781,
        "identified_tracks": 290,
        "lines": 41176,
        "skipped": 0,
        "skipped_reasons": [],
        "unk_lines": 5395,
        "unk_tracks": 119,
        "wide_id_tracks": 0
      },
      "iod_station_code": "11",
      "measurements": 41309,
      "name": "dwingeloo",
      "objects": 0,
      "station_id": 11,
      "tdm_tracks": 290,
      "tracks": 440,
      "unk_tracks": 440
    }
  ],
  "products": [
    {
      "bytes": 9565,
      "conformance": null,
      "kind": "characterisation-station",
      "path": "session_date=2026-09-01/generations/dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f/stations/station-11.json",
      "scope": "station-night",
      "scope_key": "11-2026-09-01",
      "sha256": "730756ddcdeef2d00bf208e92dcbd60b5f1b42eccfdafb959587d892b0926449"
    },
    {
      "bytes": 9655,
      "conformance": null,
      "kind": "characterisation-station",
      "path": "session_date=2026-09-01/generations/dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f/stations/station-7.json",
      "scope": "station-night",
      "scope_key": "7-2026-09-01",
      "sha256": "bc3a4134606a7aa6973256834adbf557c6ae1054c31b50e4b892ded306144415"
    },
    {
      "bytes": 2758792,
      "conformance": null,
      "kind": "iod-station-night",
      "path": "session_date=2026-09-01/generations/dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f/iod/station-11-2026-09-01.iod",
      "scope": "station-night",
      "scope_key": "11-2026-09-01",
      "sha256": "06c67aa2aa43848b9e5054c4608e1ac4f3676ae7a60030b1189e9df545abdc15"
    },
    {
      "bytes": 1163053,
      "conformance": null,
      "kind": "iod-station-night",
      "path": "session_date=2026-09-01/generations/dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f/iod/station-7-2026-09-01.iod",
      "scope": "station-night",
      "scope_key": "7-2026-09-01",
      "sha256": "1c1e96f19598255a928c82cebd69f22000de4a68fa84cea2c87215f43ef85dfd"
    },
    {
      "bytes": 5141124,
      "conformance": null,
      "kind": "parquet-session",
      "path": "session_date=2026-09-01/generations/dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f/measurements.parquet",
      "scope": "session",
      "scope_key": "2026-09-01",
      "sha256": "6b5f7a718ad3b37476c750f6582cadf82b115cc67cac519ce8a94f025fe5326a"
    },
    {
      "bytes": 55453,
      "conformance": null,
      "kind": "parquet-tracks",
      "path": "session_date=2026-09-01/generations/dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f/tracks.parquet",
      "scope": "session",
      "scope_key": "2026-09-01",
      "sha256": "531c1768f8ac11e4622e640b1e9aeb7d989959030a2d50e4a529f622c5a9afca"
    },
    {
      "bytes": 4231463,
      "conformance": "SKIPPED: Orekit conformance NOT VERIFIED for station-11-2026-09-01.tdm: orekit_jpype not importable (ModuleNotFoundError: No module named 'orekit_jpype'); pip install 'satnogs-optical-network[od]'; no JVM (JAVA_HOME unset and no 'java' on PATH); orekit-data not found (set OREKIT_DATA_PATH to the orekit-data zip or directory, or put orekit-data.zip in the working directory). Offline structural check: clean.",
      "kind": "tdm-station-night",
      "observations": 35737,
      "path": "session_date=2026-09-01/generations/dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f/tdm/station-11-2026-09-01.tdm",
      "scope": "station-night",
      "scope_key": "11-2026-09-01",
      "sha256": "fefc7919f66867d3d5c81020afa7cda49d5a11deed0c9ad32660c10ea3d9acea"
    },
    {
      "bytes": 1587155,
      "conformance": "SKIPPED: Orekit conformance NOT VERIFIED for station-7-2026-09-01.tdm: orekit_jpype not importable (ModuleNotFoundError: No module named 'orekit_jpype'); pip install 'satnogs-optical-network[od]'; no JVM (JAVA_HOME unset and no 'java' on PATH); orekit-data not found (set OREKIT_DATA_PATH to the orekit-data zip or directory, or put orekit-data.zip in the working directory). Offline structural check: clean.",
      "kind": "tdm-station-night",
      "observations": 13286,
      "path": "session_date=2026-09-01/generations/dd09b677d2a7d2afe70ba957e17731e8259684b3707b9a74c250a162fa4b953f/tdm/station-7-2026-09-01.tdm",
      "scope": "station-night",
      "scope_key": "7-2026-09-01",
      "sha256": "67dd1ea4b7c013fe2df7844b8f6b787f8f4264b65efcc6c79c75e2bc2aa7fe86"
    }
  ],
  "quarantined_excluded": 0,
  "station": [
    7,
    11
  ],
  "stations": [
    7,
    11
  ],
  "tdm_excluded_epoch_collisions": 53,
  "tdm_skipped_no_observations": 37,
  "tdm_skipped_unk": 267
}
