Merged
Conversation
Member
yunjunz
commented
Mar 11, 2017
- use argparse instead of get opt for input argument parsing, for some scripts, not all yet
- improved visualization, including lat/lon label, scale bar, various map projection, auto switch backend, transection with topographic profile, network plotting
- update support for UNAVCO InSAR Archive format
- update support for insarmaps - UM Web Viewer
- add more parallel processing using multiprocessing and job lib
- renamed some scripts: multi_look.py -> multilook.py, masking.py -> mask.py, etc.
- add precious radar2geo and geo2radar coord conversion, thus subset/reference using yx/lalo both work.
- add documentation, including auto API documentation using Doxygen and Github Wiki, in html and PDF format
- create Github Page
- add examples using jupyter notebook to show how to use PySAR as a python module
- separate automatic path for Miami file structure, and add easy turn off in init.py with variable miami_path
- more module-lized file loading
- renamed working directory from TSSAR to PYSAR, and create PYSAR/subset folder if subset option is specified.
- updated routine processing pysarApp.py
- bugs fixed
delete igram_viewer.py and plot.py because they are not used anymore and their function are available in view.py.
1. change all Usage() into usage() for all scripts 2. Adjust to uniform usage() content format for all scripts.
1. read_dis_lalo() in tsviewer.py to support point time series displacement reading from lat and lon input 2. module import update for new version of scipy and bumpy 3. adjust name and content of usage() in baseline_trop.py
add support for multiple map projections available from Basemap, useful for high latitude/polar areas
1. add function print_attributes() to print attributes dictionary in key order and align them to the left 2. rename print_attrs() to print_structure(), and call print_attributes() 3. use pysar._readfile.read_attributes() to support all file types 4. clean out code for info.py and _datetime.py
1. support .he5 file extension, which is used in HDF-EOS5 data model 2. _readfile.py: remove obsolete function read_dem() 3. info.py: support timeseries file from UNAVCO InSAR archive 4. info.py: add function print_timeseries_date_info() 5. info.py: rename print_structure() to print_hdf5_structure() 6. load_dem.py: update usage()
Add attributes to existing hdf5 file in root level
rewrite pysar2unavco.py based on isce2he5.py and roipac2hdf5.py
1. rename multi_looking.py to multilook.py 2. support parallel processing in multilook 3. use cmdLineParse() instead of usage() 4. update output message for _writefile.py and pysar2unavco.py
1. put all module import back to the top of scripts following PEP 008 style guide; 2. _network.py: fixed bug due to new matplolib.tri.Triangulation update
1. update __init__.py, pysarApp.py for renamed scripts 2. bug fixed for multilook.py
1. use argparse for input instead of getopt 2. add parallel processing and multiple input files support 3. renamed check_subset_range() to check_box_within_data_coverage() 4. use 4-tuple box instead of list for subset input variable 5. rename geo_box() to get_coverage_box() 6. rename box_overlap_index(0 to get_box_overlap_index() 7. add update_subset_input_from_box() to update subset input from non-command line inputs 8. add subset_input_dict2box() to convert subset input from dict to 4-tuple box 9. add box_pixel2geo() 10. update subset_file() using subset_dict input
1. _readfile.py: in read_attributes(), move “UNIT” code in one place, add ‘ref_date’ attribute for timeseries file 2. _readfile.py: in read(), change input option into 3items, including file, box and epoch; update attribute dictionary using subset_attributes() when reading part of the whole dataset; turn off the conversion from 1 to dB when reading amplitude file 3. rename masking.py to mask.py 4. subset.py: add box_geo2pixel() function 5. _pysar_utilities.py: add ‘ref_date’ attribute when generating timeseries from interferograms; and read it into dictionary attributes if it’s not existed, for old pysar product;
1. use cmdLineParse() and Namespace for plot input options 2. add auto_row_col_num() and plt.tight_layout() for multi-dataset display 3. clean up disp_wrap/unit/scale conflict; so now disp_scale and disp_unit are independent, while wrap and display unit will check conflict. 4. update_plot_inps_with_meta_dict() and update_matrix_with_plot_inps() 5. introduce plot_matrxi() for easy external call 6. reduced size of main() 7. vector (point and line) input is removed for now, will be added later. 8. original script is still working and renamed into view_legacy.py And minor changes including: 1. add —lalo-label option and round_to_1() for nice lat/lon tick and label displaying 2. move all module import to the top 3. delete obsolete functions: rewrap(), unit_and_scale(), unit_type(), orbit_direction() 4. rename auto_flip_check() to auto_flip_direction() 5. update plot_dem_yx/lalo() with new inps namespace input 6. add auto_figure_title() for single dataset input 7. delete obsolete usage() and getopt code 8. add check_colormap_input(), check_multilook_input() 9. add get_epoch_full_list_from_input() to read all epoch related input 10. clean up new reference point and its display 11. delete template input option, because it’s not used often 12. add round_to_1() for nice lat/lon label display _readfile.py: add optional input option ‘epoch’ to read_attributes() to read specific epoch in multi-group files, like interferograms
add example folder to show some demo and examples of how to use PySAR scripts and take advantage of its utility functions. It will mainly be shell scripts and ipython notebook. plot_single_dataset: simple command in python to plot an single dataset file using PySAR function plot_matrix() from view.py
1. merge multi file matching - matching_all.py - into matching.py 2. use argparse instead of getopt for input interaction 3. put manual matching code into manual_offset_estimate() 4. put two files matching code into sub function match_two_files() 5. update corners() 6. delete obsolete funcitons: nearest_neighbor() and usage() 7. delete obsolete script matching_all.py
delete view4job.py, because view.py can now work during job queues.
1. add draw scale method to Basemap class. 2. add —scalebar and —noscalebar option for scale bar display 3. add automatic initiation for scale bar values.
load_data.py update auto_path_miami() to use DEMg/DEM option in template file if no pysar.dem.geoCoord if specified. Now, miami user should not need to specify any loading options. pysarApp.py: 1. continue to run even if no DEM in geo coord found; it mean: for timeseries/loaded data in radar coord, if no DEM in radar coord, skip tropospheric delay correction and base trop cor; while for timeseries/loaded data in geo coord, if no DEM in geo coord, also skip tropospheric delay correction and base trop cor. 2. if no geomap.trans file existed, skip geocoding.
1. update radar2glob() and glob2radar() to use geomap*.trans file for precise (pixel-wise level) coordinate conversion; if geomap*.trans file is not provided, use corner lat/lon for simple 2D transformation (existed before). 2. add coord_glob2radar_roipac and coord_radar2glob notebook for the precision comparison between two methods of coord conversion. 3. update incidence_angle() to support 0 to 2 d output, more convenient.
“TIMESERIES” _pysar_utilities.py: bug fixed when converting coord from glob2radar for subsetted file use progress bar for multiple dataset/group file reading/writing
add —trans option to input geomap*.trans file; if there are —lat/lon input and input file is in radar coord, use ut.glob2radar() to convert to y/x in radar coord; for template input, ignore pysar.reference.yx/lalo = auto, to support default/auto setting for pysarApp.py
1. interpret pysar.network.coherenceBase = auto to pysar.network.coherenceBase = yes, mainly for default setting in pysarApp.py 2. if no interferogram to drop, after input option checking, skip file wirting. 3. use progress bar for file reading/writing
1. use ‘TIMESERIES’ instead of ‘TSSAR’ for default working directory for Miami user 2. if subset is specified, create and put all result into “subset” folder, for cleaner directory; 3. add subset in yx/lalo back, for radar coord input dataset; will add subset support geo coord input dataset later 4. integrate reference.lalo for dataset in radar coord using geomap*.trans file 5. add auto value for all pysar options except for input data, check more details using “pysarApp.py -h” 6. make coherence.h5, DEM in radar/geo coord and geomap*.trans file optional, so that pyasrApp.py will run without them, while if they are input, pysarApp.py will use them for more advanced/smart processing, including: spatial coherence: used in coherence-based network modification; calculate average_spatial_coherence for max-coherent referent point selection; DEM in radar/geo coord: used in tropospheric delay correction for input dataset in radar/geo coord geomap*.trans: used in geocoding, referencing in space using lat/lon for dataset in radar coord, subset for dataset in radar coord 7. add check_isfile() to detect existed but corrupted files and removed them 8. add check_subset_file(), check_geocode_file() for single file subset/geocode 9. add subset_dataset() to create subset of dataset for time series, which is independent, and contains all info for time series analysis. 10. switch order of subset and network_modification, now we subset first and then modify the network, if both of them are specified. 11. merge code of geocoding, masking and save to KMZ file into one. bug fixed for output to kml file
update saved output figure
1. turn on latex option in Doxygen setup file 2. generate PDF version of PySAR documentation using latex
1. _pysar_utilities.py: add elapsed_time argument for print_progress() and update the corresponding code in timeseries2velocity.py 2. fix bug for pysarApp.py about path of template_file/workding directory, it happens when input template file does not contain absolute path
1. support relative path for load data: its input path should be referenced to the directory of template file and its output path should be PySAR timeseries folder 2. sort updated date12 list
_pysar_utilities.py 1. add range_resolution() and azimuth_resolution() to get range/azimuth ground resolution in meter from attribute dictionary 2. use attribute dict instead of file name for radar file info 3. bug fixed when calculating x/y_factor to get coord searching buffer area by introducing lat/lon_step(_deg) 4. remove obsolete function radar_or_geo() 5. adjust the following scripts due to the above change: pysarApp.py seed_data.py transect.py geocode.py: calculating ref_lat/lon attributes during geocoding, using ut.radar2glob() view.py: bug fixed when input min/max option is 0
add —bbox option to create a subset of entire dataset in radar coord using y/x or lat/lon option, including *.trans and *.dem files in geo coord. add subset_file_list() function to subset file list in parallel update bbox_radar2geo/geo2radar() to use attributes dict instead of file name in radar coord.
1. bug fixed related with --bbox option in subset 2. do not subset and return input File name if calculated subset range is the same as data coverage
…s; fixed lat/long mixups in both old and new unavco2insarmaps; renamed old unavco2insarmaps to unavco2insarmaps_legacy
Demo dataset
yunjunz
added a commit
that referenced
this pull request
Apr 1, 2019
* mask: set int amp/pha to zero * process_isce_stack: add masterDate
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.