-
Notifications
You must be signed in to change notification settings - Fork 6
DSWx‐S1 Interface Acceptance Testing Instructions
This page contains instructions for performing Acceptance Testing for the DSWx-S1 Interface delivery from the OPERA-ADT team. These instructions assume the user has access to the JPL FN-Artifactory, and Docker is installed on their local machine. Optionally, access to the opera-pge-ci-ol8 AWS machine allows for significantly faster downloads from Artifactory.
The image is currently hosted on JPL FN-Artifactory, which requires JPL VPN access and JPL credentials. You may also need to be added to the gov.nasa.jpl.opera.adt organization.
Once you have access, the container tarball delivery is available under general/gov/nasa/jpl/opera/adt/dswx_s1/r1/interface/dockerimg_dswx_s1_interface_0.1.tar
. Sample inputs and outputs are available under general/gov/nasa/jpl/opera/adt/dswx_s1/r1/interface/interface_share.zip
. Useful background documentation is also available under general/gov/nasa/jpl/opera/adt/dswx_s1/r1/interface/documents
.
Download both images to a location on your local machine. This location will be referred to throughout this instructions as <DSWX-S1_DIR>
Note that the sample data is quite large, so the download from Artifactory can take some time.
The first step in running the DSWx-S1 image is to load it into Docker via the following command:
docker load -i <DSWX-S1_DIR>/dockerimg_dswx_s1_interface_0.1.tar
Use the following command to verify the Docker image with the name opera/dswx-s1
and the tag interface_0.1
has been added to your Docker repository:
docker image ls
Once the interface_share.zip
file is downloaded to your local machine, unpack it to <DSWX-S1_DIR>
:
cd <DSWX-S1_DIR>; unzip interface_share.zip
This will create a interface_share
directory within <DSWX-S1_DIR>
containing the following files/directories:
expected_output/
input_data/
output_dir/
scratch/
dswx_s1.yaml
In order to execute the SAS, the input file directory, runconfig, scratch and output locations will be mounted into the container instance as Docker Volumes. To help streamline this process, we recommend making the following changes within the interface_share
directory:
-
Create a directory named
runconfig
, and copy the existing runconfig YAML file into it:`mkdir -p <DSWX-S1_DIR>/interface_share/runconfig` `cp <DSWX-S1_DIR>/interface_share/dswx_s1.yaml <DSWX-S1_DIR>/interface_share/runconfig/dswx_s1.yaml`
-
Make sure the output and scratch directories have write permissions set
`chmod ga+w output_dir/ scratch/`
We're now ready to execute the DSWX-S1 Interface. Run the following the command to kick off execution with the test assets:
docker run --rm -u $(id -u):$(id -g) \
-v <DSWX-S1_DIR>/interface_share/runconfig:/home/conda/runconfig:ro \
-v <DSWX-S1_DIR>/interface_share/input_data:/home/conda/input_data:ro \
-v <DSWX-S1_DIR>/interface_share/output_dir:/home/conda/output_dir \
-v <DSWX-S1_DIR>/interface_share/scratch:/home/conda/scratch \
-i --tty opera/dswx-s1:interface_0.1 sh -ci "python3 dswx-s1-0.1.0/src/dswx_sar/dswx_s1.py runconfig/dswx_s1.yaml \
--log output_dir/dswx_s1.log"
Execution should be complete in under 5 minutes. Once complete, you should see forty-eight files in <DSWX-S1_DIR>/interface_share/output_dir. Files can be categorized into sets of three GeoTIFF files sharing the same time stamps (for more information see OPERA_DSWX_S1_SAS_Design_Doc_IF.docx in the 'documents' directory, optionally downloaded from Artifactory):
OPERA_L3_DSWx-S1_T18MVA_20200702T231843Z_20230323T204228Z_v0.1_B01_WTR.tif
OPERA_L3_DSWx-S1_T18MVA_20200702T231843Z_20230323T204228Z_v0.1_B02_BWTR.tif
OPERA_L3_DSWx-S1_T18MVA_20200702T231843Z_20230323T204228Z_v0.1_B03_CONF.tif
Currently no log file is written to the output_dir. There is also no comparison script available, so manual verification of the files within the output_dir directory against the files within the expected_output directory is the best we can do until a script is supplied.
-
The log file is not being written to the output directory.
-
No comparison script was made available to verify the output data.
-
There are typos in the run docker sections of the documentation:
In _OPERA_DSWX_S1_SAS_Design_Doc_IF.docx_, section 5.1.3 'dswx_s1' should be 'dswx-s1' and 'interface_v0.1' should be 'interface_0.1' in the 'docker run' command and argument descriptions. In _OPERA_DSWx_S1_IF_R1_Delivery_Summary_, section 2.3.3 'dswx_s1' should be 'dswx-s1' in the 'docker run' command.