ISCE_INSAR/contrib/timeseries/prepStackToStaMPS/bin/get_quickview_isce

218 lines
6.2 KiB
Plaintext
Raw Normal View History

2019-01-16 19:40:08 +00:00
#!/bin/bash
#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# copyright: 2016 to the present, california institute of technology.
# all rights reserved. united states government sponsorship acknowledged.
#
# THESE SCRIPTS ARE PROVIDED TO YOU "AS IS" WITH NO WARRANTIES OF CORRECTNESS. USE AT YOUR OWN RISK.
#
# Author: David Bekaert
# Organization: Jet Propulsion Laboratory, California Institute of Technology
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# see if it are azimuth ifgs or not
if [ $# == 0 ];then
file_in=isce_minrefdem.int
else
file_in=$1
fi
echo "----------------------------------------------------------------------"
echo "For interferograms: get_quickview_isce isce_minrefdem.int"
echo "For coh inteferograms: get_quickview_isce isce_minrefdem.coh"
echo "For filt interferograms: get_quickview_isce isce_minrefdem_filt.int"
echo "For filt coh inteferograms: get_quickview_isce isce_minrefdem_filt.coh"
echo "For slcs: get_quickview_isce date.slc"
echo "----------------------------------------------------------------------"
# adding option for user to overwrite file if needed
overwrite_flag=`grep overwrite input_file | awk '{print $2}'`
overwrite=1
if [ "$overwrite_flag" == "n" ] || [ "$overwrite_flag" == "no" ];
then
# do not overwrite existing the files
overwrite=0
echo Will not overwrite existing files
else
echo will overwrite
fi
# locating the input file
input=input_file
counter=1
while [ $counter -lt 10 ];
do
if [ -f $input ];
then
let counter=counter+10000
else
input=../$input
fi
let counter=counter+1
done
echo $input
if [ ! -f $input ];
then
echo "Cannot find input file"
exit 1
fi
# getting the aspect ratio and the number of looks that needs to be taken
ar=`grep aspect_ratio $input | awk '{print $2}'`
r_looks=`grep range_looks $input | awk '{print $2}'`
a_looks=`grep azimuth_looks $input | awk '{print $2}'`
# check if the az looks are given seperate, if so, overwrite the number of az looks defined through aspect ratio
if [ -z $a_looks ];
then
# computing the azimuth looks based on the aspect ratio
a_looks=`echo "$(($ar * $r_looks))"`
else
echo "Found seperate az_looks variable which will over-rule the ar"
fi
# giving a summary to the user
echo number of range looks: $r_looks
echo number of azimuth looks: $a_looks
# find the name of the multi-looked product
# defining the output name based on the number of looks taken
filename_out=`basename $file_in | cut -d. -f1`
extension_out=`basename $file_in | cut -d. -f2`
wkfile=${filename_out}_${r_looks}l.${extension_out}
echo "Trying to make figures for: $wkfile"
# loop over a few default cases
if [ $file_in == isce_minrefdem.int ]; then
echo "Looks like regular IFG, store in figures_ifgs_${r_looks}l"
wkdir=figures_ifgs_${r_looks}l
elif [ $file_in == isce_minrefdem_filt.int ]; then
echo "Looks like filt IFG, store in figures_ifgs_filt_${r_looks}l"
wkdir=figures_ifgs_filt_${r_looks}l
elif [ $file_in == isce_minrefdem.coh ]; then
echo "Looks like COH, store in figures_cohs_${r_looks}l"
wkdir=figures_cohs_${r_looks}l
elif [ $file_in == isce_minrefdem_filt.coh ]; then
echo "Looks like filt COH, store in figures_cohs_filt_${r_looks}l"
wkdir=figures_cohs_filt_${r_looks}l
elif [ $file_in == date.slc ]; then
echo "Looks like SLC, store in figures_slc_${r_looks}l"
wkdir=figures_slc_${r_looks}l
else
echo "Not a supported filename"
exit 1
fi
# backup original input file
file_in_or=$file_in
slctemp=`pwd | awk '{print substr($0,length-2)}'`
# exit for the SLC's when SB as these can only be ran for SM
flag_slc=0
if [ $file_in_or == date.slc ]
then
if ! [ $slctemp == SLC ]
then
echo "SLC figure generation only for SLC directory"
exit 1
fi
echo "SLC"
flag_slc=1
fi
# make the directory
if [ ! -d $wkdir ]; then
mkdir -p $wkdir;
fi
# see if small baselines or not
mastertemp=`pwd | awk '{print substr($0,length-7)}'`
dir=pwd
# what type of processing has been done
flag_sb=0
flag_sm=0
if [ $flag_slc == 0 ];
then
if [ $mastertemp == ASELINES ]; then
echo "SMALL BASELINES"
flag_sb=1
else
flag_sm=1
fi
fi
if [ $flag_sm == 1 ]; then
for folder in `ls -d [0-9]*/`
do
# doing nothing just want one date
master_slave=`basename $folder`
done
lengthstr=`echo "$master_slave" | awk '{print length($0)}'`
if [ $lengthstr == 17 ]; then
flag_sb=1
echo "SMALL BASELINES"
else
echo "SINGLE MASTER"
flag_sm=1
fi
fi
# loop over the differnt ifgs folders
for folder in `ls -d [0-9]*/`
do
echo $folder
if [ $flag_sb == 1 ];
then
master_slave=`echo "$folder" | awk '{print substr($0,1,17)}'`
elif [ $flag_sm == 1 ];
then
slave=`echo "$folder" | awk '{print substr($0,1,8)}'`
master_slave=$mastertemp"_"$slave
elif [ $flag_slc == 1 ];
then
master_slave=`basename $folder`
fi
echo $master_slave
# if SLC the data of the folder will determine file name
if [ $file_in_or == date.slc ]
then
file_in=${master_slave}.${extension_out}
wkfile=${master_slave}_${r_looks}l.${extension_out}
fi
# check if this file exist otherwize make the multi-looked products too
files=`find $folder -name $wkfile -type f`
# make files if needed
if [ -z "$files" ] || [ "$overwrite"=="1" ]; then
cd $folder
step_multilook_isce $file_in
cd ../
fi
# make files if needed
cd $folder
# use mdx to generate a raster file, move in folder such in case muktiple programs are run together it does not overwrite same file
mdx.py -P $wkfile
cd ..
# make the directory
if [ ! -d $folder/$wkdir ]; then
mkdir -p $folder/$wkdir;
fi
# convert from ppm files to png
convert -despeckle -resize 50% $folder/out.ppm $folder/$wkdir/ISCE_$master_slave.png
rm $folder/out.ppm
cp $folder/$wkdir/ISCE_$master_slave.png $wkdir/.
done
cd $wkdir
convert +append `ls ISCE_[0-9]*.png` merged.png
cd ..