Skip to content

Commit

Permalink
Merge pull request #16 from gshiroma/beta_delivery_2
Browse files Browse the repository at this point in the history
Update RTC-S1 SAS for BETA delivery
  • Loading branch information
gshiroma authored Dec 14, 2022
2 parents 7a8f756 + de6c39c commit 413ff89
Show file tree
Hide file tree
Showing 18 changed files with 2,146 additions and 677 deletions.
59 changes: 12 additions & 47 deletions Docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FROM ubuntu:22.04

LABEL author="OPERA ADT" \
description="RTC interface release" \
version="interface_0.1"
description="RTC beta release" \
version="0.2-beta"

RUN apt-get -y update &&\
apt-get -y install curl zip make &&\
Expand All @@ -17,68 +17,33 @@ USER rtc_user
ENV CONDA_PREFIX=/home/rtc_user/miniconda3


#Install conda and
# Install conda and RTC
WORKDIR /home/rtc_user
RUN curl -sSL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh &&\
bash miniconda.sh -b -p ${CONDA_PREFIX} &&\
chmod -R 755 ${HOME}/miniconda3 &&\
rm ${HOME}/miniconda.sh

ENV PATH=${CONDA_PREFIX}/bin:${PATH}
ENV POSTFIX_ISCE3="rtc"
ENV ISCEHOME=/home/rtc_user

RUN ${CONDA_PREFIX}/bin/conda init bash

#Install ISCE3 from source code
RUN echo "Installing Conda environment for ISCE3" &&\
mkdir -p ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/src &&\
mkdir -p ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/build &&\
mkdir -p ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/install &&\
cd ${ISCEHOME} &&\
curl -sSL https://github.com/gshiroma/isce3/archive/refs/heads/opera_rtc.zip -o isce3_opera_rtc.zip &&\
unzip -d ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3} isce3_opera_rtc.zip &&\
cd ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/src &&\
ln -s ../isce3-opera_rtc isce3 &&\
rm ${ISCEHOME}/isce3_opera_rtc.zip &&\
cd ${HOME} &&\
conda create --name isce3_rtc --file ./OPERA/RTC/Docker/specfile.txt &&\
chmod -R 755 ${CONDA_PREFIX}/envs/isce3_rtc &&\
cd ${ISCEHOME}/tools/isce_$POSTFIX_ISCE3/src

SHELL ["conda", "run", "-n", "isce3_rtc", "/bin/bash", "-c"]
RUN conda create --name "RTC" --file /home/rtc_user/OPERA/RTC/Docker/specfile.txt
SHELL ["conda", "run", "-n", "RTC", "/bin/bash", "-c"]

ENV CC=${CONDA_PREFIX}/envs/isce3_rtc/bin/x86_64-conda-linux-gnu-gcc
ENV CXX=${CONDA_PREFIX}/envs/isce3_rtc/bin/x86_64-conda-linux-gnu-g++
ENV PATH=$PATH:${ISCEHOME}/tools/isce_$POSTFIX_ISCE3/install/bin
ENV PYTHONPATH=$PYTHONPATH:${ISCEHOME}/tools/isce_$POSTFIX_ISCE3/install/packages
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/install/lib

RUN cd ${ISCEHOME}/tools/isce_$POSTFIX_ISCE3/build &&\
cmake -DCMAKE_INSTALL_PREFIX=${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/install -DWITH_CUDA=OFF ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/src/isce3 &&\
make -j32 VERBOSE=ON &&\
make install &&\
rm -r ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/build &&\
rm -r ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/isce3-opera_rtc &&\
chmod -R 755 ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/install &&\
cd /home/rtc_user/miniconda3/envs/isce3_rtc/lib &&\
ln -s ${ISCEHOME}/tools/isce_${POSTFIX_ISCE3}/install/lib/libisce3.so &&\
echo 'ISCE3 installation successful!'

RUN echo "Installing OPERA s1-reader and RTC" &&\
mkdir -p $HOME/OPERA &&\
cd $HOME/OPERA &&\
curl -sSL https://github.com/seongsujeong/s1-reader/archive/refs/heads/correction_and_calibration.zip -o s1_reader.zip &&\
curl -sSL https://github.com/opera-adt/s1-reader/archive/refs/tags/v0.1.3.zip -o s1_reader.zip &&\
unzip s1_reader.zip &&\
chmod -R 755 s1-reader-correction_and_calibration &&\
ln -s s1-reader-correction_and_calibration s1-reader &&\
chmod -R 755 s1-reader-0.1.3 &&\
ln -s s1-reader-0.1.3 s1-reader &&\
rm s1_reader.zip &&\
python -m pip install ./s1-reader &&\
cd $HOME/OPERA &&\
pip install ./RTC &&\
python -m pip install ./RTC &&\
mkdir /home/rtc_user/scratch &&\
echo 'conda activate isce3_rtc' >>/home/rtc_user/.bashrc
chmod -R 755 /home/rtc_user/scratch &&\
echo 'conda activate RTC' >>/home/rtc_user/.bashrc

WORKDIR /home/rtc_user/scratch

ENTRYPOINT ["conda", "run", "-n", "isce3_rtc","rtc_s1.py"]
ENTRYPOINT ["conda", "run", "--no-capture-output", "-n", "RTC","rtc_s1.py"]
4 changes: 1 addition & 3 deletions Docker/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ dependencies:
- gdal
- gmock
- gtest
- gcc_linux-64 < 10
- gxx_linux-64 < 10
- gfortran_linux-64
- h5py
- hdf5
- libgcc-ng
Expand All @@ -26,3 +23,4 @@ dependencies:
- shapely
- yamale
- backoff
- isce3=0.9.0
5 changes: 5 additions & 0 deletions Docker/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,8 @@ ruamel.yaml
scipy
pytest
requests
sqlite3
pyproj
shapely
yamale

179 changes: 76 additions & 103 deletions Docker/specfile.txt

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions app/rtc_compare.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
RTC_S1_PRODUCTS_ERROR_ABS_TOLERANCE = 1e-05

LIST_EXCLUDE_COMPARISON = \
['//science/CSAR/RTC/metadata/processingInformation/algorithms/ISCEVersion',
'//science/CSAR/RTC/metadata/processingInformation/inputs/auxcalFiles',
'//science/CSAR/RTC/metadata/processingInformation/inputs/configFiles',
'//science/CSAR/RTC/metadata/processingInformation/inputs/demFiles',
'//science/CSAR/RTC/metadata/processingInformation/inputs/orbitFiles']
['//science/SENTINEL1/RTC/metadata/processingInformation/algorithms/ISCEVersion',
'//science/SENTINEL1/RTC/metadata/processingInformation/inputs/auxcalFiles',
'//science/SENTINEL1/RTC/metadata/processingInformation/inputs/configFiles',
'//science/SENTINEL1/RTC/metadata/processingInformation/inputs/demFiles',
'//science/SENTINEL1/RTC/metadata/processingInformation/inputs/orbitFiles']


def _get_parser():
Expand Down Expand Up @@ -259,9 +259,9 @@ def compare_hdf5_elements(hdf5_obj_1, hdf5_obj_2, str_key, is_attr=False,
# convert object reference to the path to which it is pointing
# Example:
# attribute `REFERENCE_LIST` in
# /science/CSAR/RTC/grids/frequencyA/xCoordinates'
# /science/SENTINEL1/RTC/grids/frequencyA/xCoordinates'
# attribute `DIMENSION_LIST` in
# /science/CSAR/RTC/grids/frequencyA/VH
# /science/SENTINEL1/RTC/grids/frequencyA/VH
if (len(val_1.shape) >= 1) and ('shape' in dir(val_1[0])):
if (isinstance(val_1[0], np.void) or
((len(val_1[0].shape) == 1) and (isinstance(val_1[0][0], h5py.h5r.Reference)))):
Expand Down
Loading

0 comments on commit 413ff89

Please sign in to comment.