chore: sync repository with current workspace state

This commit is contained in:
2026-05-07 11:16:40 +08:00
parent 39cf92044f
commit 69d15bffcb
71 changed files with 3382 additions and 6776 deletions
+1
View File
@@ -135,6 +135,7 @@ def update_template(template_file):
templateDict['atmcor_all'] = '0' # if 1, run atmospheric correction
templateDict['atmcor_all_parallel'] = '1' # multi-processor number used
templateDict['atmcor_use_for_disp'] = '0' # if 1, use atmcor unw as dispmap input
templateDict['geocode_all'] = '0'
templateDict['geocode_all_parallel'] = '1' # multi-processor number used
+25 -6
View File
@@ -16,6 +16,13 @@ import argparse
from pyint import _utils as ut
def _run_or_raise(call_str, stage):
rc = os.system(call_str)
if rc != 0:
raise RuntimeError('%s failed with rc=%s: %s' % (stage, rc, call_str))
return rc
INTRODUCTION = '''
-------------------------------------------------------------------
Unwrap differential interferogram using GAMMA.
@@ -74,10 +81,22 @@ def main(argv):
################ prepare file for parallel processing ###############
HGTSIM = demDir + '/' + masterDate + '_' + rlks + 'rlks.rdc.dem'
Mamp0 = rslcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp'
Samp0 = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp'
MampPar0 = rslcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
SampPar0 = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp.par'
Mamp = workDir + '/' + Mdate + '_' + rlks + 'rlks.amp'
MampPar = workDir + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
Samp = workDir + '/' + Sdate + '_' + rlks + 'rlks.amp'
SampPar = workDir + '/' + Sdate + '_' + rlks + 'rlks.amp.par'
if not os.path.isfile(Mamp):
ut.copy_file(Mamp0, Mamp)
if not os.path.isfile(Samp):
ut.copy_file(Samp0, Samp)
if not os.path.isfile(MampPar):
ut.copy_file(MampPar0, MampPar)
if not os.path.isfile(SampPar):
ut.copy_file(SampPar0, SampPar)
diff_par = workDir + '/' + Mdate + '_' + Sdate + '_diff_par'
UNWlks = workDir + '/' + Pair + '_' +rlks + 'rlks.diff_filt.unw'
CORMASK = workDir + '/' + Pair + '_' +rlks + 'rlks.diff_filt.cor'
@@ -88,18 +107,18 @@ def main(argv):
nLine = ut.read_gamma_par(MampPar, 'read', 'azimuth_lines')
###############################################################
call_str = "create_diff_par " + MampPar + " " + SampPar + " " + diff_par + " 1 0 "
os.system(call_str)
_run_or_raise(call_str, 'create_diff_par_atmcor')
call_str = "atm_mod_2d " + UNWlks + " " + HGTSIM + " " + CORMASK + " " + diff_par + " " + " - 0 a0 a1 sigma sigma_h s1"
os.system(call_str)
_run_or_raise(call_str, 'atm_mod_2d')
call_str = "atm_sim_2d " + diff_par + " " + HGTSIM + " a0 a1 " + ATM_PHASE
os.system(call_str)
_run_or_raise(call_str, 'atm_sim_2d')
call_str = "sub_phase " + UNWlks + " " + ATM_PHASE + " " + diff_par + " " + ATMCOR_UNW + " 0 0 0 "
os.system(call_str)
_run_or_raise(call_str, 'sub_phase_atmcor')
call_str = 'rasrmg ' + ATMCOR_UNW + ' ' + Mamp + ' ' + nWidth + ' - - - - - - - - - - '
os.system(call_str)
_run_or_raise(call_str, 'rasrmg_atmcor_unw')
print("Correct atmospheric phase is done!")
sys.exit(1)
sys.exit(0)
if __name__ == '__main__':
main(sys.argv[:])
+2 -2
View File
@@ -92,7 +92,7 @@ def main(argv):
else:
ifgList=ifgList0[:,0]
err_txt = scratchDir + '/' + projectName + '/unwrap_gamma_all.err'
err_txt = scratchDir + '/' + projectName + '/atm_correction_gamma_all.err'
if os.path.isfile(err_txt): os.remove(err_txt)
data_para = []
@@ -114,7 +114,7 @@ def main(argv):
print("Correct atmospheric phase for project %s is done! " % projectName)
ut.print_process_time(start_time, time.time())
sys.exit(1)
sys.exit(0)
if __name__ == '__main__':
main(sys.argv[:])
+71 -2
View File
@@ -23,6 +23,39 @@ def _run_or_raise(call_str, stage):
return rc
def _is_binary_all_zero(path, chunk_size=1024 * 1024):
if not os.path.isfile(path):
return False
with open(path, 'rb') as handle:
while True:
chunk = handle.read(chunk_size)
if not chunk:
return True
if any(chunk):
return False
def _run_slc_diff_intf(
Mrslc,
Srslc,
MrslcPar,
SrslcPar,
OFF,
SIM_UNW,
DIFF_IFG,
rlks,
azlks,
spsflg,
azfflg,
):
call_str = (
'SLC_diff_intf ' + Mrslc + ' ' + Srslc + ' ' + MrslcPar + ' ' + SrslcPar
+ ' ' + OFF + ' ' + SIM_UNW + ' ' + DIFF_IFG + ' ' + rlks + ' ' + azlks
+ ' ' + spsflg + ' ' + azfflg + ' - 1 1'
)
_run_or_raise(call_str, 'SLC_diff_intf')
INTRODUCTION = '''
-------------------------------------------------------------------
Generate differential interferogram image from SLC using GAMMA.
@@ -138,8 +171,44 @@ def main(argv):
_run_or_raise(call_str, 'phase_sim_orb')
DIFF_IFG = workDir + '/' + Pair + '_' + rlks + 'rlks.diff'
call_str = 'SLC_diff_intf ' + Mrslc + ' ' + Srslc + ' ' + MrslcPar + ' ' + SrslcPar + ' ' + OFF + ' ' + SIM_UNW + ' ' + DIFF_IFG + ' ' + rlks + ' ' + azlks + ' ' + templateDict['Igram_Spsflg'] + ' ' + templateDict['Igram_Azfflg'] + ' - 1 1'
_run_or_raise(call_str, 'SLC_diff_intf')
_run_slc_diff_intf(
Mrslc,
Srslc,
MrslcPar,
SrslcPar,
OFF,
SIM_UNW,
DIFF_IFG,
rlks,
azlks,
templateDict['Igram_Spsflg'],
templateDict['Igram_Azfflg'],
)
if _is_binary_all_zero(DIFF_IFG):
if templateDict['Igram_Azfflg'] == '1':
print(
'SLC_diff_intf produced an all-zero interferogram with azimuth common-band '
'filtering enabled; retrying once with Igram_Azfflg=0.'
)
os.remove(DIFF_IFG)
_run_slc_diff_intf(
Mrslc,
Srslc,
MrslcPar,
SrslcPar,
OFF,
SIM_UNW,
DIFF_IFG,
rlks,
azlks,
templateDict['Igram_Spsflg'],
'0',
)
if _is_binary_all_zero(DIFF_IFG):
raise RuntimeError(
'SLC_diff_intf produced an invalid all-zero interferogram after one bounded '
'azimuth-filter fallback; no further automatic retries will be attempted: %s' % DIFF_IFG
)
##### filtering process & coherence estimation ###########
DIFFFILT = workDir + '/' + Pair + '_' + rlks + 'rlks.diff_filt'
+47 -34
View File
@@ -32,6 +32,26 @@ def _resolve_existing_master_date(slc_dir, requested_date):
print('masterDate %s not found; using existing SLC date: %s' % (requested_date, resolved))
return resolved
def _run_or_raise(call_str, stage):
rc = os.system(call_str)
if rc != 0:
raise RuntimeError('%s failed with rc=%s: %s' % (stage, rc, call_str))
return rc
def _run_or_warn(call_str, stage):
rc = os.system(call_str)
if rc != 0:
print('WARNING: %s returned rc=%s; continuing with subsequent GAMMA refinement: %s' % (stage, rc, call_str))
return rc
def _remove_files(paths):
for path in paths:
if os.path.isfile(path):
os.remove(path)
def cmdLineParse():
parser = argparse.ArgumentParser(description='Generate radar-coordinates based DEM.',\
formatter_class=argparse.RawTextHelpFormatter,\
@@ -78,38 +98,32 @@ def main(argv):
azlks = templateDict['azimuth_looks']
if not os.path.isdir(processDir):
call_str = 'mkdir ' + processDir
os.system(call_str)
os.makedirs(processDir)
simDir = scratchDir + '/' + projectName + "/DEM"
if not os.path.isdir(simDir):
call_str='mkdir ' + simDir
workDir = simDir
if 'DEM' in templateDict:
dem = templateDict['DEM']
if not os.path.isfile(dem):
dem = DEMDir + '/' + projectName + '/' + projectName + '.dem'
call_str = 'echo DEM= ' + dem + ' >> ' + templateFile
os.system(call_str)
with open(templateFile, 'a') as stream:
stream.write('DEM= ' + dem + '\n')
templateDict['DEM'] = dem
else:
dem = DEMDir + '/' + projectName + '/' + projectName + '.dem'
call_str = 'echo DEM = ' + dem + ' >> ' + templateFile
os.system(call_str)
with open(templateFile, 'a') as stream:
stream.write('DEM = ' + dem + '\n')
demPar = dem + ".par"
if not os.path.isfile(dem):
call_str = 'makedem_pyint.py ' + projectName
os.system(call_str)
_run_or_raise(call_str, 'makedem_pyint')
# Parameter setting for simPhase
latovrSimphase = templateDict['dem_lat_ovr']
lonovrSimphase = templateDict['dem_lon_ovr']
rposSimphase = templateDict['Simphase_rpos']
azposSimphase = templateDict['Simphase_azpos']
rwinSimphase = templateDict['Simphase_rwin']
@@ -154,12 +168,7 @@ def main(argv):
### remove DEM look up table if it existed for considering gamma overlapping
if os.path.isfile(UTMDEM):
os.remove(UTMDEM)
if os.path.isfile(UTMDEMpar):
os.remove(UTMDEMpar)
if os.path.isfile(UTM2RDC):
os.remove(UTM2RDC)
_remove_files([UTMDEM, UTMDEMpar, UTM2RDC, SIMSARUTM, PIX, LSMAP])
nWidthUTMDEM0 = ut.read_gamma_par(demPar, 'read', 'width')
DateFormat = ut.read_gamma_par(demPar, 'read', 'data_format:')
@@ -174,42 +183,46 @@ def main(argv):
if not os.path.isfile(tmp_dem):
call_str = 'replace_values ' + dem + ' -32767 0 ' + tmp_dem + ' ' + nWidthUTMDEM0 + ' 2 ' + DF_type
os.system(call_str)
_run_or_raise(call_str, 'replace_values_dem_voids')
call_str = 'cp ' + tmp_dem + ' ' + dem
os.system(call_str)
_run_or_raise(call_str, 'copy_dem_without_voids')
call_str = "multi_look " + MslcImg + " " + MslcPar + " " + MamprlksImg + " " + MamprlksPar + " " + rlks + " " + azlks
os.system(call_str)
call_str = 'gc_map1 ' + MamprlksPar + ' ' + '-' + ' ' + demPar + ' ' + dem + ' ' + UTMDEMpar + ' ' + UTMDEM + ' ' + UTM2RDC + ' ' + latovrSimphase + ' ' + lonovrSimphase + ' ' + SIMSARUTM + ' - - - - ' + PIX + ' ' + LSMAP + ' - 3 128'
#call_str = 'gc_map2 ' + MamprlksPar + ' ' + demPar + ' ' + dem + ' ' + UTMDEMpar + ' ' + UTMDEM + ' ' + UTM2RDC + ' ' + latovrSimphase + ' ' + lonovrSimphase + ' ' + ' ' + LSMAP + ' - - - - ' + SIMSARUTM + ' - - - ' + PIX
os.system(call_str)
_run_or_raise(call_str, 'multi_look_master_for_dem')
def run_gc_map1(stage, lat_ovr, lon_ovr):
call = 'gc_map1 ' + MamprlksPar + ' ' + '-' + ' ' + demPar + ' ' + dem + ' ' + UTMDEMpar + ' ' + UTMDEM + ' ' + UTM2RDC + ' ' + lat_ovr + ' ' + lon_ovr + ' ' + SIMSARUTM + ' - - - - ' + PIX + ' ' + LSMAP + ' - 3 128'
_run_or_raise(call, stage)
run_gc_map1('gc_map1_initial_dem_segment', latovrSimphase, lonovrSimphase)
nWidthUTMDEM = ut.read_gamma_par(UTMDEMpar, 'read', 'width')
nLinePWR1 = ut.read_gamma_par(MamprlksPar, 'read', 'azimuth_lines')
nWidth = ut.read_gamma_par(MamprlksPar, 'read', 'range_samples')
call_str = 'geocode ' + UTM2RDC + ' ' + SIMSARUTM + ' ' + nWidthUTMDEM + ' ' + SIMSARRDC + ' ' + nWidth + ' ' + nLinePWR1 + ' 0 0'
os.system(call_str)
# 30 m DEM grids can be much sparser than LT-1 multi-look radar pixels.
# Keep this in GAMMA by widening geocode's search radius for RDC filling.
call_str = 'geocode ' + UTM2RDC + ' ' + SIMSARUTM + ' ' + nWidthUTMDEM + ' ' + SIMSARRDC + ' ' + nWidth + ' ' + nLinePWR1 + ' 0 0 - - 2 64 1'
_run_or_raise(call_str, 'geocode_sim_sar_to_rdc')
call_str = 'create_diff_par ' + MamprlksPar + ' ' + MamprlksPar + ' ' + SIMDIFFpar + ' 1 < ' + BLANK
os.system(call_str)
_run_or_raise(call_str, 'create_diff_par_sim')
call_str = 'init_offsetm ' + SIMSARRDC + ' ' + MamprlksImg + ' ' + SIMDIFFpar + ' 2 2 ' + rposSimphase + ' ' + azposSimphase #+ ' - - - 512'
os.system(call_str)
_run_or_warn(call_str, 'init_offsetm_sim')
call_str = 'offset_pwrm ' + SIMSARRDC + ' ' + MamprlksImg + ' ' + SIMDIFFpar + ' ' + SIMOFFS + ' ' + SIMSNR + ' ' + rwinSimphase + ' ' + azwinSimphase + ' ' + SIMOFFSET #+ ' - 128 128 ' + threshSimphase
os.system(call_str)
_run_or_raise(call_str, 'offset_pwrm_sim')
call_str = 'offset_fitm ' + SIMOFFS + ' ' + SIMSNR + ' ' + SIMDIFFpar + ' ' + SIMCOFF + ' ' + SIMCOFFSETS + ' - > ' + OFFSTD
os.system(call_str)
_run_or_raise(call_str, 'offset_fitm_sim')
call_str = 'gc_map_fine ' + UTM2RDC + ' ' + nWidthUTMDEM + ' ' + SIMDIFFpar + ' ' + UTMTORDC + ' 1'
#print(call_str)
os.system(call_str)
_run_or_raise(call_str, 'gc_map_fine')
call_str = 'geocode ' + UTMTORDC + ' ' + UTMDEM + ' ' + nWidthUTMDEM + ' ' + HGTSIM + ' ' + nWidth + ' ' + nLinePWR1 + ' 0 0 - - 1 1 1'
os.system(call_str)
call_str = 'geocode ' + UTMTORDC + ' ' + UTMDEM + ' ' + nWidthUTMDEM + ' ' + HGTSIM + ' ' + nWidth + ' ' + nLinePWR1 + ' 0 0 - - 2 64 1'
_run_or_raise(call_str, 'geocode_dem_to_rdc')
required_outputs = [UTMDEMpar, UTMDEM, UTMTORDC, HGTSIM]
+24 -27
View File
@@ -8,22 +8,17 @@
import os
import sys
import argparse
import numpy as np
from pyint import _utils as ut
def sanitize_gamma_float(filepath, valid_max=1e6):
"""清理 GAMMA 浮点数据文件中的无效值 (NaN/Inf/极端值 → 0.0)"""
data = np.fromfile(filepath, dtype=np.float32)
bad_mask = ~np.isfinite(data) | (np.abs(data) > valid_max)
n_bad = int(np.sum(bad_mask))
if n_bad > 0:
data[bad_mask] = 0.0
data.tofile(filepath)
print(f' [sanitize] {os.path.basename(filepath)}: '
f'清理 {n_bad} 个无效像素')
def _run_or_raise(call_str, stage):
rc = os.system(call_str)
if rc != 0:
raise RuntimeError('%s failed with rc=%s: %s' % (stage, rc, call_str))
return rc
def geocode(inFile, outFile, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp='0'):
if '.unw' in os.path.basename(inFile):
@@ -37,7 +32,7 @@ def geocode(inFile, outFile, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_in
else:
call_str = 'geocode_back ' + inFile + ' ' + nWidth + ' ' + UTMTORDC + ' ' + outFile + ' ' + nWidthUTMDEM + ' ' + nLineUTMDEM+ ' ' + geo_interp + ' 1'
os.system(call_str)
_run_or_raise(call_str, 'geocode_back_' + os.path.basename(outFile))
return
@@ -160,13 +155,10 @@ def geocode_pot(projectName, Pair, templateDict):
if not os.path.isfile(geo_real):
os.system(f'cpx_to_real {geo_disp} {geo_real} {eqa_width} 0')
sanitize_gamma_float(geo_real, disp_max_m)
if not os.path.isfile(geo_imag):
os.system(f'cpx_to_real {geo_disp} {geo_imag} {eqa_width} 1')
sanitize_gamma_float(geo_imag, disp_max_m)
if not os.path.isfile(geo_mag):
os.system(f'cpx_to_real {geo_disp} {geo_mag} {eqa_width} 3')
sanitize_gamma_float(geo_mag, disp_max_m)
# ===== Step D: 地理编码 MLI 背景 =====
geo_mli = workDir + '/geo_' + masterDate + '.mli'
@@ -288,10 +280,13 @@ def main(argv):
# --- 基础产品地理编码 (hyp3/licsbas 均需) ---
geo_interp = templateDict['geo_interp']
atmcor_use_for_disp = str(templateDict.get('atmcor_use_for_disp', '0')).strip() == '1'
geocode(Mamp, GeoMamp, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp=geo_interp)
geocode(CORIFG, GeoCOR, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp=geo_interp)
geocode(DIFFIFG, GeoDIFF, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp=geo_interp)
geocode(UNWIFG, GeoUNW, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp=geo_interp)
if os.path.isfile(ATMCOR_UNW):
geocode(ATMCOR_UNW, GeoATMCOR_UNW, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp=geo_interp)
geocode(diffifg, geodiff, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp=geo_interp)
geocode(rdcdem, Geodem, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp=geo_interp)
@@ -303,29 +298,31 @@ def main(argv):
# --- hyp3 专属: dispmap (LOS/vert 位移场) ---
if need_hyp3:
print(' [hyp3] dispmap + geocode 位移场')
los_disp_rdc = workDir + '/' + Pair + '_' + rlks + 'rlks.los_disp'
vert_disp_rdc = workDir + '/' + Pair + '_' + rlks + 'rlks.vert_disp'
disp_unw_source = ATMCOR_UNW if atmcor_use_for_disp and os.path.isfile(ATMCOR_UNW) else UNWIFG
disp_tag = '.atmcor' if disp_unw_source == ATMCOR_UNW else ''
los_disp_rdc = workDir + '/' + Pair + '_' + rlks + 'rlks' + disp_tag + '.los_disp'
vert_disp_rdc = workDir + '/' + Pair + '_' + rlks + 'rlks' + disp_tag + '.vert_disp'
if os.path.isfile(UNWIFG) and os.path.isfile(SLCpar) and os.path.isfile(OFFpar):
if os.path.isfile(disp_unw_source) and os.path.isfile(SLCpar) and os.path.isfile(OFFpar):
hgt_arg = rdcdem if os.path.isfile(rdcdem) else '-'
if not os.path.isfile(los_disp_rdc):
os.system(f'dispmap {UNWIFG} {hgt_arg} {SLCpar} {OFFpar} {los_disp_rdc} 0')
_run_or_raise(f'dispmap {disp_unw_source} {hgt_arg} {SLCpar} {OFFpar} {los_disp_rdc} 0', 'dispmap_los')
if not os.path.isfile(vert_disp_rdc):
os.system(f'dispmap {UNWIFG} {hgt_arg} {SLCpar} {OFFpar} {vert_disp_rdc} 1')
_run_or_raise(f'dispmap {disp_unw_source} {hgt_arg} {SLCpar} {OFFpar} {vert_disp_rdc} 1', 'dispmap_vertical')
geo_los = workDir + '/geo_' + Pair + '_' + rlks + 'rlks.los_disp'
geo_vert = workDir + '/geo_' + Pair + '_' + rlks + 'rlks.vert_disp'
geo_los = workDir + '/geo_' + Pair + '_' + rlks + 'rlks' + disp_tag + '.los_disp'
geo_vert = workDir + '/geo_' + Pair + '_' + rlks + 'rlks' + disp_tag + '.vert_disp'
if os.path.isfile(los_disp_rdc) and not os.path.isfile(geo_los):
os.system(f'geocode_back {los_disp_rdc} {nWidth} {UTMTORDC} {geo_los} {nWidthUTMDEM} {nLineUTMDEM} 1 0')
_run_or_raise(f'geocode_back {los_disp_rdc} {nWidth} {UTMTORDC} {geo_los} {nWidthUTMDEM} {nLineUTMDEM} {geo_interp} 0', 'geocode_back_los_disp')
if os.path.isfile(vert_disp_rdc) and not os.path.isfile(geo_vert):
os.system(f'geocode_back {vert_disp_rdc} {nWidth} {UTMTORDC} {geo_vert} {nWidthUTMDEM} {nLineUTMDEM} 1 0')
_run_or_raise(f'geocode_back {vert_disp_rdc} {nWidth} {UTMTORDC} {geo_vert} {nWidthUTMDEM} {nLineUTMDEM} {geo_interp} 0', 'geocode_back_vert_disp')
# --- hyp3 专属: 缠绕相位 ---
if need_hyp3:
print(' [hyp3] 提取缠绕相位')
geo_wrapped_pha = workDir + '/geo_' + Pair + '_' + rlks + 'rlks.diff_filt.pha'
if os.path.isfile(GeoDIFF) and not os.path.isfile(geo_wrapped_pha):
os.system(f'cpx_to_real {GeoDIFF} {geo_wrapped_pha} {nWidthUTMDEM} 4')
_run_or_raise(f'cpx_to_real {GeoDIFF} {geo_wrapped_pha} {nWidthUTMDEM} 4', 'cpx_to_real_wrapped_phase')
# --- hyp3/licsbas 共需: look_vector ---
if need_hyp3 or need_licsbas:
@@ -334,7 +331,7 @@ def main(argv):
lv_phi = workDir + '/lv_phi'
if not os.path.isfile(lv_theta) or not os.path.isfile(lv_phi):
if os.path.isfile(SLCpar) and os.path.isfile(OFFpar) and os.path.isfile(UTMDEMpar0) and os.path.isfile(UTMDEM):
os.system(f'look_vector {SLCpar} {OFFpar} {UTMDEMpar0} {UTMDEM} {lv_theta} {lv_phi}')
_run_or_raise(f'look_vector {SLCpar} {OFFpar} {UTMDEMpar0} {UTMDEM} {lv_theta} {lv_phi}', 'look_vector')
# --- BMP 可视化 ---
os.system('rasmph_pwr ' + GeoDIFF + ' ' + GeoMamp + ' ' + nWidthUTMDEM + ' - - - - ')
+1 -1
View File
@@ -114,7 +114,6 @@ def _build_dem_from_existing_source(
print(f"Using prepared DEM source: {source_dem}")
print(f"Clipping prepared DEM window: west={west}, south={south}, east={east}, north={north}")
_run_checked(
[
"gdal_translate",
@@ -130,6 +129,7 @@ def _build_dem_from_existing_source(
],
cwd=str(work_dir),
)
_run_checked(
[
"makedem.py",
+4
View File
@@ -193,6 +193,10 @@ diff_all_parallel = 4 # Number of parallel processors
unwrap_all = 1 # Unwrap interferograms [0: skip; 1: process]
unwrap_all_parallel = 4 # Number of parallel processors
atmcor_all = 0 # Gamma atmospheric phase correction [0: skip; 1: process]
atmcor_all_parallel = 1 # Number of parallel processors
atmcor_use_for_disp = 0 # Use atmcor unwrapped phase for dispmap [0: no; 1: yes]
geocode_all = 1 # Geocode products [0: skip; 1: process]
geocode_all_parallel = 4 # Number of parallel processors
-1
View File
@@ -108,7 +108,6 @@ def main(argv):
CORMASK = workDir + '/' + Pair + '_' +rlks + 'rlks.diff_filt.cor'
WRAPlks = workDir + '/' + Pair + '_' +rlks + 'rlks.diff_filt'
UNWlks = workDir + '/' + Pair + '_' +rlks + 'rlks.diff_filt.unw'
CORMASKbmp = CORMASK.replace('.diff_filt.cor','.diff_filt.cor_mask.bmp')
if os.path.isfile(CORMASKbmp):