{
  "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": 763,
    "note": "counts here move when correlation improves; the five primary metrics do not (see docs/decisions/0002-unk-participants.md)",
    "objects": 270,
    "objects_not_in_advisory": 44,
    "tracks_resolved_beyond_advisory": 83,
    "tracks_with_object": 334,
    "tracks_without_object": 120,
    "unk_designations": 96
  },
  "correlation_run_id": 763,
  "correlation_version": 4,
  "date": "2026-09-16",
  "epoch_collisions": {
    "detail": [
      {
        "epoch": "2026-09-16T19:14:46.119634",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "58688e6a-e70f-5741-ae45-82a74e938906",
          "63399034-12e4-5eef-8294-cac9a70bdabb"
        ],
        "object_norad_id": 54150,
        "positions": [
          "45.102302 61.459774",
          "46.392569 61.350318"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          73964,
          73965
        ],
        "station_id": 11,
        "track_id": 73964
      },
      {
        "epoch": "2026-09-16T19:14:57.037588",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "5c0b1279-5bfe-5d41-9766-29c34a4773e0",
          "d3d65bb4-f8e5-5ee0-9d97-4566b88a19bc"
        ],
        "object_norad_id": 54150,
        "positions": [
          "49.903236 60.990453",
          "50.650951 60.898802"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          73964,
          73965
        ],
        "station_id": 11,
        "track_id": 73964
      },
      {
        "epoch": "2026-09-16T19:21:52.995998",
        "excluded_measurements": 3,
        "kind": "contradictory",
        "measurements": [
          "977751df-8d78-5c5b-9b56-1065ee484e16",
          "d39866ee-7280-5a66-873a-b2c9a66d56d2",
          "f4d716e4-1b5e-5d0f-acc5-12c132d244c1"
        ],
        "object_norad_id": 48076,
        "positions": [
          "48.716767 60.648702",
          "49.997974 60.653854",
          "50.875799 60.651269"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          73992,
          73993,
          73994
        ],
        "station_id": 11,
        "track_id": 73992
      },
      {
        "epoch": "2026-09-16T19:32:23.943090",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "1cf1c73c-812b-5679-972e-12be004fc655",
          "aec73c29-f372-5969-be56-c1d231fdf5f8"
        ],
        "object_norad_id": 100222,
        "positions": [
          "50.038567 63.236168",
          "54.171369 63.615539"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74015,
          74016
        ],
        "station_id": 11,
        "track_id": 74015
      },
      {
        "epoch": "2026-09-16T20:02:52.985009",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "4341db17-285e-59e5-8022-4f95ea05f5f8",
          "811fbdbc-2767-52a2-a763-06244ff7dffd"
        ],
        "object_norad_id": 14974,
        "positions": [
          "63.221781 58.688681",
          "64.290808 58.807512"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74086,
          74087
        ],
        "station_id": 11,
        "track_id": 74086
      },
      {
        "epoch": "2026-09-16T20:03:03.390677",
        "excluded_measurements": 3,
        "kind": "contradictory",
        "measurements": [
          "3724d595-be20-5591-8f61-8ed1b28ee584",
          "c38dee60-e391-5b01-a332-b866ea8c5c43",
          "c6461896-8326-5911-adaf-a47a518b25f2"
        ],
        "object_norad_id": 14974,
        "positions": [
          "56.698858 57.727298",
          "58.658446 58.060948",
          "59.661581 58.214548"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74086,
          74087,
          74088
        ],
        "station_id": 11,
        "track_id": 74086
      },
      {
        "epoch": "2026-09-16T22:35:19.476890",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "84c63d7e-f818-5477-be58-a5a810c068cb",
          "c2538d07-55f8-52d9-8f65-91ee2a878ea1"
        ],
        "object_norad_id": 42962,
        "positions": [
          "103.280245 53.631413",
          "104.057918 53.611269"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74157,
          74158
        ],
        "station_id": 11,
        "track_id": 74157
      },
      {
        "epoch": "2026-09-16T23:45:13.969979",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "421ddcbe-7782-559c-b3dd-235a9209dad9",
          "a82281b1-fffc-5c43-bce1-09f71cbc30a3"
        ],
        "object_norad_id": 5846,
        "positions": [
          "119.309510 61.127593",
          "120.216965 60.694370"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74220,
          74221
        ],
        "station_id": 11,
        "track_id": 74220
      },
      {
        "epoch": "2026-09-17T01:22:29.090965",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "602c4153-4308-550b-a214-95cbb17b8269",
          "bead78ca-3aa6-56ff-994d-e3aefcda03f4"
        ],
        "object_norad_id": 49385,
        "positions": [
          "150.236159 54.585286",
          "151.326732 54.710933"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74323,
          74324
        ],
        "station_id": 11,
        "track_id": 74323
      },
      {
        "epoch": "2026-09-17T01:37:43.946402",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "0539e494-2b06-56c2-9b94-2828c258f33e",
          "ad4e526a-1f51-5d7f-afbb-2910192a65ca"
        ],
        "object_norad_id": 42969,
        "positions": [
          "144.860252 58.325169",
          "145.581200 58.186676"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74348,
          74349
        ],
        "station_id": 11,
        "track_id": 74348
      },
      {
        "epoch": "2026-09-17T02:21:37.510149",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "408f3db8-23f4-53f2-9702-c002f7ddc143",
          "a5e0b872-3b5d-54c0-ae55-b4055cdf0c16"
        ],
        "object_norad_id": 7734,
        "positions": [
          "156.563065 59.517395",
          "157.137682 57.936504"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74382,
          74383
        ],
        "station_id": 11,
        "track_id": 74382
      },
      {
        "epoch": "2026-09-17T02:32:36.709679",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "1e5120f3-d016-5d30-8875-f6df076c6572",
          "b7710a23-ad47-5dcf-9339-9ea352a8d860"
        ],
        "object_norad_id": 2801,
        "positions": [
          "148.032250 61.655148",
          "148.517884 61.805023"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74388,
          74389
        ],
        "station_id": 11,
        "track_id": 74388
      },
      {
        "epoch": "2026-09-17T02:38:26.567680",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "9641a2f0-0c7a-588b-afd0-5a5220452791",
          "ba72c378-2214-5138-8a01-5f3bbbadf12e"
        ],
        "object_norad_id": 61559,
        "positions": [
          "152.497294 63.748412",
          "153.476315 63.776523"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74396,
          74397
        ],
        "station_id": 11,
        "track_id": 74396
      },
      {
        "epoch": "2026-09-17T02:38:48.392634",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "00292917-df0e-5262-a93d-29149010fedc",
          "3881fdf9-7700-52c9-9e55-ebc7a74a4a07"
        ],
        "object_norad_id": 61559,
        "positions": [
          "160.516843 63.792017",
          "161.638692 63.761812"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          74396,
          74397
        ],
        "station_id": 11,
        "track_id": 74396
      }
    ],
    "detail_omitted": 0,
    "epochs": 14,
    "measurements_excluded": 30,
    "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": 11,
    "tracks_left_without_observations": 16
  },
  "generated_at": "2026-09-22T22:45:19.622473Z",
  "generation_id": "2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396",
  "generator": "satnogs_optical_network.products",
  "iod": {
    "11": {
      "identified_lines": 48059,
      "identified_tracks": 314,
      "lines": 55046,
      "skipped": 0,
      "skipped_reasons": [],
      "unk_lines": 6987,
      "unk_tracks": 93,
      "wide_id_tracks": 0
    },
    "7": {
      "identified_lines": 1857,
      "identified_tracks": 20,
      "lines": 1883,
      "skipped": 0,
      "skipped_reasons": [],
      "unk_lines": 26,
      "unk_tracks": 3,
      "wide_id_tracks": 0
    }
  },
  "layout": {
    "generation_dir": "session_date=2026-09-16/generations/2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396",
    "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-16",
    "stations": "stations",
    "tracks": "tracks.parquet"
  },
  "metrics": {
    "measurements": 57071,
    "objects": 239,
    "stations": 2,
    "tracks": 454,
    "unk_tracks": 185
  },
  "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": 49886,
    "tdm_observations_expected": 49886,
    "tdm_observations_verified": true,
    "tdm_tracks": 318
  },
  "per_station": [
    {
      "epoch_collisions": 0,
      "iod": {
        "identified_lines": 1857,
        "identified_tracks": 20,
        "lines": 1883,
        "skipped": 0,
        "skipped_reasons": [],
        "unk_lines": 26,
        "unk_tracks": 3,
        "wide_id_tracks": 0
      },
      "iod_station_code": "7",
      "measurements": 1883,
      "name": "Drachten",
      "objects": 18,
      "station_id": 7,
      "tdm_tracks": 20,
      "tracks": 23,
      "unk_tracks": 4
    },
    {
      "epoch_collisions": 14,
      "iod": {
        "identified_lines": 48059,
        "identified_tracks": 314,
        "lines": 55046,
        "skipped": 0,
        "skipped_reasons": [],
        "unk_lines": 6987,
        "unk_tracks": 93,
        "wide_id_tracks": 0
      },
      "iod_station_code": "11",
      "measurements": 55188,
      "name": "dwingeloo",
      "objects": 228,
      "station_id": 11,
      "tdm_tracks": 314,
      "tracks": 431,
      "unk_tracks": 181
    }
  ],
  "products": [
    {
      "bytes": 9556,
      "conformance": null,
      "kind": "characterisation-station",
      "path": "session_date=2026-09-16/generations/2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396/stations/station-11.json",
      "scope": "station-night",
      "scope_key": "11-2026-09-16",
      "sha256": "0a4c3e9f01d97a6f8d1c6525ffa52c1e954e077f12cb55ef1802c3e87d6c982f"
    },
    {
      "bytes": 9656,
      "conformance": null,
      "kind": "characterisation-station",
      "path": "session_date=2026-09-16/generations/2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396/stations/station-7.json",
      "scope": "station-night",
      "scope_key": "7-2026-09-16",
      "sha256": "124662d0dbf2c867b3fcca3fa014aa1745bccae9d612846743ede8cff5e9e31e"
    },
    {
      "bytes": 3688082,
      "conformance": null,
      "kind": "iod-station-night",
      "path": "session_date=2026-09-16/generations/2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396/iod/station-11-2026-09-16.iod",
      "scope": "station-night",
      "scope_key": "11-2026-09-16",
      "sha256": "5edc3bc784a9bbfc3596cc4021ec6fa707eaef79edc783703071fa21fd869ca4"
    },
    {
      "bytes": 126161,
      "conformance": null,
      "kind": "iod-station-night",
      "path": "session_date=2026-09-16/generations/2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396/iod/station-7-2026-09-16.iod",
      "scope": "station-night",
      "scope_key": "7-2026-09-16",
      "sha256": "cedcc6178ea249c84599e07f43fb71db7364eb926d992c804487590877ede2e1"
    },
    {
      "bytes": 5955837,
      "conformance": null,
      "kind": "parquet-session",
      "path": "session_date=2026-09-16/generations/2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396/measurements.parquet",
      "scope": "session",
      "scope_key": "2026-09-16",
      "sha256": "f9f201333e1eb8e4a9fc1c2b97deab3ec51bd25216a8f7199e3a07d63bdc8f6f"
    },
    {
      "bytes": 42659,
      "conformance": null,
      "kind": "parquet-tracks",
      "path": "session_date=2026-09-16/generations/2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396/tracks.parquet",
      "scope": "session",
      "scope_key": "2026-09-16",
      "sha256": "f5ae392dcf4b05956d3ee3d6d079227d6b02fad96d144a9f96d3754cb2664e9d"
    },
    {
      "bytes": 5682634,
      "conformance": "SKIPPED: Orekit conformance NOT VERIFIED for station-11-2026-09-16.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": 48029,
      "path": "session_date=2026-09-16/generations/2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396/tdm/station-11-2026-09-16.tdm",
      "scope": "station-night",
      "scope_key": "11-2026-09-16",
      "sha256": "e3812a404655e559d32359124083fe70a520e44d72d3e4d99b29a61abdf483ad"
    },
    {
      "bytes": 233050,
      "conformance": "SKIPPED: Orekit conformance NOT VERIFIED for station-7-2026-09-16.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": 1857,
      "path": "session_date=2026-09-16/generations/2f5e389d7783310617d93eda8fa06df785266bd17c1e9e9b3c6c095ee004b396/tdm/station-7-2026-09-16.tdm",
      "scope": "station-night",
      "scope_key": "7-2026-09-16",
      "sha256": "9baadcc53c2bd60b91198492511ee9cbdf1f268fa8dc867e42e4788f5952aaa0"
    }
  ],
  "quarantined_excluded": 0,
  "station": [
    7,
    11
  ],
  "stations": [
    7,
    11
  ],
  "tdm_excluded_epoch_collisions": 30,
  "tdm_skipped_no_observations": 16,
  "tdm_skipped_unk": 120
}
