{
  "conformance": {
    "checked": 1,
    "counts": {
      "SKIPPED": 1
    },
    "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": 461,
    "note": "counts here move when correlation improves; the five primary metrics do not (see docs/decisions/0002-unk-participants.md)",
    "objects": 275,
    "objects_not_in_advisory": 275,
    "tracks_resolved_beyond_advisory": 329,
    "tracks_with_object": 329,
    "tracks_without_object": 9516,
    "unk_designations": 7994
  },
  "correlation_run_id": 461,
  "correlation_version": 4,
  "date": "2026-09-02",
  "epoch_collisions": {
    "detail": [
      {
        "epoch": "2026-09-02T18:19:30.299531",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "3820a45a-fe7a-5f4f-b4eb-264a36ae4bad",
          "dd3521a1-197f-517e-b664-1aa11c4762c1"
        ],
        "object_norad_id": 26365,
        "positions": [
          "221.887815 -0.281293",
          "224.429457 -4.032456"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          18209,
          18216
        ],
        "station_id": 13,
        "track_id": 18209
      },
      {
        "epoch": "2026-09-02T18:19:40.835595",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "48e18057-85e6-5da0-8661-4d68168fdc53",
          "f71820a9-76fa-5b18-be35-7d7f9b8ad5c0"
        ],
        "object_norad_id": 26365,
        "positions": [
          "223.565970 -2.482894",
          "224.433049 -4.032407"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          18209,
          18216
        ],
        "station_id": 13,
        "track_id": 18209
      },
      {
        "epoch": "2026-09-02T18:44:06.878183",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "a0472917-7e9f-50fa-8d23-b12fae98664b",
          "ee2bcfc6-a3a2-5896-ad67-73ddc559e760"
        ],
        "object_norad_id": 69687,
        "positions": [
          "225.432752 0.713612",
          "231.284109 -5.919062"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          20086,
          20099
        ],
        "station_id": 13,
        "track_id": 20086
      },
      {
        "epoch": "2026-09-02T18:44:17.318965",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "34072842-5ca2-5fe3-8637-80c95fa4182b",
          "7ff06b58-a9f3-5b21-b794-8b8735b3470c"
        ],
        "object_norad_id": 69687,
        "positions": [
          "228.969382 0.479032",
          "229.735006 -1.592223"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          20086,
          20099
        ],
        "station_id": 13,
        "track_id": 20086
      },
      {
        "epoch": "2026-09-02T18:46:13.244093",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "31571bcd-bc15-53f1-b7d3-1995161e56b9",
          "90ad490f-95b2-5139-ae4e-29663a211df0"
        ],
        "object_norad_id": 69707,
        "positions": [
          "228.617002 -3.363957",
          "231.275026 -5.920353"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          20243,
          20258
        ],
        "station_id": 13,
        "track_id": 20243
      },
      {
        "epoch": "2026-09-02T19:05:06.669584",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "0d897def-2e05-571f-a248-459bf37bc4e5",
          "e77b9c01-e3c5-5408-aef0-2fcaaa2819a0"
        ],
        "object_norad_id": 64845,
        "positions": [
          "229.614145 -0.785535",
          "230.192426 -2.413847"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          21607,
          21611
        ],
        "station_id": 13,
        "track_id": 21607
      },
      {
        "epoch": "2026-09-02T19:10:24.432832",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "8e76d9fa-d028-5076-9b7a-452521de043d",
          "ad7c4ade-d76c-5a64-9e17-5a3b6674930b"
        ],
        "object_norad_id": 56918,
        "positions": [
          "233.769872 1.668821",
          "236.296810 -0.840599"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          21899,
          21973
        ],
        "station_id": 13,
        "track_id": 21899
      },
      {
        "epoch": "2026-09-02T19:22:39.698540",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "8608c78c-6287-534e-a114-2a31be3a3a27",
          "a1ab2072-5566-59d1-b6e4-54b055606f8d"
        ],
        "object_norad_id": 45303,
        "positions": [
          "236.818621 -0.272235",
          "237.815474 -3.090095"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          22764,
          22772
        ],
        "station_id": 13,
        "track_id": 22764
      },
      {
        "epoch": "2026-09-02T19:25:59.827926",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "7daf69f5-cc24-55ae-a2f2-9e47092c2bdf",
          "ed5966a0-2704-505c-994d-3b3eb508a058"
        ],
        "object_norad_id": 25406,
        "positions": [
          "232.740278 -0.052813",
          "236.629084 -4.059829"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          22961,
          22991
        ],
        "station_id": 13,
        "track_id": 22961
      },
      {
        "epoch": "2026-09-02T19:26:52.821523",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "a57bcddb-a81d-5c28-b946-8e5255993b64",
          "db6209f2-3b53-51a4-8cf6-7b38618b86f0"
        ],
        "object_norad_id": 55790,
        "positions": [
          "233.705266 -0.146060",
          "233.971099 -3.917109"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          23016,
          23034
        ],
        "station_id": 13,
        "track_id": 23016
      },
      {
        "epoch": "2026-09-02T19:29:00.387082",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "4f3f2f93-89b9-5092-8a16-96f996a54519",
          "ae77b467-192c-5e89-8eaa-f3471b741443"
        ],
        "object_norad_id": 40497,
        "positions": [
          "237.236636 -3.818523",
          "237.490686 -3.921457"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          23224,
          23225
        ],
        "station_id": 13,
        "track_id": 23224
      },
      {
        "epoch": "2026-09-02T20:16:15.421334",
        "excluded_measurements": 2,
        "kind": "contradictory",
        "measurements": [
          "98f9be56-0bd2-576c-8bb1-be5dde317b22",
          "b45df0f4-3c63-54df-b188-554125fbdc4e"
        ],
        "object_norad_id": 36694,
        "positions": [
          "245.562021 2.876873",
          "247.178895 0.054046"
        ],
        "published_observations": 0,
        "scope": "sibling-tracks",
        "sibling_track_ids": [
          26782,
          26795
        ],
        "station_id": 13,
        "track_id": 26782
      }
    ],
    "detail_omitted": 0,
    "epochs": 12,
    "measurements_excluded": 24,
    "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": 10
  },
  "generated_at": "2026-09-22T23:31:15.150462Z",
  "generation_id": "10e27f7f92d4a55bbee766fcc3175abfb7027fdccc829e6809d4ee2f343072f2",
  "generator": "satnogs_optical_network.products",
  "iod": {
    "13": {
      "identified_lines": 37594,
      "identified_tracks": 329,
      "lines": 66494,
      "skipped": 0,
      "skipped_reasons": [],
      "unk_lines": 28900,
      "unk_tracks": 7994,
      "wide_id_tracks": 0
    }
  },
  "layout": {
    "generation_dir": "session_date=2026-09-02/generations/10e27f7f92d4a55bbee766fcc3175abfb7027fdccc829e6809d4ee2f343072f2",
    "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-02",
    "stations": "stations",
    "tracks": "tracks.parquet"
  },
  "metrics": {
    "measurements": 77770,
    "objects": 0,
    "stations": 1,
    "tracks": 9845,
    "unk_tracks": 9845
  },
  "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": 1,
    "tdm_observations": 37570,
    "tdm_observations_expected": 37570,
    "tdm_observations_verified": true,
    "tdm_tracks": 319
  },
  "per_station": [
    {
      "epoch_collisions": 12,
      "iod": {
        "identified_lines": 37594,
        "identified_tracks": 329,
        "lines": 66494,
        "skipped": 0,
        "skipped_reasons": [],
        "unk_lines": 28900,
        "unk_tracks": 7994,
        "wide_id_tracks": 0
      },
      "iod_station_code": "13",
      "measurements": 77770,
      "name": "Mpakano",
      "objects": 0,
      "station_id": 13,
      "tdm_tracks": 329,
      "tracks": 9845,
      "unk_tracks": 9845
    }
  ],
  "products": [
    {
      "bytes": 4421,
      "conformance": null,
      "kind": "characterisation-station",
      "path": "session_date=2026-09-02/generations/10e27f7f92d4a55bbee766fcc3175abfb7027fdccc829e6809d4ee2f343072f2/stations/station-13.json",
      "scope": "station-night",
      "scope_key": "13-2026-09-02",
      "sha256": "764d9115278ccfc1556e3d29ff8f6627469847ad3b5ebbf0dd27b55e8f933fbc"
    },
    {
      "bytes": 4455098,
      "conformance": null,
      "kind": "iod-station-night",
      "path": "session_date=2026-09-02/generations/10e27f7f92d4a55bbee766fcc3175abfb7027fdccc829e6809d4ee2f343072f2/iod/station-13-2026-09-02.iod",
      "scope": "station-night",
      "scope_key": "13-2026-09-02",
      "sha256": "5f8f36b9dc5cf1e64ebbf03780d8b7b6d0c2fae7f9b2a1c1e2e1635a0924ad19"
    },
    {
      "bytes": 7570204,
      "conformance": null,
      "kind": "parquet-session",
      "path": "session_date=2026-09-02/generations/10e27f7f92d4a55bbee766fcc3175abfb7027fdccc829e6809d4ee2f343072f2/measurements.parquet",
      "scope": "session",
      "scope_key": "2026-09-02",
      "sha256": "b8f2be60a2e7025214ce88a06183194fb82809d28e19919e7d964d756980ca30"
    },
    {
      "bytes": 574131,
      "conformance": null,
      "kind": "parquet-tracks",
      "path": "session_date=2026-09-02/generations/10e27f7f92d4a55bbee766fcc3175abfb7027fdccc829e6809d4ee2f343072f2/tracks.parquet",
      "scope": "session",
      "scope_key": "2026-09-02",
      "sha256": "0b0748a5f4ce0c3deae033e99e4bbdee2281df0dfaf973bdebc9565c023317d9"
    },
    {
      "bytes": 4629463,
      "conformance": "SKIPPED: Orekit conformance NOT VERIFIED for station-13-2026-09-02.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": 37570,
      "path": "session_date=2026-09-02/generations/10e27f7f92d4a55bbee766fcc3175abfb7027fdccc829e6809d4ee2f343072f2/tdm/station-13-2026-09-02.tdm",
      "scope": "station-night",
      "scope_key": "13-2026-09-02",
      "sha256": "004d42c72904e8e938bc26498accb6ce9c5c89d041afcd8e0d26484dc446a159"
    }
  ],
  "quarantined_excluded": 77872,
  "station": 13,
  "stations": [
    13
  ],
  "tdm_excluded_epoch_collisions": 24,
  "tdm_skipped_no_observations": 10,
  "tdm_skipped_unk": 9516
}
