5.9 KiB
Legacy Time-Series InSAR Deprecation Record
Date: 2026-05-21
Background
The project previously kept an ISCE2 + MintPy time-series/SBAS production path under:
experiments/isce2_sbas_timeseries
That experiment directory has been removed. The active SBAS-InSAR direction is now the independent Gamma production workflow documented in:
docs/SBAS_INSAR_PRODUCTION_PIPELINE_DESIGN_20260519.md
docs/GAMMA_IPTA_LT1_SBAS_TRIAL_RUNBOOK_20260518.md
Before this cleanup, startup validation still generated warnings for missing legacy paths:
TIMESERIES_EXPERIMENT_ROOT
TIMESERIES_STACK_PREP_SCRIPT
TIMESERIES_MATERIALIZE_SCRIPT
TIMESERIES_PREPARE_DEM_SCRIPT
TIMESERIES_STACK_RUNNER_SCRIPT
TIMESERIES_MINTPY_SBAS_SCRIPT
TIMESERIES_EXPORT_PUBLISH_SCRIPT
Those warnings were misleading because they referred to the abandoned ISCE2/MintPy line, not the current Gamma SBAS-InSAR production line.
Decision
The ISCE2/MintPy time-series production chain is deprecated and disabled by default.
The current SBAS-InSAR production authority is:
Frontend view: sbas_insar_production
Backend route: /api/sbas-insar-production
Engine: Gamma
Workflow: DIFF + IPTA SBAS
The legacy code is not physically deleted yet. It remains only as compatibility and historical-reference code until the Gamma SBAS workflow can be tested end to end and historical result access is confirmed.
Changes Made
Backend configuration:
backend/app/config.pyTIMESERIES_ENABLEDdefault changed fromtruetofalse.- Legacy
TIMESERIES_*experiment/script defaults are now populated only whenTIMESERIES_ENABLED=true. ensure_dirs()no longer createsTIMESERIES_WORK_ROOTunless the legacy chain is explicitly enabled.- Runtime validation now reports an info line instead of warning about missing legacy experiment scripts when the chain is disabled.
Environment example:
.env.exampleTIMESERIES_ENABLED=falseTIMESERIES_EXPERIMENT_ROOT=is blank.TIMESERIES_DEFAULT_PROCESSOR_CODE=legacy_isce2_stack_mintpy
Frontend production management:
-
frontend/src/config/appConstants.js- Removed production workspace views:
timeseries_runstimeseries_products
- Legacy route aliases now map to the Gamma SBAS page:
ps_production -> sbas_insar_productionps_products -> sbas_insar_production
- Removed production workspace views:
-
frontend/src/ProductionWorkspace.jsx- Removed lazy imports and render branches for:
TimeseriesProductionPanel- production-management
PsinsarCatalogPanel
- Updated production workspace text to describe Gamma SBAS as an independent entry.
- Removed lazy imports and render branches for:
-
frontend/src/components/app/AppSidePanel.jsx- Updated production-management description to state that the old ISCE2/MintPy time-series entry is disabled.
Documentation:
-
docs/SBAS_INSAR_PRODUCTION_PIPELINE_DESIGN_20260519.md- Added the legacy-chain deprecation decision.
-
docs/FRONTEND_NAVIGATION_ARCHITECTURE.md- Updated production-management internal views to:
dinsar_runssbas_insar_productiondinsar_products
- Updated production-management internal views to:
Current Behavior
After backend restart, deployment validation should no longer warn about the removed experiments/isce2_sbas_timeseries path.
Expected validation line:
[INFO] Legacy ISCE2/MintPy timeseries pipeline is disabled; current SBAS-InSAR production uses the Gamma /sbas-insar-production workflow.
The production-management page should show:
D-InSAR 运行
SBAS-InSAR Production
D-InSAR 产物
It should no longer expose:
时序InSAR 运行
时序InSAR 产物
Verification
Completed on 2026-05-21:
- Frontend build passed:
npm run build
- Runtime configuration check passed:
scripts/check_runtime_config.py
Observed output included:
[INFO] Legacy ISCE2/MintPy timeseries pipeline is disabled; current SBAS-InSAR production uses the Gamma /sbas-insar-production workflow.
[OK] Deployment configuration check passed.
- Backend config syntax was checked with Python AST parsing.
python -m py_compile backend/app/config.py was not used as the final check because Windows denied replacement of an existing __pycache__ file. This was a local cache-permission issue, not a syntax failure.
Retained Compatibility Code
The following code is intentionally retained for now:
backend/app/routers/timeseries_production.py
backend/app/services/timeseries_service.py
frontend/src/TimeseriesProductionPanel.jsx
frontend/src/api/timeseriesProduction.js
frontend/src/components/PsinsarCatalogPanel.jsx
Database tables and historical product catalog structures such as ps_timeseries_runs are also retained.
PsinsarCatalogPanel may still be useful outside production management, especially for analysis/result browsing. Do not delete it until those usages are audited.
Re-Enabling Legacy Chain
Re-enabling the legacy ISCE2/MintPy chain is not part of the current production plan.
If it must be revived for a controlled comparison, the operator must explicitly set:
TIMESERIES_ENABLED=true
and provide valid values for all legacy experiment/script paths. The removed experiments/isce2_sbas_timeseries directory is no longer assumed to exist.
Follow-Up Cleanup Criteria
Physical deletion of the legacy chain should wait until all of the following are true:
- Gamma SBAS production has completed an end-to-end run from stack discovery to published LOS velocity/sigma products.
- Historical
ps_timeseries_runsand old time-series product records have a clear migration or read-only archival plan. - Frontend navigation, route aliases, and analysis pages have been audited for remaining dependencies.
- Backend callers of
/api/timeseries-productionhave either been removed or explicitly marked as legacy-only. - Test coverage or manual regression notes confirm that D-InSAR production, SBAS production, product browsing, and task monitoring still work.