chore: sync production runtime and docs

This commit is contained in:
2026-04-25 15:02:40 +08:00
parent cb518b431f
commit 1e44101eb2
50 changed files with 8575 additions and 2177 deletions
+135 -101
View File
@@ -1,35 +1,27 @@
# =============================================================================
# InSAR Management System v2 — 环境配置
# InSAR Management System v2 - 示例环境变量
# =============================================================================
# 修改后需重启后端服务生效。
# 路径使用 Windows 格式(反斜杠),UNC 路径以 \\ 开头
# 说明:
# 1. 复制为 .env 后按现场路径修改
# 2. 根目录 .env 是后端与前端共同的事实来源。
# 3. 路径请使用 Windows 绝对路径;WSL 中的 Python / 脚本使用 Linux 路径。
# =============================================================================
# -----------------------------------------------------------------------------
# 数据库
# 数据库与认证
# -----------------------------------------------------------------------------
# 格式: postgresql+asyncpg://用户名:密码@主机:端口/数据库名
DATABASE_URL=postgresql+asyncpg://postgres:your_password@localhost:5432/insar_management
# -----------------------------------------------------------------------------
# 服务部署
# -----------------------------------------------------------------------------
PORT=8000
BACKEND_BIND_HOST=127.0.0.1
NGINX_PATH=C:\nginx\nginx.exe
NGINX_HEALTH_URL=http://127.0.0.1/
PYTHON_PATH=C:\envs\InSAR\python.exe
CORS_ORIGINS=http://localhost
UVICORN_LOG_LEVEL=info
# -----------------------------------------------------------------------------
# 认证与授权
# -----------------------------------------------------------------------------
LICENSE_PATH=
INIT_ADMIN_USERNAME=admin
INIT_ADMIN_PASSWORD=change_me
INIT_ADMIN_RESET_PASSWORD=false
DB_SCHEMA_RESET_ON_MISMATCH=false
DB_SCHEMA_RESET_CONFIRM=false
AUTH_SESSION_COOKIE_NAME=ims_session
AUTH_COOKIE_SAMESITE=lax
AUTH_COOKIE_SECURE=false
AUTH_LOGIN_MAX_FAILURES=5
AUTH_LOGIN_WINDOW_SECONDS=300
@@ -37,46 +29,53 @@ AUTH_LOGIN_LOCK_SECONDS=600
# -----------------------------------------------------------------------------
# 数据目录 — LT-1
# 服务启动
# -----------------------------------------------------------------------------
# 压缩包来源(解包输入)
UNPACK_SOURCE_DIRS=\\server\share\archives
# 解包后存储 / 雷达数据扫描目录(通常指向同一路径)
INSAR_STORAGE_DIRS=\\server\share\storage
MONITOR_RADAR_DIRS=\\server\share\storage
# D-InSAR 结果目录
MONITOR_DINSAR_DIRS=\\server\share\dinsar_results
# 精轨源目录(UNC,平铺 .txt)
MONITOR_ORBIT_DIR=\\server\share\orbit
PORT=18000
BACKEND_BIND_HOST=127.0.0.1
UVICORN_LOG_LEVEL=info
PYTHON_PATH=C:\ProgramData\anaconda3\envs\InSAR\python.exe
CONDA_EXE=
CONDA_ENV_NAME=
NGINX_PATH=C:\nginx\nginx.exe
NGINX_HEALTH_URL=http://127.0.0.1/
CORS_ORIGINS=http://127.0.0.1:5173,http://localhost
CORS_ALLOW_CREDENTIALS=true
CORS_STRICT_MODE=false
# -----------------------------------------------------------------------------
# 数据目录 — GF3
# 数据目录
# -----------------------------------------------------------------------------
UNPACK_SOURCE_DIRS=D:\Archives
INSAR_STORAGE_DIRS=D:\LuTan1_Image_Pool
MONITOR_RADAR_DIRS=D:\LuTan1_Image_Pool
MONITOR_DINSAR_DIRS=D:\DInSARResult
MONITOR_ORBIT_DIR=D:\LT1_data_lsarorbit
GF3_SOURCE_DIRS=D:\GF3_L1A_Image
GF3_STORAGE_DIRS=D:\GF3_L2_Image
# -----------------------------------------------------------------------------
# 数据目录 — 水体监测
# -----------------------------------------------------------------------------
WATER_RESULTS_DIR=D:\WaterResult
HAZARD_POINTS_DIR=D:\Code\Insar_management_system_v2\backend\Point
HAZARD_POINTS_FILENAME=Point.shp
# -----------------------------------------------------------------------------
# DEM
# 结果目录
# -----------------------------------------------------------------------------
# D-InSAR 生产用 DEMSARscape/ENVI 格式,不含扩展名)
IDL_DINSAR_DEM_BASE_FILE=D:\DEM\YourDemBase
# 水体检测用 SRTM DEM 目录(存放 .hgt 文件)
SRTM_DEM_DIR=D:\DEM
# GF3 几何校正用 DEM
GF3_GEO_DEM_PATH=D:\DEM\your_dem.jp2
RESULT_PUBLISH_ROOT=D:\production_results
DINSAR_PRODUCT_DIR=D:\production_results\dinsar
TIMESERIES_PRODUCT_DIR=D:\production_results\timeseries
RESULT_QUARANTINE_ROOT=D:\production_results\_quarantine
RESULT_CATALOG_AUTO_REBUILD_ON_STARTUP=true
# -----------------------------------------------------------------------------
# 精轨本地池(本地路径,供各引擎使用)
# 通过运维自检"同步精轨池"从 MONITOR_ORBIT_DIR 同步
# 轨道池
# -----------------------------------------------------------------------------
ORBIT_POOL_ENVI=D:\orbit_pools\envi
ORBIT_POOL_ISCE2=D:\orbit_pools\isce2
@@ -84,17 +83,25 @@ ORBIT_POOL_LANDSAR=
# -----------------------------------------------------------------------------
# ENVI / SARscape 引擎
# DEM / 其他数据
# -----------------------------------------------------------------------------
IDL_DINSAR_DEM_BASE_FILE=D:\SRTM30m\SRTMDEM_RSP_SARscape
SRTM_DEM_DIR=D:\SRTM30m
GF3_GEO_DEM_PATH=D:\DEM\gf3_dem.jp2
WATER_RESULTS_DIR=D:\WaterResult
# -----------------------------------------------------------------------------
# ENVI / SARscape
# -----------------------------------------------------------------------------
IDL_EXECUTABLE=C:\Program Files\Harris\ENVI56\IDL88\bin\bin.x86_64\idl.exe
IDL_WORKBENCH_PATH=C:\Program Files\Harris\ENVI56\IDL88\bin\bin.x86_64\idlde.exe
# 留空则默认使用项目 backend/runtime/idl_worker
IDL_WORKER_RUNTIME_DIR=
IDL_WORKER_RUNTIME_DIR=D:\Code\Insar_management_system_v2\backend\runtime\idl_worker
IDL_WORKER_DEFAULT_TIMEOUT_SECONDS=14400
IDL_WORKER_MAX_TIMEOUT_SECONDS=43200
IDL_JOB_MAX_ATTEMPTS=1
IDL_JOB_RETRY_DELAY_SECONDS=180
# D-InSAR 自定义处理参数
IDL_DINSAR_CUSTOM_TARGET_RESOLUTION_M=10.0
IDL_DINSAR_CUSTOM_FILTER_METHOD=GOLDSTEIN
IDL_DINSAR_CUSTOM_UNWRAP_COH_THRESHOLD=0.05
@@ -103,59 +110,60 @@ IDL_DINSAR_CUSTOM_GCP_NUMBER=100
IDL_DINSAR_CUSTOM_GEOCODING_COH_THRESHOLD=0.0
IDL_DINSAR_CUSTOM_GEOCODING_PIXEL_SIZE_M=10.0
# ENVI 子进程超时与稳定性检测
ENVI_TASK_TIMEOUT_SECONDS=21600
ENVI_FILE_STALE_SECONDS=43200
ENVI_STABILITY_CHECK_INTERVAL=15
ENVI_STABILITY_ROUNDS=3
ENVI_STABILITY_MAX_WAIT=3600
ENVI_TASK_TIMEOUT_SECONDS=14400
# -----------------------------------------------------------------------------
# ISCE2 引擎(需要 WSL + ISCE2 环境)
# WSL 共享运行时
# -----------------------------------------------------------------------------
WSL_DISTRO=Ubuntu-24.04
WSL_SHARED_CONDA_ENV=insar_wsl_v1
WSL_SHARED_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python
WSL_BROKER_JOB_ROOT=D:\Code\Insar_management_system_v2\backend\runtime\wsl_jobs
ISCE2_RUNTIME_ID=isce2_runtime_v1
PYINT_RUNTIME_ID=gamma_pyint_runtime_v1
# -----------------------------------------------------------------------------
# ISCE2 D-InSAR
# -----------------------------------------------------------------------------
ISCE2_ENABLED=true
ISCE2_WSL_DISTRO=Ubuntu-24.04
ISCE2_PYTHON=/home/administrator/miniconda3/envs/isce2/bin/python
ISCE2_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python
ISCE2_PROFILE=lt1_stripmap
ISCE2_STRIPMAP_APP=/home/administrator/miniconda3/envs/isce2/lib/python3.11/site-packages/isce/applications/stripmapApp.py
ISCE2_STRIPMAP_APP=/home/administrator/miniconda3/envs/insar_wsl_v1/lib/python3.11/site-packages/isce/applications/stripmapApp.py
ISCE2_PIPELINE_SCRIPT=
# DEM:留空则自动从 IDL_DINSAR_DEM_BASE_FILE 派生(加 .wgs84 后缀)
ISCE2_DEM_PATH=
ISCE2_WORK_ROOT=D:\isce2_work
ISCE2_OUTPUT_ROOT=D:\isce2_output
ISCE2_DEM_PATH=D:\SRTM30m\SRTMDEM_RSP_SARscape.wgs84
ISCE2_WORK_ROOT=D:\Code\Insar_management_system_v2\backend\runtime\isce2_work
ISCE2_OUTPUT_ROOT=D:\production_results\dinsar
ISCE2_PER_TASK_TIMEOUT_SECONDS=43200
ISCE2_SMOKE_TEST_ENABLED=false
# -----------------------------------------------------------------------------
# PyINT / Gamma 引擎(需要 WSL + PyINT + GAMMA
# Gamma / PyINT
# -----------------------------------------------------------------------------
PYINT_ENABLED=false
# 留空时默认跟随 ISCE2_WSL_DISTRO
PYINT_WSL_DISTRO=
# 留空时默认跟随 ISCE2_PYTHON
PYINT_WSL_PYTHON=
# 留空时默认使用项目内置的 third_party\PyINT
PYINT_HOME=
# 留空时默认使用 PYINT_HOME\pyint\pyintApp.py
PYINT_APP_SCRIPT=
PYINT_ENABLED=true
PYINT_WSL_DISTRO=Ubuntu-24.04
PYINT_WSL_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python
PYINT_HOME=D:\Code\Insar_management_system_v2\third_party\PyINT
PYINT_APP_SCRIPT=D:\Code\Insar_management_system_v2\third_party\PyINT\pyint\pyintApp.py
PYINT_TEMPLATE_ROOT=D:\Code\Insar_management_system_v2\backend\runtime\pyint_templates
PYINT_WORK_ROOT=D:\Code\Insar_management_system_v2\backend\runtime\pyint_work
PYINT_OUTPUT_ROOT=D:\Code\Insar_management_system_v2\backend\runtime\pyint_output
PYINT_OUTPUT_ROOT=D:\production_results\dinsar
PYINT_DEM_ROOT=D:\Code\Insar_management_system_v2\backend\runtime\pyint_dem
# 可选: local_fabdem / opentopo / prepared_file
PYINT_DEM_MODE=local_fabdem
PYINT_FABDEM_ROOT=
# 现有 DEM 复用模式下可指向:
# 1. 已有 Gamma DEM 基础文件(需同名 .par)
# 2. 系统现有 DEM 基础文件(需至少有 .xml/.hdr/.vrt,运行时按任务范围裁剪并转换为 Gamma DEM)
# 留空时会尝试回退到 ISCE2_DEM_PATH / IDL_DINSAR_DEM_BASE_FILE
PYINT_PREPARED_DEM_PATH=
PYINT_OPENTOPO_DEM_TYPE=SRTMGL1
PYINT_DEM_STRICT=true
PYINT_ORBIT_POLICY=require_txt
PYINT_ORBIT_POOL_TXT=
PYINT_ORBIT_POOL_TXT=D:\orbit_pools\envi
PYINT_RECORD_INPUT_ASSETS=true
PYINT_LT1_PRECISE_ORBIT_ENABLED=true
PYINT_LT1_PRECISE_ORBIT_MODE=replace
@@ -163,42 +171,45 @@ PYINT_LT1_PRECISE_ORBIT_STRICT=true
PYINT_LT1_PRECISE_ORBIT_VALIDATE_WITH_ORB_FILT=false
PYINT_LT1_PRECISE_ORBIT_BACKUP=true
PYINT_LT1_PRECISE_ORBIT_ORB_FILT_DEGREE=5
# 可选:source 该脚本后应能找到 create_offset / geocode_back / LT1_import_SLC_from_zipfiles1
PYINT_GAMMA_ENV_SCRIPT=
PYINT_GAMMA_ENV_SCRIPT=D:\Code\Insar_management_system_v2\deploy\wsl\profiles\gamma_env.sh
PYINT_DEFAULT_TIMEOUT_SECONDS=43200
PYINT_SMOKE_TEST_ENABLED=false
# -----------------------------------------------------------------------------
# 前端 tile-server 接入
# 说明:frontend/vite.config.js 会同时读取项目根 .env 与 frontend/.env
# 这里配置的 VITE_TILE_* 会透传给前端,且优先级高于 frontend/.env 同名项
# 时序 InSAR
# -----------------------------------------------------------------------------
# Tile Server
# -----------------------------------------------------------------------------
VITE_TILE_SERVER_URL=http://127.0.0.1:8910
VITE_TILE_SERVER_TOKEN=change_me
TIMESERIES_ENABLED=true
TIMESERIES_WSL_DISTRO=Ubuntu-24.04
TIMESERIES_ENV_NAME=insar_wsl_v1
TIMESERIES_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python
TIMESERIES_WORK_ROOT=D:\Code\Insar_management_system_v2\backend\runtime\timeseries_work
TIMESERIES_DEM_PATH=D:\SRTM30m\SRTMDEM_RSP_SARscape.wgs84
TIMESERIES_ORBIT_POOL_ISCE2=D:\orbit_pools\isce2
TIMESERIES_EXPERIMENT_ROOT=D:\Code\Insar_management_system_v2\experiments\isce2_sbas_timeseries
TIMESERIES_STACK_PREP_SCRIPT=
TIMESERIES_MATERIALIZE_SCRIPT=
TIMESERIES_PREPARE_DEM_SCRIPT=
TIMESERIES_STACK_RUNNER_SCRIPT=
TIMESERIES_MINTPY_SBAS_SCRIPT=
TIMESERIES_EXPORT_PUBLISH_SCRIPT=
TIMESERIES_STACK_WORKFLOW=interferogram
TIMESERIES_WSL_STEP_TIMEOUT_SECONDS=7200
TIMESERIES_ALLOW_SYNTHETIC_WATER_MASK=true
# -----------------------------------------------------------------------------
# 任务调度与 Worker
# Worker / 健康检查
# -----------------------------------------------------------------------------
JOB_WORKER_HEALTH_TIMEOUT=60
JOB_WORKER_JOB_HEARTBEAT_INTERVAL=5
JOB_WORKER_STALE_RECOVER_INTERVAL=15
JOB_WORKER_STALE_RUNNING_SECONDS=7200
TASK_TIMEOUT_MINUTES=720
JOB_WORKER_HEARTBEAT_INTERVAL=5
# -----------------------------------------------------------------------------
# AI 服务(Ollama
# -----------------------------------------------------------------------------
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_API_URL=http://127.0.0.1:11434/api/generate
DEFAULT_VLM_MODEL=qwen3-vl:30b
# -----------------------------------------------------------------------------
# 解包配置
# 解包
# -----------------------------------------------------------------------------
UNPACK_MIN_DISK_SPACE_GB=50
UNPACK_SCAN_WORKERS=4
@@ -210,7 +221,30 @@ UNPACK_TMP_SUFFIX=.unpack_tmp
# -----------------------------------------------------------------------------
# 灾害点
# 预览与缓存
# -----------------------------------------------------------------------------
HAZARD_POINTS_DIR=D:\Code\Insar_management_system_v2\backend\Point
HAZARD_POINTS_FILENAME=Point.shp
RADAR_THUMBNAIL_MAX_SIZE=1600
RADAR_CACHE_WORKERS=2
RADAR_GEO_CACHE_WORKERS=2
RADAR_GEO_CACHE_VERSION=b1
RADAR_GEO_CACHE_QUALITY=84
RADAR_PREVIEW_BUILD_ON_DEMAND=true
DINSAR_THUMBNAIL_MAX_SIZE=1600
DINSAR_FOOTPRINT_MAX_SIZE=1000
DINSAR_CACHE_WORKERS=4
# -----------------------------------------------------------------------------
# AI / 其他外部服务
# -----------------------------------------------------------------------------
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_API_URL=http://127.0.0.1:11434/api/generate
DEFAULT_VLM_MODEL=qwen3-vl:30b
# -----------------------------------------------------------------------------
# 前端 tile server
# -----------------------------------------------------------------------------
VITE_TILE_SERVER_URL=http://127.0.0.1:8910
VITE_TILE_SERVER_TOKEN=change_me