{
  "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": 1093,
    "note": "counts here move when correlation improves; the five primary metrics do not (see docs/decisions/0002-unk-participants.md)",
    "objects": 598,
    "objects_not_in_advisory": 88,
    "tracks_resolved_beyond_advisory": 137,
    "tracks_with_object": 1046,
    "tracks_without_object": 837,
    "unk_designations": 826
  },
  "correlation_run_id": 1093,
  "correlation_version": 21,
  "date": "2026-09-12",
  "epoch_collisions": {
    "detail": [
      {
        "epoch": "2026-09-12T17:31:04.258030",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "0ab8b9aa-a3a4-5e63-8eb5-12dbc339fc65",
          "f3035eac-5899-515a-ad54-e81c39529383"
        ],
        "object_norad_id": 58808,
        "positions": [
          "176.631247 56.513609",
          "176.693078 56.273575"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          70865,
          70867
        ],
        "station_id": 4,
        "track_id": 70865
      },
      {
        "epoch": "2026-09-12T17:31:07.259030",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "7669daad-acc2-58e0-8956-92a678541384",
          "fa57eb13-52b1-5cbc-aded-a095cb3507e6"
        ],
        "object_norad_id": 58808,
        "positions": [
          "176.338764 57.600831",
          "176.382451 57.436831"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          70867,
          70870
        ],
        "station_id": 4,
        "track_id": 70867
      },
      {
        "epoch": "2026-09-12T18:06:16.757152",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "44bb49aa-bf44-5e45-8de7-645f6bcb6d0c",
          "fdc3a7c7-67ee-50d0-9f54-45cf044d8e76"
        ],
        "object_norad_id": 61972,
        "positions": [
          "190.264507 57.314217",
          "190.318393 57.080192"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          71232,
          71234
        ],
        "station_id": 4,
        "track_id": 71232
      },
      {
        "epoch": "2026-09-12T18:09:16.944187",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "49b27be1-3e1f-511e-9f05-03358f3cf4c8",
          "8f142f26-94f0-5462-b6df-245cfa49a96a"
        ],
        "object_norad_id": 63140,
        "positions": [
          "179.436560 53.433614",
          "179.533243 53.257421"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          71261,
          71262
        ],
        "station_id": 4,
        "track_id": 71261
      },
      {
        "epoch": "2026-09-12T18:14:14.655344",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "d3b5d9e5-35ac-543d-8f2a-f8ea909f67db",
          "fefd457d-001a-5862-bbc2-3e048f2883b0"
        ],
        "object_norad_id": 62747,
        "positions": [
          "191.805454 56.008974",
          "191.834944 56.118173"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          71304,
          71306
        ],
        "station_id": 4,
        "track_id": 71304
      },
      {
        "epoch": "2026-09-12T18:17:21.149901",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "27a4db76-d3a2-5945-b142-6d13bd4209ab",
          "3cbeb911-5588-5577-9cf4-41d716c6752b"
        ],
        "object_norad_id": 63141,
        "positions": [
          "179.000911 55.151212",
          "179.157286 54.911408"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          71332,
          71335
        ],
        "station_id": 4,
        "track_id": 71332
      },
      {
        "epoch": "2026-09-12T18:38:14.552770",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "012dc149-2519-5a46-b78b-5dbfbdc828b8",
          "2614e309-8a8f-5772-9c91-f96736bfade7"
        ],
        "object_norad_id": 63973,
        "positions": [
          "190.752205 59.015479",
          "190.798629 58.803815"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          71561,
          71562
        ],
        "station_id": 4,
        "track_id": 71561
      },
      {
        "epoch": "2026-09-12T18:42:53.443088",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "260862ee-4560-571b-a9ac-b0587f4ad989",
          "ab698b6b-27d1-5847-a3c4-d0a4582b73b9"
        ],
        "object_norad_id": 69683,
        "positions": [
          "203.099327 55.514049",
          "203.285099 55.408411"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          71620,
          71621
        ],
        "station_id": 4,
        "track_id": 71620
      },
      {
        "epoch": "2026-09-12T18:49:03.029451",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "70464544-f2f3-5344-9cff-de56ac22e98d",
          "7a469c68-c275-564b-8174-151ee04cfa88"
        ],
        "object_norad_id": 58215,
        "positions": [
          "204.743236 55.951133",
          "204.772822 55.696869"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          71705,
          71707
        ],
        "station_id": 4,
        "track_id": 71705
      },
      {
        "epoch": "2026-09-12T19:05:15.541696",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "13337b38-cb87-57e9-b66e-3c4a0a0b9264",
          "ede3b84d-8496-5a9e-9996-86879cf0d6da"
        ],
        "object_norad_id": 63816,
        "positions": [
          "200.193497 55.265256",
          "200.230489 52.962897"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          71905,
          71906
        ],
        "station_id": 4,
        "track_id": 71905
      },
      {
        "epoch": "2026-09-12T19:05:18.545169",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "4d8c6f75-df1a-50e3-b0ee-bcb3cb55301e",
          "baaa6050-529c-5d57-a875-801f165079b9"
        ],
        "object_norad_id": 63816,
        "positions": [
          "200.218174 56.127099",
          "200.223651 56.349580"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          71905,
          71906
        ],
        "station_id": 4,
        "track_id": 71905
      }
    ],
    "detail_omitted": 0,
    "epochs": 11,
    "measurements_excluded": 22,
    "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": 10,
    "tracks_left_without_observations": 6
  },
  "generated_at": "2026-10-03T18:46:37.174854Z",
  "generation_id": "c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9",
  "generator": "satnogs_optical_network.products",
  "iod": {
    "14": {
      "identified_lines": 1010,
      "identified_tracks": 20,
      "lines": 1082,
      "skipped": 0,
      "skipped_reasons": [],
      "unk_lines": 72,
      "unk_tracks": 65,
      "wide_id_tracks": 0
    },
    "4": {
      "identified_lines": 5924,
      "identified_tracks": 1026,
      "lines": 8336,
      "skipped": 0,
      "skipped_reasons": [],
      "unk_lines": 2412,
      "unk_tracks": 761,
      "wide_id_tracks": 0
    }
  },
  "layout": {
    "generation_dir": "session_date=2026-09-12/generations/c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9",
    "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-12",
    "stations": "stations",
    "tracks": "tracks.parquet"
  },
  "metrics": {
    "measurements": 9549,
    "objects": 617,
    "stations": 2,
    "tracks": 1883,
    "unk_tracks": 794
  },
  "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": 6912,
    "tdm_observations_expected": 6912,
    "tdm_observations_verified": true,
    "tdm_tracks": 1040
  },
  "per_station": [
    {
      "epoch_collisions": 11,
      "iod": {
        "identified_lines": 5924,
        "identified_tracks": 1026,
        "lines": 8336,
        "skipped": 0,
        "skipped_reasons": [],
        "unk_lines": 2412,
        "unk_tracks": 761,
        "wide_id_tracks": 0
      },
      "iod_station_code": "4",
      "measurements": 8467,
      "name": "optical-bench1",
      "objects": 613,
      "station_id": 4,
      "tdm_tracks": 1026,
      "tracks": 1798,
      "unk_tracks": 721
    },
    {
      "epoch_collisions": 0,
      "iod": {
        "identified_lines": 1010,
        "identified_tracks": 20,
        "lines": 1082,
        "skipped": 0,
        "skipped_reasons": [],
        "unk_lines": 72,
        "unk_tracks": 65,
        "wide_id_tracks": 0
      },
      "iod_station_code": "14",
      "measurements": 1082,
      "name": "optical-sky-rpihq",
      "objects": 11,
      "station_id": 14,
      "tdm_tracks": 20,
      "tracks": 85,
      "unk_tracks": 73
    }
  ],
  "products": [
    {
      "bytes": 6370,
      "conformance": null,
      "kind": "characterisation-station",
      "path": "session_date=2026-09-12/generations/c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9/stations/station-14.json",
      "scope": "station-night",
      "scope_key": "14-2026-09-12",
      "sha256": "baa2cd3a0ac988d04ab60779669151e45d11ad4c0b86ef4c1c92be04265737f1"
    },
    {
      "bytes": 10944,
      "conformance": null,
      "kind": "characterisation-station",
      "path": "session_date=2026-09-12/generations/c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9/stations/station-4.json",
      "scope": "station-night",
      "scope_key": "4-2026-09-12",
      "sha256": "14c4fcb993a6d294820047096ebabba667e9161b9decc976abe965d43152337b"
    },
    {
      "bytes": 72494,
      "conformance": null,
      "kind": "iod-station-night",
      "path": "session_date=2026-09-12/generations/c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9/iod/station-14-2026-09-12.iod",
      "scope": "station-night",
      "scope_key": "14-2026-09-12",
      "sha256": "5733b57f53666d927ea317fdfd8306b3b9e0aeec4becf5ab1e15e57ca59f4422"
    },
    {
      "bytes": 558512,
      "conformance": null,
      "kind": "iod-station-night",
      "path": "session_date=2026-09-12/generations/c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9/iod/station-4-2026-09-12.iod",
      "scope": "station-night",
      "scope_key": "4-2026-09-12",
      "sha256": "52e29082bf28c82f9d9623ce0fd4d9681a33319a77dae12f5a244dde1f951fe9"
    },
    {
      "bytes": 1258589,
      "conformance": null,
      "kind": "parquet-session",
      "path": "session_date=2026-09-12/generations/c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9/measurements.parquet",
      "scope": "session",
      "scope_key": "2026-09-12",
      "sha256": "858ac01f1e90707fa736323d4d9b0e84e36ca96542808d0b53f238c9eb855cde"
    },
    {
      "bytes": 134025,
      "conformance": null,
      "kind": "parquet-tracks",
      "path": "session_date=2026-09-12/generations/c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9/tracks.parquet",
      "scope": "session",
      "scope_key": "2026-09-12",
      "sha256": "b2784ffd404ab8186a3dabef0829d1fa09ea1d1ef63bb9ae231c7710ad83958f"
    },
    {
      "bytes": 135668,
      "conformance": "SKIPPED: Orekit conformance NOT VERIFIED for station-14-2026-09-12.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": 1010,
      "path": "session_date=2026-09-12/generations/c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9/tdm/station-14-2026-09-12.tdm",
      "scope": "station-night",
      "scope_key": "14-2026-09-12",
      "sha256": "670a5335132e6845daec0ba9bcbe782e69e9331ec1c9ff95b019dc99d9a19453"
    },
    {
      "bytes": 1279632,
      "conformance": "SKIPPED: Orekit conformance NOT VERIFIED for station-4-2026-09-12.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": 5902,
      "path": "session_date=2026-09-12/generations/c259bf9282f56478c9c1c2a913946dd96e0837696b5cf327d478e766aea264e9/tdm/station-4-2026-09-12.tdm",
      "scope": "station-night",
      "scope_key": "4-2026-09-12",
      "sha256": "356db2eafcc987af5f6a366d60901166d5113342444ef0b8ca915fe5fd54455b"
    }
  ],
  "quarantined_excluded": 0,
  "station": [
    4,
    14
  ],
  "stations": [
    4,
    14
  ],
  "tdm_excluded_epoch_collisions": 22,
  "tdm_skipped_no_observations": 6,
  "tdm_skipped_unk": 837
}
