Apply current workspace changes

This commit is contained in:
2026-04-22 01:52:21 +08:00
parent cf34b9a8ed
commit cb518b431f
449 changed files with 92252 additions and 321 deletions
+126
View File
@@ -0,0 +1,126 @@
#!/bin/csh -f
if ($#argv != 7) then
echo ""
echo "Usage: operation.csh master_ztd master_ztd.rsc slave_ztd slave_ztd.rsc reference_point incidence_angle dem_grid"
echo " Performs gacos correction over the phasefilt.grd files for Sentinel 1"
echo ""
echo "It works in each directory where the phase grids are located. This script works jointly with GACOS_correction.csh"
echo ""
echo "Reference point in radar coordinates (text file)"
echo ""
echo "Indicence angle in degrees from SAT_look (float/integer)"
echo ""
exit 1
endif
#reference point/stable point in radar coordinates
set reference_point = $5
#incidence angle obtained with the "SAT_look" script in degrees
set incidence = $6
#wavelength for Sentinel 1 (m)
set wavelength = 0.0554658
set pi = 3.141592653589793238462
#######FIRST ZTD to grid#########
set x_first_d1 = `cat $2|grep X_FIRST|awk '{print $2}'`
set y_first_d1 = `cat $2|grep Y_FIRST|awk '{print $2}'`
set width_d1 = `cat $2|grep WIDTH|awk '{print $2}'`
set length_d1 = `cat $2|grep FILE_LENGTH|awk '{print $2}'`
set x_step_d1 = `cat $2|grep X_STEP|awk '{print $2}'`
set y_step_d1 = `cat $2|grep X_STEP|awk '{print $2}'`
set date_ztd_d1 = `echo $1|awk -F/ '{print $NF}'|cut -c1-8`
gmt xyz2grd $1 -G"date1_ztd.grd" -RLT$x_first_d1/$y_first_d1/$width_d1/$length_d1 -I$x_step_d1/$y_step_d1 -ZTLf -di0 -r
#######SECOND ZTD to grid#########
set x_first_d2 = `cat $4|grep X_FIRST|awk '{print $2}'`
set y_first_d2 = `cat $4|grep Y_FIRST|awk '{print $2}'`
set width_d2 = `cat $4|grep WIDTH|awk '{print $2}'`
set length_d2 = `cat $4|grep FILE_LENGTH|awk '{print $2}'`
set x_step_d2 = `cat $4|grep X_STEP|awk '{print $2}'`
set y_step_d2 = `cat $4|grep X_STEP|awk '{print $2}'`
set date_ztd_d2 = `echo $3|awk -F/ '{print $NF}'|cut -c1-8`
gmt xyz2grd $3 -G"date2_ztd.grd" -RLT$x_first_d2/$y_first_d2/$width_d2/$length_d2 -I$x_step_d2/$y_step_d2 -ZTLf -di0 -r
#TIME DIFFERENCE
gmt grdmath date2_ztd.grd date1_ztd.grd SUB = zpddm.grd
#Checking GACOS grids within the DEM boundaries
set xmin_dem = `gmt grdinfo -C $7|awk '{print $2}'`
set xmax_dem = `gmt grdinfo -C $7|awk '{print $3}'`
set ymin_dem = `gmt grdinfo -C $7|awk '{print $4}'`
set ymax_dem = `gmt grdinfo -C $7|awk '{print $5}'`
set xmin_gacos = `gmt grdinfo -C zpddm.grd|awk '{print $2}'`
set xmax_gacos = `gmt grdinfo -C zpddm.grd|awk '{print $3}'`
set ymin_gacos = `gmt grdinfo -C zpddm.grd|awk '{print $4}'`
set ymax_gacos = `gmt grdinfo -C zpddm.grd|awk '{print $5}'`
set check = `echo "$xmin_dem < $xmin_gacos && $ymin_dem < $ymin_gacos && $xmax_dem > $xmax_gacos && $ymax_dem > $ymax_gacos"| bc`
if ($check == 0) then
echo "Seems like your DEM is not large enough. GACOS grids dimensions must be within the DEM."
echo "DEM dimensions: xmin: $xmin_dem xmax: $xmax_dem ymin: $ymin_dem ymax: $ymax_dem"
echo "GACOS dimensions: xmin: $xmin_gacos xmax: $xmax_gacos ymin: $ymin_gacos ymax: $ymax_gacos"
exit 1
else
echo "GACOS grid dimensions within DEM boundaries... continue..."
endif
#PROJECT TO RADAR COORDINATES
proj_ll2ra.csh trans.dat zpddm.grd zpddm_ra.grd
#RESAMPLE ZTD FILES WITH UNWRAP GRID PARAMETERS
set xmin = `gmt grdinfo -C phasefilt.grd|awk '{print $2}'`
set xmax = `gmt grdinfo -C phasefilt.grd|awk '{print $3}'`
set ymin = `gmt grdinfo -C phasefilt.grd|awk '{print $4}'`
set ymax = `gmt grdinfo -C phasefilt.grd|awk '{print $5}'`
set xinc = `gmt grdinfo -C phasefilt.grd|awk '{print $8}'`
set yinc = `gmt grdinfo -C phasefilt.grd|awk '{print $9}'`
gmt grdsample zpddm_ra.grd -Gresample_zpddm.grd -R$xmin/$xmax/$ymin/$ymax -I$xinc/$yinc -r
#REFERENCE POINT
set ref_value = `gmt grdtrack $reference_point -Gresample_zpddm.grd -Z`
set ref_value_phase = `gmt grdtrack $reference_point -Gphasefilt.grd -Z`
gmt grdmath resample_zpddm.grd $ref_value SUB = szpddm.grd
gmt grdmath phasefilt.grd $ref_value_phase SUB = phasefilt_ref.grd
#Checking reference point values
if ($ref_value == "" || $ref_value_phase == "") then
echo "Problems with the reference point. Is the reference point within the AOI?"
exit 1
endif
#FROM METER TO PHASE
#gmt grdmath szpddm.grd 4 MUL $pi MUL $wavelength DIV = szpddm_phase.grd
#multiplying by -4 instead of 4 (edition: 13/4/2023)
gmt grdmath szpddm.grd -4 MUL $pi MUL $wavelength DIV = szpddm_phase.grd
#PROJECTION FROM ZENITH VIEW TO LOS
gmt grdmath szpddm_phase.grd $incidence COSD DIV = szpddm_phase_LOS.grd
#CORRECTION WITH GACOS DATA
#attention: Here the phasefilt.grd is corrected, therefore for the unwrap process this output or the detrended output
#should be used.
gmt grdmath phasefilt_ref.grd szpddm_phase_LOS.grd SUB = phasefilt_GACOS_corrected.grd
#DETRENDING
gmt grdtrend phasefilt_GACOS_corrected.grd -N3r -Dphasefilt_GACOS_corrected_detrended.grd
#checking existence of final outputs
if !(-f phasefilt_GACOS_corrected.grd || -f phasefilt_GACOS_corrected_detrended.grd) then
echo "Seems like there was an issue correcting with GACOS $1 and $3"
exit 1
endif
#clean up
#
rm date1_ztd.grd date2_ztd.grd
rm zpddm.grd zpddm_ra.grd resample_zpddm.grd
rm szpddm_phase.grd
rm phasefilt_ref.grd
rm szpddm_phase_LOS.grd
echo "corrections done with $date_ztd_d1 and $date_ztd_d2 over phasefilt.grd"