-
Notifications
You must be signed in to change notification settings - Fork 6
RTC‐S1 Final Acceptance Testing Instructions
This page contains instructions for performing Acceptance Testing for the RTC-S1 Final delivery from the OPERA-ADT team. These instructions pertain to the latest version of the Final release, currently v5.2. These instructions assume the user has access to the JPL FN-Artifactory, and has Docker installed on their local machine. Optionally, access to the opera-dev-pge 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/rtc_s1/r5.2/final/dockerimg_rtc_final_1.0.2.tar
. Sample inputs are available under general/gov/nasa/jpl/opera/adt/rtc_s1/r5.2/final/delivery_5.2_final_1.0.2.zip
. The latest available documentation can be found under general/gov/nasa/jpl/opera/adt/rtc_s1/r5.1/final/documents/
.
Download all images/archives to a location on your local machine. This location will be referred to throughout this instructions as <RTC_DIR>
The first step in running the RTC-S1 image is to load it into Docker via the following command:
docker load -i <RTC_DIR>/dockerimg_rtc_final_1.0.2.tar
This should add the Docker image to your local repository with the name opera/rtc
and the tag final_1.0.2
.
Once the delivery_5.2_final_1.0.2.zip
file is downloaded to your local machine, unpack it to <RTC_DIR>
:
cd <RTC_DIR>; unzip delivery_5.2_final_1.0.2.zip
This will create a delivery_5.2_final_1.0.2
directory within <RTC_DIR>
containing the following files/directories:
- burst_db_0.2.0_230831-bbox-only.sqlite
- dem.tif
- expected_rtc_s1_output_dir/
|_ t069_147169_iw3/
|_ OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2.h5
|_ OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_mask.tif
|_ OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2.png
|_ OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_VH.tif
|_ OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_VV.tif
|_ <additional subdirs for each burst from the input SLC>
- expected_rtc_s1_static_output_dir
|_ t069_147169_iw3/
|_ OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_incidence_angle.tif
|_ OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_local_incidence_angle.tif
|_ OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_mask.tif
|_ OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_number_of_looks.tif
|_ OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2.png
|_ OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_beta0.tif
|_ OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_sigma0.tif
|_ <additional subdirs for each burst from the input SLC>
- rtc_s1_output_dir/
- rtc_s1_static_output_dir/
- rtc_s1_static.yaml
- rtc_s1.yaml
- S1B_IW_SLC__1SDV_20180504T104507_20180504T104535_010770_013AEE_919F.zip
- S1B_OPER_AUX_POEORB_OPOD_20180524T110543_V20180503T225942_20180505T005942.EOF
- scratch_dir/
- scratch_dir_static/
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 delivery_5_final_1.0.2
directory:
-
Create a directory named
runconfig
, and copy the existing runconfig YAML files into it:mkdir -p <RTC_DIR>/delivery_5_final_1.0.2/runconfig
cp <RTC_DIR>/delivery_5_final_1.0.2/rtc_s1*.yaml <RTC_DIR>/delivery_5_final_1.0.2/runconfig/
-
Create a directory named
input_dir
, and move the input files into it:mkdir -p <RTC_DIR>/delivery_5_final_1.0.2/input_dir
mv <RTC_DIR>/delivery_5_final_1.0.2/{dem.tif,burst_db_0.2.0_230831-bbox-only.sqlite,S1B*} <RTC_DIR>/delivery_5_final_1.0.2/input_dir/
-
Modify the copied runconfigs to point the input products to the location we will be mounting to within the container (/home/rtc_user/input_dir). The sections of the
input_file_group
should be modified to match the following:
input_file_group:
safe_file_path: [/home/rtc_user/input_dir/S1B_IW_SLC__1SDV_20180504T104507_20180504T104535_010770_013AEE_919F.zip]
orbit_file_path: [/home/rtc_user/input_dir/S1B_OPER_AUX_POEORB_OPOD_20180524T110543_V20180503T225942_20180505T005942.EOF]
burst_id:
source_data_access: https://search.asf.alaska.edu/#/?dataset=SENTINEL-1&productTypes=SLC
static_ancillary_file_group:
burst_database_file: /home/rtc_user/input_dir/burst_db_0.2.0_230831-bbox-only.sqlite
dynamic_ancillary_file_group:
dem_file: /home/rtc_user/input_dir/dem.tif
...
- Modify the copied runconfigs to point the
product_path
value underproduct_group
to "rtc_s1_output_dir" (or "rtc_s1_static_output_dir" for rtc_s1_static.yaml). This is required since we will invoking the SAS image using a different working directory than its default. Theproduct_path
section of the RunConfig should be modified to match the following:
product_group:
product_path: rtc_s1_output_dir # <- update
scratch_path: scratch_dir
output_dir: rtc_s1_output_dir
product_id:
...
- Within the rtc_s1_static.yaml file, add the following setting within the
processing
section:
processing:
...
num_workers: <num CPUs * 3/4>
Where <num CPUs * 1/2>
is 1/2th the total number of available CPU's on the instance. For example, if running on a c6i.2xlarge with 8 CPU, num_workers
should be set to 4
. This is to avoid overwhelming the instance, causing it to lock up. The number of available cores on a linux machine can be found by running nproc
.
-
Make sure the output and scratch directories have write permissions set
chmod ga+w rtc_s1_output_dir/ rtc_s1_static_output_dir/ scratch_dir/ scratch_dir_static/
We're now ready to execute the RTC-S1 Final delivery. Run the following the command to kick off execution with the test assets:
docker run --rm -u $(id -u):$(id -g) \
-w /home/rtc_user \
-v <RTC_DIR>/delivery_5_final_1.0.2/runconfig:/home/rtc_user/runconfig:ro \
-v <RTC_DIR>/delivery_5_final_1.0.2/input_dir:/home/rtc_user/input_dir:ro \
-v <RTC_DIR>/delivery_5_final_1.0.2/rtc_s1_output_dir:/home/rtc_user/rtc_s1_output_dir \
-v <RTC_DIR>/delivery_5_final_1.0.2/scratch_dir:/home/rtc_user/scratch_dir \
-i --tty opera/rtc:final_1.0.2 rtc_s1.py /home/rtc_user/runconfig/rtc_s1.yaml 2>&1 | tee <RTC_DIR>/rtc_at.log
On a c6i.2xlarge instance, execution should take about 50 minutes.
To run the container in static layer generation mode:
docker run --rm -u $(id -u):$(id -g) \
-w /home/rtc_user \
-v <RTC_DIR>/delivery_5_final_1.0.2/runconfig:/home/rtc_user/runconfig:ro \
-v <RTC_DIR>/delivery_5_final_1.0.2/input_dir:/home/rtc_user/input_dir:ro \
-v <RTC_DIR>/delivery_5_final_1.0.2/rtc_s1_static_output_dir:/home/rtc_user/rtc_s1_static_output_dir \
-v <RTC_DIR>/delivery_5_final_1.0.2/scratch_dir_static:/home/rtc_user/scratch_dir_static \
-i --tty opera/rtc:final_1.0.2 rtc_s1.py /home/rtc_user/runconfig/rtc_s1_static.yaml 2>&1 | tee <RTC_DIR>/rtc_static_at.log
On a c6i.2xlarge instance, execution should take about 55 minutes.
Once both executions are complete, you should see a number of directories within the <RTC_DIR>/delivery_5_final_1.0.2/<rtc_output_dir|rtc_static_output_dir>/
directories, one for each burst ID processed. There should be 28 sub-directories, each containing several output products:
OPERA_L2_RTC-S1_<BurstId>_20180504T104507Z_<ProductionDatetime>Z_S1B_30_v1.0.2.h5
OPERA_L2_RTC-S1_<BurstId>_20180504T104507Z_<ProductionDatetime>Z_S1B_30_v1.0.2.tif
OPERA_L2_RTC-S1_<BurstId>_20180504T104507Z_<ProductionDatetime>Z_S1B_30_v1.0.2.tif
OPERA_L2_RTC-S1_<BurstId>_20180504T104507Z_<ProductionDatetime>Z_S1B_30_v1.0.2_mask.tif
OPERA_L2_RTC-S1_<BurstId>_20180504T104507Z_<ProductionDatetime>Z_S1B_30_v1.0.2.png
OPERA_L2_RTC-S1-STATIC_<BurstId>_20140403_<ProductionDatetime>Z_S1B_30_v1.0.2_incidence_angle.tif
OPERA_L2_RTC-S1-STATIC_<BurstId>_20140403_<ProductionDatetime>Z_S1B_30_v1.0.2_local_incidence_angle.tif
OPERA_L2_RTC-S1-STATIC_<BurstId>_20140403_<ProductionDatetime>Z_S1B_30_v1.0.2_mask.tif
OPERA_L2_RTC-S1-STATIC_<BurstId>_20140403_<ProductionDatetime>Z_S1B_30_v1.0.2_number_of_looks.tif
OPERA_L2_RTC-S1-STATIC_<BurstId>_20140403_<ProductionDatetime>Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_beta0.tif
OPERA_L2_RTC-S1-STATIC_<BurstId>_20140403_<ProductionDatetime>Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_sigma0.tif
OPERA_L2_RTC-S1-STATIC_<BurstId>_20140403_<ProductionDatetime>Z_S1B_30_v1.0.2.png
Now that we've successfully executed the SAS container and generated outputs, the last step is to perform a QA check against the expected outputs.
For the current Final delivery, the comparison script (rtc_compare.py) must be downloaded to <RTC_DIR>
, and then invoked with the following shell script to compare a single set of burst-based products at a time. rtc_compare.py
expects the paths to the expected and output HD5 metadata product, from which it can find the GeoTIFF layers to compare automatically.
The following shell script can be used to automated the comparisons across all burst-based products:
#!/bin/bash
declare -a burst_ids=("t069_147169_iw3"
"t069_147170_iw1"
"t069_147170_iw2"
"t069_147170_iw3"
"t069_147171_iw1"
"t069_147171_iw2"
"t069_147171_iw3"
"t069_147172_iw1"
"t069_147172_iw2"
"t069_147172_iw3"
"t069_147173_iw1"
"t069_147173_iw2"
"t069_147173_iw3"
"t069_147174_iw1"
"t069_147174_iw2"
"t069_147174_iw3"
"t069_147175_iw1"
"t069_147175_iw2"
"t069_147175_iw3"
"t069_147176_iw1"
"t069_147176_iw2"
"t069_147176_iw3"
"t069_147177_iw1"
"t069_147177_iw2"
"t069_147177_iw3"
"t069_147178_iw1"
"t069_147178_iw2"
"t069_147178_iw3")
for burst_id in "${burst_ids[@]}"; do
echo "-------------------------------------"
echo "Comparing results for ${burst_id}"
output_file=./delivery_5.2_final_1.0.2/rtc_s1_output_dir/${burst_id}/
expected_file=./delivery_5.2_final_1.0.2/expected_rtc_s1_output_dir/${burst_id}/
python3 rtc_compare.py ${expected_file} ${output_file}
echo
echo "Comparing static layer results for ${burst_id}"
output_file=./delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/${burst_id}/
expected_file=./delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/${burst_id}/
python3 rtc_compare.py ${expected_file} ${output_file}
done
After saving a copy of the script to <RTC_DIR>
with a name such as rtc_compare_products_final_1.0.2.sh
, and making it executable, you can compare all expected/actual products with the following command:
./rtc_compare_products_final_1.0.2.sh
Note that the local Python environment needs GDAL, NumPy and h5py installed in order to run rtc_compare.py
.
The rtc_compare.py script performs a number of checks on both the image layers and metadata for each burst-based set of products. All tests should be marked as PASS
, or WARNING
for some instances of metadata where we expect a mismatch between input file paths, time stamps etc...
An example report for a single burst product is provided below.
-------------------------------------
Comparing results for t069_147169_iw3
file_list (directory 1): ['./delivery_5.2_final_1.0.2/expected_rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_mask.tif', './delivery_5.2_final_1.0.2/expected_rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_VV.tif', './delivery_5.2_final_1.0.2/expected_rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_VH.tif', './delivery_5.2_final_1.0.2/expected_rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2.h5']
file_list (directory 2): ['./delivery_5.2_final_1.0.2/rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240319T175617Z_S1B_30_v1.0.2_mask.tif', './delivery_5.2_final_1.0.2/rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240319T175617Z_S1B_30_v1.0.2_VV.tif', './delivery_5.2_final_1.0.2/rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240319T175617Z_S1B_30_v1.0.2_VH.tif', './delivery_5.2_final_1.0.2/rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240319T175617Z_S1B_30_v1.0.2.h5']
*******************************************************
************* TESTING (GeoTIFF file) **************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_mask.tif
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240319T175617Z_S1B_30_v1.0.2_mask.tif
-------------------------------------------------------
[PASS] Comparing number of bands
Comparing RTC-S1 bands...
[PASS] Band 1 - Mask Layer"
[PASS] Comparing geotransform
[PASS] Comparing metadata
*******************************************************
************* TESTING (GeoTIFF file) **************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_VV.tif
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240319T175617Z_S1B_30_v1.0.2_VV.tif
-------------------------------------------------------
[PASS] Comparing number of bands
Comparing RTC-S1 bands...
[PASS] Band 1 - RTC-S1 VV Backscatter"
[PASS] Comparing geotransform
[PASS] Comparing metadata
*******************************************************
************* TESTING (GeoTIFF file) **************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_VH.tif
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240319T175617Z_S1B_30_v1.0.2_VH.tif
-------------------------------------------------------
[PASS] Comparing number of bands
Comparing RTC-S1 bands...
[PASS] Band 1 - RTC-S1 VH Backscatter"
[PASS] Comparing geotransform
[PASS] Comparing metadata
*******************************************************
************ TESTING (HDF5 file) ************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2.h5
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240319T175617Z_S1B_30_v1.0.2.h5
-------------------------------------------------------
Checking the dataset.
[PASS] Dataset 1 of 96: //identification/productSpecificationVersion
[PASS] Dataset 2 of 96: //identification/processingType
[PASS] Dataset 3 of 96: //metadata/qa/rfi/isRfiInfoAvailable
[PASS] Dataset 4 of 96: //data/xCoordinateSpacing
[PASS] Dataset 5 of 96: //metadata/sourceData/zeroDopplerStartTime
[PASS] Dataset 6 of 96: //metadata/processingInformation/algorithms/noiseCorrectionAlgorithmReference
[PASS] Dataset 7 of 96: //identification/absoluteOrbitNumber
[PASS] Dataset 8 of 96: //metadata/qa/geometricAccuracy/stddev/x
[PASS] Dataset 9 of 96: //identification/contactInformation
[PASS] Dataset 10 of 96: //identification/zeroDopplerEndTime
[PASS] Dataset 11 of 96: //metadata/processingInformation/parameters/noiseCorrectionApplied
[PASS] Dataset 12 of 96: //metadata/processingInformation/parameters/preprocessingMultilookingApplied
[PASS] Dataset 13 of 96: //metadata/orbit/orbitType
[PASS] Dataset 14 of 96: //metadata/processingInformation/parameters/outputBackscatterDecibelConversionEquation
[PASS] Dataset 15 of 96: //metadata/processingInformation/parameters/geocoding/burstGeogridSnapX
[PASS] Dataset 16 of 96: //metadata/sourceData/numberOfAzimuthLines
[PASS] Dataset 17 of 96: //metadata/processingInformation/algorithms/radiometricTerrainCorrectionAlgorithmReference
[PASS] Dataset 18 of 96: //metadata/sourceData/productLevel
[PASS] Dataset 19 of 96: //identification/trackNumber
[PASS] Dataset 20 of 96: //metadata/processingInformation/parameters/wetTroposphericGeolocationCorrectionApplied
[PASS] Dataset 21 of 96: //data/yCoordinateSpacing
[PASS] Dataset 22 of 96: //data/yCoordinates
[PASS] Dataset 23 of 96: //identification/project
[PASS] Dataset 24 of 96: //identification/burstID
[PASS] Dataset 25 of 96: //metadata/sourceData/slantRangeLooks
[PASS] Dataset 26 of 96: //identification/boundingPolygon
[PASS] Dataset 27 of 96: //metadata/sourceData/slantRangeStart
[PASS] Dataset 28 of 96: //identification/platform
[PASS] Dataset 29 of 96: //identification/productVersion
[PASS] Dataset 30 of 96: //data/xCoordinates
[PASS] Dataset 31 of 96: //identification/ceosAnalysisReadyDataProductType
[PASS] Dataset 32 of 96: //metadata/orbit/velocity
[PASS] Dataset 33 of 96: //identification/subSwathID
[PASS] Dataset 34 of 96: //metadata/sourceData/numberOfRangeSamples
[PASS] Dataset 36 of 96: //identification/institution
[PASS] Dataset 37 of 96: //identification/staticLayersDataAccess
[PASS] Dataset 38 of 96: //metadata/processingInformation/algorithms/demInterpolation
[PASS] Dataset 39 of 96: //metadata/sourceData/rangeBandwidth
[PASS] Dataset 40 of 96: //metadata/processingInformation/parameters/bistaticDelayCorrectionApplied
[PASS] Dataset 41 of 96: //metadata/orbit/referenceEpoch
[PASS] Dataset 42 of 96: //identification/radarBand
[PASS] Dataset 43 of 96: //identification/productType
[PASS] Dataset 44 of 96: //metadata/sourceData/slantRangeResolutionInMeters
[PASS] Dataset 45 of 96: //metadata/processingInformation/parameters/inputBackscatterNormalizationConvention
[PASS] Dataset 46 of 96: //metadata/sourceData/farRangeIncidenceAngle
[PASS] Dataset 47 of 96: //data/listOfPolarizations
[PASS] Dataset 48 of 96: //metadata/sourceData/softwareVersion
[PASS] Dataset 49 of 96: //metadata/processingInformation/parameters/outputBackscatterExpressionConvention
[PASS] Dataset 50 of 96: //data/projection
[PASS] Dataset 51 of 96: //metadata/sourceData/numberOfAcquisitions
[PASS] Dataset 52 of 96: //identification/instrumentName
[PASS] Dataset 53 of 96: //metadata/processingInformation/parameters/staticTroposphericGeolocationCorrectionApplied
[PASS] Dataset 55 of 96: //metadata/sourceData/azimuthResolutionInMeters
[PASS] Dataset 56 of 96: //metadata/sourceData/institution
[PASS] Dataset 57 of 96: //metadata/sourceData/maxNoiseEquivalentSigmaZero
[PASS] Dataset 58 of 96: //metadata/processingInformation/algorithms/radiometricTerrainCorrection
[PASS] Dataset 60 of 96: //metadata/sourceData/zeroDopplerEndTime
[PASS] Dataset 61 of 96: //identification/zeroDopplerStartTime
[PASS] Dataset 62 of 96: //identification/lookDirection
[PASS] Dataset 63 of 96: //metadata/sourceData/nearRangeIncidenceAngle
[PASS] Dataset 64 of 96: //metadata/sourceData/processingCenter
[PASS] Dataset 66 of 96: //metadata/sourceData/averageZeroDopplerSpacingInMeters
[PASS] Dataset 67 of 96: //identification/orbitPassDirection
[PASS] Dataset 68 of 96: //identification/acquisitionMode
[PASS] Dataset 69 of 96: //identification/dataAccess
[PASS] Dataset 70 of 96: //metadata/processingInformation/parameters/radiometricTerrainCorrectionApplied
[PASS] Dataset 71 of 96: //identification/isGeocoded
[PASS] Dataset 72 of 96: //metadata/processingInformation/parameters/geocoding/burstGeogridSnapY
[PASS] Dataset 73 of 96: //identification/ceosAnalysisReadyDataDocumentIdentifier
[PASS] Dataset 74 of 96: //metadata/processingInformation/algorithms/demEgmModel
[PASS] Dataset 75 of 96: //metadata/sourceData/processingDateTime
[PASS] Dataset 77 of 96: //identification/productLevel
[PASS] Dataset 78 of 96: //metadata/processingInformation/parameters/outputBackscatterNormalizationConvention
[PASS] Dataset 80 of 96: //metadata/sourceData/azimuthLooks
[PASS] Dataset 81 of 96: //metadata/qa/geometricAccuracy/stddev/y
[PASS] Dataset 82 of 96: //metadata/processingInformation/algorithms/geocoding
[PASS] Dataset 83 of 96: //metadata/sourceData/dataAccess
[PASS] Dataset 84 of 96: //metadata/qa/geometricAccuracy/bias/x
[PASS] Dataset 85 of 96: //metadata/processingInformation/algorithms/softwareVersion
[PASS] Dataset 86 of 96: //metadata/orbit/interpMethod
[PASS] Dataset 87 of 96: //metadata/processingInformation/algorithms/geocodingAlgorithmReference
[PASS] Dataset 88 of 96: //metadata/orbit/position
[PASS] Dataset 89 of 96: //metadata/processingInformation/inputs/l1SlcGranules
[PASS] Dataset 90 of 96: //metadata/sourceData/slantRangeSpacing
[PASS] Dataset 91 of 96: //metadata/qa/geometricAccuracy/bias/y
[PASS] Dataset 92 of 96: //metadata/sourceData/centerFrequency
[PASS] Dataset 93 of 96: //metadata/processingInformation/parameters/filteringApplied
[PASS] Dataset 94 of 96: //metadata/orbit/time
[PASS] Dataset 95 of 96: //metadata/sourceData/zeroDopplerTimeSpacing
[PASS] Dataset 96 of 96: //identification/boundingBox
Checking the attributes.
HDF5 test summary:
[PASS] Same dataset structure confirmed.
[PASS] Same attributes structure confirmed.
[PASS] The datasets of the two HDF files are the same within the tolerance.
Relative tolerance = 0.001, Absolute tolerance = 0.0001
[PASS] The attributes of the two HDF files are the same within the tolerance
Relative tolerance = 0.001, Absolute tolerance = 0.0001
*******************************************************
************ Overall results ************
*******************************************************
[PASS] file: OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_mask.tif
*******************************************************
[PASS] file: OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_VV.tif
*******************************************************
[PASS] file: OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2_VH.tif
*******************************************************
[PASS] file: OPERA_L2_RTC-S1_T069-147169-IW3_20180504T104507Z_20240318T201547Z_S1B_30_v1.0.2.h5
*******************************************************
Comparing static layer results for t069_147169_iw3
file_list (directory 1): ['./delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_mask.tif', './delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_number_of_looks.tif', './delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_beta0.tif', './delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_sigma0.tif', './delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_local_incidence_angle.tif', './delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_incidence_angle.tif']
file_list (directory 2): ['./delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_mask.tif', './delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_number_of_looks.tif', './delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_beta0.tif', './delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_sigma0.tif', './delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_local_incidence_angle.tif', './delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_incidence_angle.tif']
*******************************************************
************* TESTING (GeoTIFF file) **************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_mask.tif
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_mask.tif
-------------------------------------------------------
[PASS] Comparing number of bands
Comparing RTC-S1 bands...
[PASS] Band 1 - Mask Layer"
[PASS] Comparing geotransform
[PASS] Comparing metadata
*******************************************************
************* TESTING (GeoTIFF file) **************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_number_of_looks.tif
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_number_of_looks.tif
-------------------------------------------------------
[PASS] Comparing number of bands
Comparing RTC-S1 bands...
[PASS] Band 1 - Number of Looks"
[PASS] Comparing geotransform
[PASS] Comparing metadata
*******************************************************
************* TESTING (GeoTIFF file) **************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_beta0.tif
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_beta0.tif
-------------------------------------------------------
[PASS] Comparing number of bands
Comparing RTC-S1 bands...
[PASS] Band 1 - RTC Area Normalization Factor Gamma0 to Beta0"
[PASS] Comparing geotransform
[PASS] Comparing metadata
*******************************************************
************* TESTING (GeoTIFF file) **************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_sigma0.tif
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_sigma0.tif
-------------------------------------------------------
[PASS] Comparing number of bands
Comparing RTC-S1 bands...
[PASS] Band 1 - RTC Area Normalization Factor Gamma0 to Sigma0"
[PASS] Comparing geotransform
[PASS] Comparing metadata
*******************************************************
************* TESTING (GeoTIFF file) **************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_local_incidence_angle.tif
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_local_incidence_angle.tif
-------------------------------------------------------
[PASS] Comparing number of bands
Comparing RTC-S1 bands...
[PASS] Band 1 - Local Incidence Angle"
[PASS] Comparing geotransform
[PASS] Comparing metadata
*******************************************************
************* TESTING (GeoTIFF file) **************
*******************************************************
*** file 1: ./delivery_5.2_final_1.0.2/expected_rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_incidence_angle.tif
*** file 2: ./delivery_5.2_final_1.0.2/rtc_s1_static_output_dir/t069_147169_iw3/OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240319T200306Z_S1B_30_v1.0.2_incidence_angle.tif
-------------------------------------------------------
[PASS] Comparing number of bands
Comparing RTC-S1 bands...
[PASS] Band 1 - Incidence Angle"
[PASS] Comparing geotransform
[PASS] Comparing metadata
*******************************************************
************ Overall results ************
*******************************************************
[PASS] file: OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_mask.tif
*******************************************************
[PASS] file: OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_number_of_looks.tif
*******************************************************
[PASS] file: OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_beta0.tif
*******************************************************
[PASS] file: OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_rtc_anf_gamma0_to_sigma0.tif
*******************************************************
[PASS] file: OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_local_incidence_angle.tif
*******************************************************
[PASS] file: OPERA_L2_RTC-S1-STATIC_T069-147169-IW3_20140403_20240318T202837Z_S1B_30_v1.0.2_incidence_angle.tif
*******************************************************
For the Acceptance Test to pass, the "Overall results" section for each burst product (including static layers) should display PASS
for all test categories.