related with https://github.com/isce-framework/isce2/pull/97
+ move cpx cohe calculation code from main() to estCpxCoherence()
+ move computeCoherence import from the top to the inside of estCpxCoherence(), to avoid import error/warning sometimes.
+ fix typo in the default value of --cc option from 'fine.cori.full' to 'fine.cor.full'
+ FilterAndCoherence: skip filtering if input filter strength <= 0 and use original phase for coherence estimation
+ Stack: do not add filt_ prefix to output file if input filter strength <= 0
+ topo: merge runMultilookGdal() into runMultilook() with new argument "method" to control to use isce Looks module (averaging) or gdal_translate (extraction; default, same as before).
+ topo: call gdal2isce_xml.py so that xml file for multilooked data are always generate. This fix the warning message from gdal_translate: "Warning 1: Geotransform matrix has non rotational terms"
+ topo: skip multilooking if the data file has vrt/xml file missing, which sometimes happens to incLocal and shadowMask (don't know the cause yet; I used GPU version).
+ crossmul/resampleSlc: re-organize module import at the top of scripts
@falkamelung noted a race condition in #106 due to non-atomic directory
checking followed by os.makedirs. This pattern exists in many places
in the codebase so I went ahead and replaced the rest of them.
The new exist_ok usage should be terser and more idiomatic.
* Fix burst loading in estimateAzimuthMisreg.py
Within the for loop that starts at line 82, looping through range(minBurst, maxBurst) misses the burst with the maximum burst number. In cases where only one burst in a swath is used, the script fails at line 90 when .getWidth() is called on an empty xml. This issue can be fixed by adding the line maxBurst = maxBurst + 1
* Fix burst loading in estimateRangeMisreg.py
Similar to estimateAzimuthMisreg.py, calling range(minBurst,maxBurst) at line 185 will lead to an empty list and the some bursts not being loaded unless line 181 is changed from maxBurst = maxBurst - 1 to maxBurst = maxBurst +1
+ plot the evolution of offset after each step to better check the changes by masking, filling and filtering operations.
+ plot both azimuth and range offset in one figure and move the plotting to the end after file writing
+ update file path in xml file so that script can work even if the files are moved.
+ convert SNR nan value to zero before used as the mask, to avoid warning message
+ add the following options to customize the plot
- add -v and --v-snr option to change the display range for offset and SNR
- add --figsize and --save option
+ suppress the DEBUG message from matplotlib
+ remove obsolete getShape() and resampleOffset()
+ update IML module import
+ adjust indentation
+ dem.py: replace filename in xml file with abspath after geoid to ellipsoid correction
+ update README.md files in contrib/stack/*Stack, as fixImageXml.py is not needed anymore
+ fixImageXml: use native argparse mutually exclusive group for --full/--base options to replace checking with own code
+ convert README.txt to README.md
+ stackStripMap.py: group iono options in createParser()
- group all iono options in createParser() for more easily navigation in --help.
- fix typos in the descriptions for the script and --dem option.
Stack.py: add function call to create water mask file in radar coordinates in the step one "run_1_master_*"
createWaterMask.py: fill pixels without DEM data with value of -1, same as water body
add -d / --dem_file option to input DEM file as an alternative for --bbox option.
add dem2bbox() to grab bbox from existing DEM file
adjust download_waterMask() that: if DEM file is input, put downloaded water body mask file to the same directory as the DEM file.
adjust the default water mask file in radar coordinates that:
1. in the same directory as the input lat/lon files
2. named as "waterMask.rdr" instead of "swbdLat_*.wbd.rdr"
add example docstring and update parser description.
Stack:
+ add alks and rlks options in config.topo()
topo: if number of looks is larger than 1, generate multilooked geometry files
+ generate `geom_master` folder in the root directory, same level as `Igrams`
+ import mroipac.looks.Looks module to multilook the full resolution geometry files from `./merged/geom_master`
+ copy over the full resolution xml/vrt files from `./merged/geome` to `./geom_master` as `*.full.xml/vrt` files, to support the number of looks extraction for mintpy
+ bug fixed in extractInfo(). This was not a problem before because the default values are 1 and the custom values from argument was not inputed in the config file.
Stack:
+ add alks and rlks while writing config file for unwrap
unwrap:
+ calculate the az/rg spacing/resolution and the equivalent number of independent looks in extractInfoFromPickle()
+ uncomment corrlooks setting in runUnwrap()