From 331a61d1ccdc8a48601f3a781ecb3e6b56462adc Mon Sep 17 00:00:00 2001
From: Narayana Rao Bhogapurapu <narayanarao.bhogapurapu@gmail.com>
Date: Sun, 2 Jun 2024 09:51:36 -0400
Subject: [PATCH] first test

---
 algorithm_config.yaml              | 19 +++++++
 build.sh                           | 87 ++++++++++++++++++++++++++++++
 isce2_insar.sh                     | 20 +++++++
 src/isce2_insar/insar_processer.py | 40 ++++++++++++++
 4 files changed, 166 insertions(+)
 create mode 100644 algorithm_config.yaml
 create mode 100644 build.sh
 create mode 100644 isce2_insar.sh
 create mode 100644 src/isce2_insar/insar_processer.py

diff --git a/algorithm_config.yaml b/algorithm_config.yaml
new file mode 100644
index 0000000..a809e36
--- /dev/null
+++ b/algorithm_config.yaml
@@ -0,0 +1,19 @@
+description: Estimates canopy height from InSAR coherence and LiDAR data
+algo_name: ich
+version: 0.1.1
+environment: ubuntu
+repository_url: https://repo.maap-project.org/bnarayanarao/isce2_insar.git
+docker_url: mas.maap-project.org/root/maap-workspaces/base_images/vanilla:v3.1.5
+queue: maap-dps-worker-16gb
+build_command: isce2_insar/build.sh
+run_command: isce2_insar/isce2_insar.sh
+disk_space: 20GB
+inputs:
+  - name: slc_folder
+    download: False
+  - name: dem_file
+    download: False
+  - name: lower_limit
+    download: False
+
+
diff --git a/build.sh b/build.sh
new file mode 100644
index 0000000..58574a6
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,87 @@
+#!/usr/bin/env bash
+
+set -xeuo pipefail
+
+basedir=$(dirname "$(readlink -f "$0")")
+
+# Make sure conda is updated to a version that supports the --no-capture-output option
+# conda install -y -n base -c conda-forge "conda>=4.13.0"
+
+
+start=`date +%s`
+apt-get update
+apt-get install -y sudo 
+sudo apt-get install -y nano
+sudo apt-get update 
+sudo apt-get  install  -y scons libfftw3-dev libxm4 libmotif-dev python3-dev python3-pip 
+sudo apt-get install -y python3-scipy python-opencv python3-numpy python3-h5py cython3 gdal-bin gfortran libgdal-dev python3-gdal libhdf5-dev 
+
+sudo pip3 install cython opencv-python opencv-contrib-python shapely requests -y
+
+
+cd home
+mkdir pkgs
+cd pkgs
+# git clone https://github.com/isce-framework/isce2 -b v2.5.3
+git clone https://repo.maap-project.org/bnarayanarao/isce2
+# mkdir isce2
+cd ~
+cd ..
+cd ..
+# cp -R projects/my-private-bucket/iscefiles/isce2/ home/pkgs/
+cd home/pkgs/
+ln -s isce2 isce
+cd ..
+cd ..
+cd home
+mkdir .isce
+cd ~
+cd ..
+# cp projects/my-private-bucket/iscefiles/ISCE_config.sh home/pkgs/isce2/
+# cp projects/my-private-bucket/iscefiles/read_calibration_slc.py home/pkgs/isce2/contrib/stack/topsStack/
+# cp projects/my-private-bucket/iscefiles/SConfigISCE home/.isce/
+
+cp home/pkgs/isce2/infiles_dps/ISCE_config.sh home/pkgs/isce2/
+cp home/pkgs/isce2/infiles_dps/read_calibration_slc.py home/pkgs/isce2/contrib/stack/topsStack/
+cp home/pkgs/isce2/infiles_dps/SConfigISCE home/.isce/
+
+cd ~
+cd ..
+cd ..
+cd ..
+sudo sh -c 'echo "export SCONS_CONFIG_DIR=/home/.isce" >> ~/.bashrc'
+sudo sh -c 'echo "export PATH=\"/home/pkgs/isce/contrib/stack/topsStack:\$PATH\" " >> ~/.bashrc'
+sudo sh -c 'echo "source /home/pkgs/isce/ISCE_config.sh" >> ~/.bashrc'
+alias brc='source ~/.bashrc'
+
+
+chmod a+x ~/.bashrc
+PS1='$ '
+source ~/.bashrc
+
+cd ~
+cd ..
+cd home/pkgs/isce2
+scons install
+
+chmod a+x ~/.bashrc
+PS1='$ '
+source ~/.bashrc
+
+
+# chmod a+x /root/.bashrc
+# PS1='$ '
+# source /root/.bashrc
+
+# mkdir /home/pkgs/isce/isce/helper
+conda deactivate
+conda deactivate
+conda deactivate
+
+isceApp.py -h
+
+
+end=`date +%s`
+runtime=$((end-start))
+echo $runtime 'sec' 
+
diff --git a/isce2_insar.sh b/isce2_insar.sh
new file mode 100644
index 0000000..0b6bec1
--- /dev/null
+++ b/isce2_insar.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+set -xuo pipefail
+
+basedir=$(dirname "$(readlink -f "$0")")
+
+insar_py="python ${basedir}/src/isce2_insar/insar_processer.py"
+
+slc_folder ="$(ls input/*_corr.tif)"
+dem_file ="$(ls input/*_lidar.tif)"
+
+options=()
+[[ "${1:--}" != "-" ]] && options=("${options[@]}" --lower_limit "${1:--}")
+# [[ "${2:--}" != "-" ]] && options=("${options[@]}" --upper_limit "${2:--}")
+# [[ "${3:--}" != "-" ]] && options=("${options[@]}" --window "${3:--}")
+# [[ "${4:--}" != "-" ]] && options=("${options[@]}" --validation "${4:--}")
+# [[ "${4:--}" != "-" ]] && options=("${options[@]}" --overlap "${5:--}")
+
+
+${insar_py} --slc "${slc_folder}" --dem "${dem_file}" "${options[@]}"
diff --git a/src/isce2_insar/insar_processer.py b/src/isce2_insar/insar_processer.py
new file mode 100644
index 0000000..9b20cc6
--- /dev/null
+++ b/src/isce2_insar/insar_processer.py
@@ -0,0 +1,40 @@
+
+
+import numpy as np
+import glob,os
+gdal.UseExceptions()
+warnings.filterwarnings('ignore')
+warnings.filterwarnings('error')
+np.seterr(divide='ignore', invalid='ignore')
+
+
+parser = argparse.ArgumentParser()
+
+parser.add_argument("-slc", "--slc_folder", dest = "slc", help="SLC folder")
+parser.add_argument("-dem", "--dem_file", dest = "demFile",  help="path to dem file ")
+parser.add_argument("-ll", "--lower_limit",dest ="htl", default = 0 ,help="options", type=int)
+# parser.add_argument("-ul", "--upper_limit",dest = "htg", default = 40,help="upper limit of canopy height (m)", type=int)
+# parser.add_argument("-w", "--window",dest = "window_size", default = 10, help="Size", type=int)
+# parser.add_argument("-val", "--validation",dest = "validation", default = 0, help="fraction to split cross validation", type=float)
+# parser.add_argument("-ol", "--overlap",dest = "window_overlap", default = 0, help="window overlap fraction", type=float)
+
+
+args = parser.parse_args()
+
+
+
+
+if __name__ == "__main__":
+
+    os.system('"isceApp.py -h"')
+    os.system('"dem.py -h"')
+    os.system('"topsApp.py -h"')
+    os.system('"insarApp.py -h"')
+    os.system('"alos2App.py -h"')
+    os.system('"stripmapApp.py -h"')
+    os.system('"stackSentinel.py -h"')
+	
+    
+
+    
+
-- 
GitLab