Files
insar-management-system-v2/.codex_tmp/run_lt1_pool_multiscene_generic.sh
T

122 lines
3.8 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
ROOT="${ROOT:-${1:-}}"
PROJECT="${PROJECT:-pyint_stage}"
MASTER_DATE="${MASTER_DATE:-}"
START_DATE="${START_DATE:-}"
END_DATE="${END_DATE:-}"
PREPARED_DEM="${PREPARED_DEM:-/mnt/d/DEM/COPDEM_GLO30_China_4326_DEM}"
SCRATCHDIR="$ROOT"
TEMPLATEDIR="$ROOT/templates"
DEMDIR="$ROOT/dem_store"
PROJECT_DIR="$SCRATCHDIR/$PROJECT"
LOG_DIR="$ROOT/logs"
PYINT_HOME='/mnt/d/Code/Insar_management_system_v2/third_party/PyINT'
PYINT_SCRIPT_DIR="$PYINT_HOME/pyint"
PYTHON_BIN='/home/administrator/miniconda3/envs/isce2/bin/python'
GAMMA_ENV='/mnt/d/Code/Insar_management_system_v2/backend/app/pyint_pipeline/pyint_gamma_env.sh'
TEMPLATE_PATH="$TEMPLATEDIR/$PROJECT.template"
die() {
echo "$1" >&2
exit 1
}
run_stage() {
local stage="$1"
shift
local stdout_log="$LOG_DIR/${stage}.stdout.log"
local stderr_log="$LOG_DIR/${stage}.stderr.log"
echo "[stage] $stage"
if "$@" >"$stdout_log" 2>"$stderr_log"; then
echo "[ok] $stage"
else
local rc=$?
echo "[fail] $stage (rc=$rc)" >&2
echo "stdout: $stdout_log" >&2
echo "stderr: $stderr_log" >&2
exit "$rc"
fi
}
run_single_coreg() {
local slave_date="$1"
mkdir -p "$PROJECT_DIR/SLC" "$PROJECT_DIR/RSLC" "$PROJECT_DIR/DEM" "$PROJECT_DIR/ifgrams"
run_stage "coreg_${slave_date}" "$PYTHON_BIN" "$PYINT_SCRIPT_DIR/coreg_gamma.py" "$PROJECT" "$slave_date"
}
[ -n "$ROOT" ] || die "ROOT is required"
[ -n "$MASTER_DATE" ] || die "MASTER_DATE is required"
[ -n "$START_DATE" ] || die "START_DATE is required"
[ -n "$END_DATE" ] || die "END_DATE is required"
[ -d "$ROOT" ] || die "Experiment root not found: $ROOT"
[ -d "$PROJECT_DIR/DOWNLOAD" ] || die "DOWNLOAD directory not found: $PROJECT_DIR/DOWNLOAD"
[ -f "$PREPARED_DEM" ] || die "Prepared DEM not found: $PREPARED_DEM"
[ -f "$GAMMA_ENV" ] || die "Gamma env script not found: $GAMMA_ENV"
[ -x "$PYTHON_BIN" ] || die "Python not found: $PYTHON_BIN"
. "$GAMMA_ENV" >/dev/null 2>&1
export SCRATCHDIR
export TEMPLATEDIR
export DEMDIR
export PATH="/home/administrator/miniconda3/envs/isce2/bin:$PYINT_SCRIPT_DIR:$PATH"
export PYTHONPATH="$PYINT_HOME${PYTHONPATH:+:$PYTHONPATH}"
export PYINT_LT1_PRECISE_ORBIT_ENABLED='false'
export PYINT_LT1_PRECISE_ORBIT_MODE='bridge'
export PYINT_LT1_PRECISE_ORBIT_STRICT='false'
export PYINT_LT1_PRECISE_ORBIT_VALIDATE_WITH_ORB_FILT='false'
export PYINT_LT1_PRECISE_ORBIT_BACKUP='false'
unset PYINT_LT1_PRECISE_ORBIT_HELPER
unset PYINT_LT1_PRECISE_ORBIT_MANIFEST
mkdir -p "$TEMPLATEDIR" "$DEMDIR" "$LOG_DIR"
mkdir -p "$PROJECT_DIR/SLC" "$PROJECT_DIR/RSLC" "$PROJECT_DIR/DEM" "$PROJECT_DIR/ifgrams"
cat >"$TEMPLATE_PATH" <<EOF
# Auto-generated LT-1 pool multiscene test
satelite=LT
masterDate=$MASTER_DATE
range_looks=2
azimuth_looks=2
download_data=0
raw2slc_all=1
raw2slc_all_parallel=1
coreg_all=1
coreg_all_parallel=1
select_pairs=1
network_method=sbas
startDate=$START_DATE
endDate=$END_DATE
max_tb=50000
max_sb=50000
min_tb=1
diff_all=0
unwrap_all=0
geocode_all=0
atmcor_all=0
load_data=0
prepared_dem_source=$PREPARED_DEM
fabdem_dir=-
opentopo_dem_type=-
opentopo_api_key=-
EOF
if [ "${2:-}" = "--single-coreg" ] || [ "${1:-}" = "--single-coreg" ]; then
local_date="${3:-${2:-}}"
[ -n "$local_date" ] || die "Usage: ROOT=... MASTER_DATE=... START_DATE=... END_DATE=... $0 --single-coreg YYYYMMDD"
run_single_coreg "$local_date"
echo "[done] single_coreg=$local_date"
exit 0
fi
run_stage down2slc_all "$PYTHON_BIN" "$PYINT_SCRIPT_DIR/down2slc_LT1_all.py" "$PROJECT" --parallel 1
run_stage makedem_pyint "$PYTHON_BIN" "$PYINT_SCRIPT_DIR/makedem_pyint.py" "$PROJECT"
run_stage generate_rdc_dem "$PYTHON_BIN" "$PYINT_SCRIPT_DIR/generate_rdc_dem.py" "$PROJECT"
run_stage coreg_gamma_all "$PYTHON_BIN" "$PYINT_SCRIPT_DIR/coreg_gamma_all.py" "$PROJECT" --parallel 1
run_stage select_pairs "$PYTHON_BIN" "$PYINT_SCRIPT_DIR/select_pairs.py" "$PROJECT"
echo "[done] project=$PROJECT"
echo "[done] root=$ROOT"