Files
insar-management-system-v2/docs/PRECISE_ORBIT_PRODUCTION_CONTRACT_20260617.md
T

4.2 KiB

Precise Orbit Production Contract 2026-06-17

This document is the current contract for LT-1 and Sentinel-1 precise orbit management. UNC paths are not allowed in active source, orbit, task, or production paths.

Two Layers

There are two different orbit layers.

ORBIT_SOURCE_DIRS is the source asset layer. It is scanned into orbit_assets and used for scene-orbit binding:

ORBIT_SOURCE_DIRS=D:\LT1_data_lsarorbit;D:\Sentinel1_EOF_Pool

ORBIT_POOL_ENVI / PYINT_ORBIT_POOL_TXT / GAMMA_SBAS_ORBIT_ROOTS are LT-1 production orbit pools. They are local TXT pools consumed by ENVI/SARscape and Gamma/PyINT:

ORBIT_POOL_ENVI=D:\orbit_pools\envi
PYINT_ORBIT_POOL_TXT=D:\orbit_pools\envi
GAMMA_SBAS_ORBIT_ROOTS=D:\orbit_pools\envi

Expected LT-1 production layout:

D:\orbit_pools\envi
  LT1A\
    LT1A_GpsData_GAS_C_YYYYMMDD.txt
  LT1B\
    LT1B_GpsData_GAS_C_YYYYMMDD.txt

LT1A and LT1B are satellite names, not product levels.

Scan Semantics

The active scan entry is /assets/inventory/scan.

  • inventory_types=["orbit_asset"], families=["LT1"] scans LT-1 orbit TXT files.
  • inventory_types=["orbit_asset"], families=["S1"] scans Sentinel-1 EOF files.
  • inventory_types=["orbit_asset"], families=["LT1","S1"] scans both.

LT-1 scanning recognizes LT1A_GpsData_GAS_C_YYYYMMDD.txt and LT1B_GpsData_GAS_C_YYYYMMDD.txt.

Sentinel-1 scanning recognizes S1*_OPER_AUX_*.EOF and matches EOF validity windows to scene acquisition windows.

After an LT-1 orbit scan, the scanner also synchronizes the LT-1 production TXT pool under ORBIT_POOL_ENVI. This keeps Gamma/PyINT and Gamma SBAS able to find the same TXT files without relying on the old monitor scan.

Orbit asset scans are incremental. For already indexed TXT/EOF files, the scanner skips metadata parsing and database upsert when the file path, size, mtime, parser version, active flag, and parse_status=OK still match the database record. Missing files are still marked inactive by comparing the scanned seen_paths set with existing assets under the same managed root.

Engine Consumers

ENVI/SARscape D-InSAR:

  • Uses local LT-1 data prepared for the SARscape workflow.
  • The LT-1 TXT production pool is ORBIT_POOL_ENVI.
  • The pool must be split by satellite because ENVI-side tools expect stable satellite folders.

Gamma/PyINT D-InSAR:

  • Reads LT-1 TXT orbit files from PYINT_ORBIT_POOL_TXT.
  • Current default keeps PYINT_ORBIT_POOL_TXT=ORBIT_POOL_ENVI.
  • For LT-1, input assets may stage TXT orbits into the task input manifest when the precise-orbit bridge is enabled.
  • For Sentinel-1, EOF paths come from source/orbit asset binding or task orbit staging.

Gamma SBAS:

  • For LT-1, reads TXT orbit roots from GAMMA_SBAS_ORBIT_ROOTS.
  • For Sentinel-1, planning uses ORBIT_SOURCE_DIRS EOF roots; S1 SBAS execution is not enabled.
  • LT-1 Gamma SBAS scripts use the orbit path recorded in scene discovery.

LandSAR:

  • Current D-InSAR integration does not independently scan an orbit pool.
  • It consumes already prepared LT-1 task input.
  • ORBIT_POOL_LANDSAR is not an active synchronization target in current code.

ISCE2:

  • ISCE2 is retired from the active D-InSAR production path.
  • ORBIT_POOL_ISCE2 is legacy only and should be empty unless ISCE2_ENABLED=true.
  • When ISCE2_ENABLED=false, health and orbit status must not treat missing ISCE2 XML as a production error.

Database State

orbit_assets records original orbit files from ORBIT_SOURCE_DIRS.

scene_orbit_bindings records candidate and selected scene-orbit matches.

radar_data.selected_orbit_asset_id, radar_data.orbit_binding_status, radar_data.has_orbit_data, and radar_data.orbit_file_path are compatibility fields for production and search.

orbit_asset_derivatives records production-pool derivatives. For current LT-1 TXT production, derivative records use:

engine_code=lt1_txt_pool
derivative_format=LT1_TXT
derivative_role=production_orbit_txt
pool_path=D:\orbit_pools\envi\LT1A|LT1B\*.txt

Current Defaults

ISCE2_ENABLED=false
ORBIT_POOL_ISCE2=
ORBIT_POOL_LANDSAR=

The old /monitor/run-now?target=orbit path is legacy. It may still synchronize the LT-1 production pool for compatibility, but new UI should use asset inventory orbit scans.