# ============================================================================= # 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 DASHBOARD_STATS_CACHE_TTL_SECONDS=120 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/ # Optional LAN client whitelist for the main nginx entry. # Empty means allow all. Use semicolon/comma/space-separated IPs or CIDRs, for example: # NGINX_ALLOWED_CLIENT_IPS=192.168.1.10;192.168.1.23;192.168.1.0/24 NGINX_ALLOWED_CLIENT_IPS= 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= TASK_POOL_ROOT=D:\Task_Pool DINSAR_TASK_POOL_ROOT=D:\Task_Pool\DInSAR SBAS_TASK_POOL_ROOT=D:\Task_Pool\SBAS DATA_DISTRIBUTION_ROOT=D:\Task_Pool\Data_Distribution GF3_TASK_POOL_ROOT=D:\GaoFen3_Pool\task_pool SOURCE_PRODUCT_DIRS=D:\LuTan1_Image_Pool_Zip;D:\Sentinel1_Image_Pool_ZIP ASSET_SCAN_PARSE_WORKERS=16 ASSET_SCAN_PARSE_INFLIGHT=64 ASSET_SCAN_PARSE_TIMEOUT_SECONDS=600 ASSET_SCAN_SKIP_UNCHANGED_FAILURES=true ASSET_SCAN_DB_BATCH_SIZE=50 SENTINEL1_STORAGE_DIRS= INSAR_STORAGE_DIRS= MONITOR_RADAR_DIRS= MONITOR_DINSAR_DIRS=D:\production_results\dinsar ORBIT_SOURCE_DIRS=D:\LT1_data_lsarorbit;D:\Sentinel1_EOF_Pool MONITOR_ORBIT_DIR=D:\LT1_data_lsarorbit GF3_ARCHIVE_SOURCE_DIRS=D:\GaoFen3_Pool\archives GF3_ARCHIVE_EXTS=.zip,.tar,.tar.gz,.tgz GF3_UNPACK_DELETE_ARCHIVE=false GF3_LEGACY_GDAL_ENABLED=false GF3_SOURCE_DIRS= GF3_SARSCAPE_NATIVE_DIRS=D:\GaoFen3_Pool\native_geo GF3_STORAGE_DIRS=D:\GaoFen3_Pool\catalog GF3_SARSCAPE_RUNTIME_DIR=D:\GaoFen3_Pool\task_pool\sarscape_runtime GF3_SARSCAPE_WRAPPER_EXE=D:\Code\Insar_management_system_v2\third_party\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=false 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= 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 GF3_WATER_DEM_PATH= GF3_WATER_DEFAULT_CARTOGRAPHIC=true GF3_WATER_DEFAULT_OUT_VECTOR=true SAR_ANALYSIS_READY_ROOT=D:\production_results\sar_analysis_ready SAR_ANALYSIS_WORK_ROOT=D:\production_runtime\sar_analysis_work 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:\production_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:\production_runtime\wsl_jobs ISCE2_RUNTIME_ID=isce2_runtime_v1 PYINT_RUNTIME_ID=gamma_pyint_runtime_v1 # ----------------------------------------------------------------------------- # ISCE2 D-InSAR # ----------------------------------------------------------------------------- ISCE2_ENABLED=false 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:\production_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 # Prepared global Int16 GeoTIFF source; LandSAR jobs crop task-level DEM files from it before execution. LANDSAR_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape_global_int16.tif 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_global_int16.tif 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:\production_runtime\pyint_templates PYINT_WORK_ROOT=D:\production_runtime\pyint_work PYINT_OUTPUT_ROOT=D:\production_results\dinsar PYINT_DEM_ROOT=D:\production_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:\Task_Pool\SBAS GAMMA_SBAS_PRODUCT_ROOT=D:\production_results\timeseries\sbas GAMMA_SBAS_TRIAL_ROOT=D:\production_runtime\gamma_ipta_trials GAMMA_SBAS_SCRIPT_TEMPLATE_ROOT=D:\Code\Insar_management_system_v2\backend\templates\gamma_sbas GAMMA_SBAS_SOURCE_ROOTS=D:\Task_Pool\source_materialized\lutan1 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:\production_runtime\timeseries_work TIMESERIES_DEM_PATH=D:\SRTM30m\SRTMDEM_RSP_SARscape.wgs84 TIMESERIES_ORBIT_POOL_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 # Main server only. Comma/semicolon-separated IPv4 addresses or CIDR blocks allowed # to run LandSAR cluster workers against this PostgreSQL server. LANDSAR_CLUSTER_ALLOWED_WORKER_IPS=192.168.1.6 # Main server and remote workers must share the same non-empty token for # /api/cluster input download and result upload. CLUSTER_SHARED_TOKEN= CLUSTER_TRANSFER_TIMEOUT_SECONDS=3600 # Remote LandSAR workers should point this to the main backend URL. CLUSTER_MAIN_SERVER_URL= # Empty means the worker can claim all job types. Remote LandSAR nodes should set: # JOB_WORKER_ALLOWED_TYPES=LANDSAR_CLUSTER_ITEM JOB_WORKER_ALLOWED_TYPES= # ----------------------------------------------------------------------------- # Runtime cleanup policy # ----------------------------------------------------------------------------- # scripts/cleanup_runtime.py is dry-run by default. Pass --delete --yes to remove # unprotected generated artifacts. Paths referenced by product/catalog tables are # protected automatically. RUNTIME_CLEANUP_PYINT_WORK_RETENTION_DAYS=14 RUNTIME_CLEANUP_PYINT_DEM_RETENTION_DAYS=60 RUNTIME_CLEANUP_SBAS_RUN_RETENTION_DAYS=30 RUNTIME_CLEANUP_TRIAL_RETENTION_DAYS=7 RUNTIME_CLEANUP_IDL_LOG_RETENTION_DAYS=30 RUNTIME_CLEANUP_WSL_JOB_RETENTION_DAYS=14 RUNTIME_CLEANUP_TIMESERIES_WORK_RETENTION_DAYS=30 RUNTIME_CLEANUP_IMAGE_CACHE_RETENTION_DAYS=60 RUNTIME_CLEANUP_LOG_RETENTION_DAYS=30 RUNTIME_CLEANUP_FRONTEND_DIST_RETENTION_DAYS=0 # ----------------------------------------------------------------------------- # 解包 # ----------------------------------------------------------------------------- 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=false 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 # ----------------------------------------------------------------------------- # Empty means same-origin /tiles, routed by the main nginx proxy. VITE_TILE_SERVER_URL= VITE_TILE_SERVER_TOKEN=change_me VITE_APP_ORG_NAME=黑龙江省自然资源卫星应用技术中心 VITE_APP_SYSTEM_NAME=InSAR 自动化管理系统 VITE_APP_SYSTEM_TAGLINE=科研工程生产平台 # Optional override for deployed builds. Empty uses frontend/src/logo.jpg. VITE_APP_LOGO_URL= TILE_SERVER_AUTO_START=true TILE_SERVER_AUTO_STOP=true TILE_SERVER_ROOT=D:\Code\tile-server TILE_SERVER_START_SCRIPT=start-all.bat TILE_SERVER_STOP_SCRIPT=stop-all.bat