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