# ============================================================================= # InSAR Management System v2 - 示例环境变量 # ============================================================================= # 说明: # 1. 复制为 .env 后按现场路径修改。 # 2. 根目录 .env 是后端与前端共同的事实来源。 # 3. 路径请使用 Windows 绝对路径;WSL 中的 Python / 脚本使用 Linux 路径。 # ============================================================================= # ----------------------------------------------------------------------------- # 数据库与认证 # ----------------------------------------------------------------------------- DATABASE_URL=postgresql+asyncpg://postgres:your_password@localhost:5432/insar_management 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_PBKDF2_ITERATIONS=240000 AUTH_LOGIN_MAX_FAILURES=5 AUTH_LOGIN_WINDOW_SECONDS=300 AUTH_LOGIN_LOCK_SECONDS=600 TRUSTED_PROXY_IPS=127.0.0.1 # ----------------------------------------------------------------------------- # 服务启动 # ----------------------------------------------------------------------------- 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/ LICENSE_PATH= CORS_ORIGINS=http://127.0.0.1:5173,http://localhost CORS_ALLOW_CREDENTIALS=true CORS_STRICT_MODE=false ALLOWED_EXPORT_DIRS= # ----------------------------------------------------------------------------- # 源数据目录 # ----------------------------------------------------------------------------- UNPACK_SOURCE_DIRS=D:\Archives SOURCE_PRODUCT_DIRS=D:\LuTan1_Image_Pool;D:\Sentinel1_Image_Pool_ZIP SENTINEL1_STORAGE_DIRS=D:\Sentinel1_Image_Pool INSAR_STORAGE_DIRS=D:\LuTan1_Image_Pool MONITOR_RADAR_DIRS=D:\LuTan1_Image_Pool MONITOR_DINSAR_DIRS=D:\DInSARResult ORBIT_SOURCE_DIRS=D:\LT1_data_lsarorbit;D:\Sentinel1_EOF_Pool MONITOR_ORBIT_DIR=D:\LT1_data_lsarorbit GF3_ARCHIVE_SOURCE_DIRS=D:\GF3_L1A_Image_Zip GF3_ARCHIVE_EXTS=.zip,.tar,.tar.gz,.tgz GF3_UNPACK_DELETE_ARCHIVE=true GF3_SOURCE_DIRS=D:\GF3_L1A_Image GF3_SARSCAPE_NATIVE_DIRS=D:\GF3_L2_ENVI_Binary_Pool GF3_STORAGE_DIRS=D:\GF3_L2_Image_Pool GF3_SARSCAPE_WRAPPER_EXE=D:\Code\Insar_management_system_v2\.codex_tmp\GF3_L1A_To_L2_pipeline\dist\windows\gf3wrapper.exe GF3_SARSCAPE_IDLRT_PATH=C:\Program Files\Harris\ENVI56\IDL88\bin\bin.x86_64\idlrt.exe GF3_SARSCAPE_DEM_PATH=D:\DEM\COPDEM_GLO30_China_4326_DEM GF3_SARSCAPE_POLARIZATIONS=HH,HV GF3_SARSCAPE_KEEP_EXTRACTED=true GF3_SARSCAPE_AUTO_STANDARDIZE=true GF3_SARSCAPE_CLEAN_AFTER_SUCCESS=true GF3_SARSCAPE_PRODUCE_TIMEOUT_SECONDS=0 HAZARD_POINTS_DIR=D:\Code\Insar_management_system_v2\backend\Point HAZARD_POINTS_FILENAME=Point.shp AOI_REGION_INDEX_FILE= AOI_REGION_GEOJSON_FILE= # ----------------------------------------------------------------------------- # 结果目录 # ----------------------------------------------------------------------------- RESULT_PUBLISH_ROOT=D:\production_results DINSAR_PRODUCT_DIR=D:\production_results\dinsar TIMESERIES_PRODUCT_DIR=D:\production_results\timeseries PSINSAR_PRODUCT_DIR=D:\production_results\timeseries RESULT_QUARANTINE_ROOT=D:\production_results\_quarantine RESULT_CATALOG_AUTO_REBUILD_ON_STARTUP=true # ----------------------------------------------------------------------------- # 轨道池 # ----------------------------------------------------------------------------- ORBIT_POOL_ENVI=D:\orbit_pools\envi ORBIT_POOL_ISCE2=D:\orbit_pools\isce2 ORBIT_POOL_LANDSAR= ORBIT_QUARANTINE_DIR= # ----------------------------------------------------------------------------- # DEM / 其他数据 # ----------------------------------------------------------------------------- # Raw D-InSAR DEM source for SARscape/ENVI. Keep the base path without the .wgs84 suffix here. 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 SAR_ANALYSIS_READY_ROOT=D:\production_results\sar_analysis_ready SAR_ANALYSIS_WORK_ROOT=D:\production_results\sar_analysis_work SAR_ANALYSIS_PREVIEW_ROOT=D:\production_results\sar_analysis_preview SAR_ANALYSIS_NODATA_VALUE=-9999 SAR_ANALYSIS_OUTPUT_COG=true # ----------------------------------------------------------------------------- # 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 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_RETRY_DELAY_SECONDS=180 IDL_DINSAR_CUSTOM_TARGET_RESOLUTION_M=10.0 IDL_DINSAR_CUSTOM_FILTER_METHOD=GOLDSTEIN IDL_DINSAR_CUSTOM_UNWRAP_COH_THRESHOLD=0.05 IDL_DINSAR_CUSTOM_GCP_COH_THRESHOLD=0.7 IDL_DINSAR_CUSTOM_GCP_NUMBER=100 IDL_DINSAR_CUSTOM_GEOCODING_COH_THRESHOLD=0.0 IDL_DINSAR_CUSTOM_GEOCODING_PIXEL_SIZE_M=10.0 ENVI_TASK_TIMEOUT_SECONDS=21600 ENVI_PER_TASK_TIMEOUT=21600 ENVI_FILE_STALE_SECONDS=43200 ENVI_STABILITY_CHECK_INTERVAL=15 ENVI_STABILITY_ROUNDS=3 ENVI_STABILITY_MAX_WAIT=3600 # ----------------------------------------------------------------------------- # 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/insar_wsl_v1/bin/python ISCE2_PROFILE=lt1_stripmap ISCE2_STRIPMAP_APP=/home/administrator/miniconda3/envs/insar_wsl_v1/lib/python3.11/site-packages/isce/applications/stripmapApp.py ISCE2_PIPELINE_SCRIPT= # ISCE2 should point to the prepared WGS84 DEM after the one-time conversion. 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 # Managed LT-1 stripmap production defaults are defined in code: # split-spectrum ionosphere correction = on, # dense offsets = on, rubbersheeting range = on, rubbersheeting azimuth = on. # These are profile-level workflow semantics, not standalone .env toggles. # The WSL runtime must include cv2 + scipy for ionosphere correction and astropy for rubbersheeting. # ----------------------------------------------------------------------------- # LandSAR D-InSAR # ----------------------------------------------------------------------------- LANDSAR_ENABLED=true LANDSAR_HOME=D:\LandSAR LANDSAR_CONSOLE_EXE=D:\LandSAR\InSAR_Console.exe LANDSAR_WORK_ROOT=D:\LandSAR_Work # Optional extra DLL directories separated by semicolons. LANDSAR_RUNTIME_PATHS=D:\LandSAR LANDSAR_LICENSE_MODE=netVersion LANDSAR_LICENSE_HOST=127.0.0.1 LANDSAR_LICENSE_PORT=6666 LANDSAR_CONFIG_ROW=netVersion,zh,127.0.0.1,6666 LANDSAR_CONFIG_AUTO_WRITE=true LANDSAR_AUTH_SERVER_EXE=D:\Code\Insar_management_system_v2\third_party\LandSAR\tools\_portable_release\LandSAR_auth_tools_win64\landsar_net_auth_server.exe LANDSAR_AUTH_SERVER_AUTO_START=true LANDSAR_AUTH_SERVER_HOST=127.0.0.1 LANDSAR_AUTH_SERVER_PORT=6666 LANDSAR_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape.wgs84 LANDSAR_DINSAR_TIMEOUT_SECONDS=43200 LANDSAR_SBAS_ENABLED=true LANDSAR_SBAS_WORK_ROOT=D:\LandSAR_Work\sbas LANDSAR_SBAS_PRODUCT_ROOT=D:\production_results\timeseries\sbas_landsar LANDSAR_SBAS_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape.wgs84 LANDSAR_SBAS_SOURCE_ROOTS=D:\LandSAR_Work LANDSAR_SBAS_TIMEOUT_SECONDS=172800 LANDSAR_SBAS_MIN_SCENES=3 # ----------------------------------------------------------------------------- # Gamma / PyINT # ----------------------------------------------------------------------------- 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:\production_results\dinsar PYINT_DEM_ROOT=D:\Code\Insar_management_system_v2\backend\runtime\pyint_dem PYINT_DEM_MODE=local_fabdem PYINT_FABDEM_ROOT= # When PYINT_DEM_MODE=prepared_file, point this to the same prepared WGS84 DEM. PYINT_PREPARED_DEM_PATH= # 0 means do not derive looks from a target output grid. PYINT_DEFAULT_TARGET_GRID_SIZE_M=0 # Source DEM resolution recorded in PyINT/Gamma run metadata. PYINT_DEM_RESOLUTION_M=30.0 PYINT_OPENTOPO_DEM_TYPE=SRTMGL1 PYINT_OPENTOPO_API_KEY= PYINT_DEM_STRICT=true # Gamma unwrap support and quality support reporting are intentionally separate. PYINT_UNWRAP_COH_THRESHOLD=0.05 PYINT_PRODUCT_COH_THRESHOLD=0.20 PYINT_GAMMA_NODATA_VALUE=-9999.0 PYINT_GEO_INTERP=1 PYINT_ATMCOR_ENABLED=false PYINT_ATMCOR_USE_FOR_DISP=false PYINT_REFLATTEN_ENABLED=true PYINT_REFLATTEN_MODEL=plane PYINT_REFLATTEN_COH_THRESHOLD=0.70 PYINT_REFLATTEN_FALLBACK_COH_THRESHOLD=0.20 PYINT_REFLATTEN_RANGE_STEP=32 PYINT_REFLATTEN_AZIMUTH_STEP=32 PYINT_ORBIT_POLICY=require_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 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 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 # ----------------------------------------------------------------------------- # Gamma SBAS-InSAR # ----------------------------------------------------------------------------- GAMMA_SBAS_ENABLED=true GAMMA_SBAS_RUNTIME_ID=gamma_sbas_runtime_v1 GAMMA_SBAS_WSL_DISTRO=Ubuntu-24.04 GAMMA_SBAS_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python GAMMA_SBAS_ENV_SCRIPT=D:\Code\Insar_management_system_v2\deploy\wsl\profiles\gamma_env.sh GAMMA_SBAS_WORK_ROOT=D:\Code\Insar_management_system_v2\backend\runtime\sbas_insar_production GAMMA_SBAS_PRODUCT_ROOT=D:\production_results\timeseries\sbas GAMMA_SBAS_SCRIPT_TEMPLATE_ROOT=D:\Code\Insar_management_system_v2\backend\templates\gamma_sbas GAMMA_SBAS_SOURCE_ROOTS=D:\LuTan1_Image_Pool GAMMA_SBAS_ORBIT_ROOTS=D:\orbit_pools\envi GAMMA_SBAS_DEM_PATH=D:\DEM\HeiLongJiang10M_DEM.tif GAMMA_SBAS_DEFAULT_RLKS=8 GAMMA_SBAS_DEFAULT_AZLKS=8 GAMMA_SBAS_DEFAULT_MB_MODE=0 GAMMA_SBAS_DEFAULT_REFERENCE_WINDOW=16 GAMMA_SBAS_AUTO_APPROVE_ITAB=true GAMMA_SBAS_MIN_COMMON_OVERLAP_RATIO=0.30 GAMMA_SBAS_STEP_TIMEOUT_SECONDS=43200 GAMMA_SBAS_WORKFLOW_TIMEOUT_SECONDS=172800 # ----------------------------------------------------------------------------- # 时序 InSAR(旧 ISCE2/MintPy 链路) # ----------------------------------------------------------------------------- TIMESERIES_ENABLED=false 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= 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_DEFAULT_PROCESSOR_CODE=legacy_isce2_stack_mintpy TIMESERIES_WSL_STEP_TIMEOUT_SECONDS=7200 TIMESERIES_ALLOW_SYNTHETIC_WATER_MASK=true SARSCAPE_SBAS_PARAMETER_TEMPLATE_PATH= SARSCAPE_SBAS_ALLOW_EXECUTION=false SARSCAPE_SBAS_DISCOVERY_TIMEOUT_SECONDS=120 SARSCAPE_SBAS_STEP_TIMEOUT_SECONDS=21600 # ----------------------------------------------------------------------------- # Worker / 健康检查 # ----------------------------------------------------------------------------- JOB_WORKER_HEALTH_TIMEOUT=60 JOB_WORKER_JOB_HEARTBEAT_INTERVAL=5 JOB_WORKER_STALE_RECOVER_INTERVAL=15 JOB_WORKER_STALE_RUNNING_SECONDS=7200 JOB_WORKER_HEARTBEAT_INTERVAL=5 # ----------------------------------------------------------------------------- # 解包 # ----------------------------------------------------------------------------- UNPACK_MIN_DISK_SPACE_GB=50 UNPACK_SCAN_WORKERS=4 UNPACK_EXTRACT_WORKERS=4 UNPACK_MAX_FILES_PER_RUN=100 UNPACK_MAX_RUNTIME_MINUTES=360 UNPACK_DELETE_ARCHIVE=true UNPACK_TMP_SUFFIX=.unpack_tmp # ----------------------------------------------------------------------------- # 预览与缓存 # ----------------------------------------------------------------------------- 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