def create_parser(): parser = argparse.ArgumentParser(description='Inverse velocity from time-series.', formatter_class=argparse.RawTextHelpFormatter, epilog=TEMPLATE+'\n'+REFERENCE+'\n'+EXAMPLE) parser.add_argument('timeseries_file', help='Time series file for velocity inversion.') parser.add_argument('--template', '-t', dest='template_file', help='template file with options') parser.add_argument('-o', '--output', dest='outfile', help='output file name') parser.add_argument('--update', dest='update_mode', action='store_true', help='Enable update mode, and skip estimation if:\n'+ '1) output velocity file already exists, readable '+ 'and newer than input file\n' + '2) all configuration parameters are the same.') # reference in time and space # for input file without reference info, e.g. ERA5.h5 parser.add_argument('--ref-yx', dest='ref_yx', metavar=('Y', 'X'), type=int, nargs=2, help='Change referene point Y X for display') parser.add_argument('--ref-date', dest='ref_date', metavar='DATE', help='Change reference date for display') # dates of interest date = parser.add_argument_group('dates of interest') date.add_argument('--start-date','-s', dest='startDate', help='start date for velocity estimation') date.add_argument('--end-date','-e', dest='endDate', help='end date for velocity estimation') date.add_argument('--exclude', '--ex', dest='excludeDate', nargs='+', default=[], help='date(s) not included in velocity estimation, i.e.:\n' + '--exclude 20040502 20060708 20090103\n' + '--exclude exclude_date.txt\n'+DROP_DATE_TXT) # time functions model = parser.add_argument_group('deformation model', 'a suite of time functions') model.add_argument('--polynomial', '--poly', '--poly-order', dest='polynomial', type=int, default=1, help='a polynomial function with the input degree (default: %(default)s). E.g.:\n' + '--polynomial 1 # linear\n' + '--polynomial 2 # quadratic\n' + '--polynomial 3 # cubic\n') model.add_argument('--periodic', '--peri', dest='periodic', type=float, nargs='+', default=[], help='periodic function(s) with period in decimal years (default: %(default)s). E.g.:\n' + '--periodic 1.0 # an annual cycle\n' + '--periodic 1.0 0.5 # an annual cycle plus a semi-annual cycle\n') model.add_argument('--step', dest='step', type=str, nargs='+', default=[], help='step function(s) at YYYYMMDD (default: %(default)s). E.g.:\n' + '--step 20061014 # coseismic step at 2006-10-14\n' + '--step 20110311 20120928 # coseismic steps at 2011-03-11 and 2012-09-28\n') # bootstrap bootstrap = parser.add_argument_group('bootstrapping', 'estimating the mean / STD of the velocity estimator') bootstrap.add_argument('--bootstrap', '--bootstrapping', dest='bootstrap', action='store_true', help='Enable bootstrapping to estimate the mean and STD of the velocity estimator.') bootstrap.add_argument('--bc', '--bootstrap-count', dest='bootstrapCount', type=int, default=400, help='number of iterations for bootstrapping (default: %(default)s).') # computing parser = arg_group.add_memory_argument(parser) return parser
def create_parser(): parser = argparse.ArgumentParser( description='Change reference date of timeseries.', formatter_class=argparse.RawTextHelpFormatter, epilog=TEMPLATE + '\n' + EXAMPLE) parser.add_argument('timeseries_file', nargs='+', help='timeseries file(s)') parser.add_argument( '-r', '--ref-date', dest='refDate', default='minRMS', help='reference date or method, default: auto. e.g.\n' + '20101120\n' + 'reference_date.txt - text file with date in YYYYMMDD format in it\n' + 'minRMS - choose date with min residual standard deviation' ) parser.add_argument('-t', '--template', dest='template_file', help='template file with options') parser.add_argument('-o', '--outfile', help='Output file name.') # computing parser = arg_group.add_memory_argument(parser) return parser
def create_parser(): parser = argparse.ArgumentParser(description='Interactive time-series viewer', formatter_class=argparse.RawTextHelpFormatter, epilog=EXAMPLE) parser.add_argument('file', nargs='+', help='time-series file to display\n' 'i.e.: timeseries_ERA5_ramp_demErr.h5 (MintPy)\n' ' LS-PARAMS.h5 (GIAnT)\n' ' S1_IW12_128_0593_0597_20141213_20180619.he5 (HDF-EOS5)') parser.add_argument('--label', dest='file_label', nargs='*', help='labels to display for multiple input files') parser.add_argument('--ylim', dest='ylim', nargs=2, metavar=('YMIN', 'YMAX'), type=float, help='Y limits for point plotting.') parser.add_argument('--tick-right', dest='tick_right', action='store_true', help='set tick and tick label to the right') parser.add_argument('-l','--lookup', dest='lookup_file', type=str, help='lookup table file') parser.add_argument('-n', dest='idx', metavar='NUM', type=int, help='Epoch/slice number for initial display.') parser.add_argument('--error', dest='error_file', help='txt file with error for each date.') # time info parser.add_argument('--start-date', dest='start_date', type=str, help='start date of displacement to display') parser.add_argument('--end-date', dest='end_date', type=str, help='end date of displacement to display') parser.add_argument('--exclude', '--ex', dest='ex_date_list', nargs='*', default=['exclude_date.txt'], help='Exclude date shown as gray.') parser.add_argument('--zf', '--zero-first', dest='zero_first', action='store_true', help='Set displacement at first acquisition to zero.') parser.add_argument('--off','--offset', dest='offset', type=float, help='Offset for each timeseries file.') parser.add_argument('--noverbose', dest='print_msg', action='store_false', help='Disable the verbose message printing.') # temporal model fitting parser.add_argument('--nomodel', '--nofit', dest='plot_model', action='store_false', help='Do not plot the prediction of the time function (deformation model) fitting.') parser.add_argument('--plot-model-conf-int', '--plot-fit-conf-int', dest='plot_model_conf_int', action='store_true', help='Plot the time function prediction confidence intervals.\n' '[!-- Preliminary feature alert! --!]\n' '[!-- This feature is NOT throughly checked. Read the code before use. Interpret at your own risk! --!]') parser = arg_group.add_timefunc_argument(parser) # pixel of interest pixel = parser.add_argument_group('Pixel Input') pixel.add_argument('--yx', type=int, metavar=('Y', 'X'), nargs=2, help='initial pixel to plot in Y/X coord') pixel.add_argument('--lalo', type=float, metavar=('LAT', 'LON'), nargs=2, help='initial pixel to plot in lat/lon coord') pixel.add_argument('--marker', type=str, default='o', help='marker style (default: %(default)s).') pixel.add_argument('--ms', '--markersize', dest='marker_size', type=float, default=6.0, help='marker size (default: %(default)s).') pixel.add_argument('--lw', '--linewidth', dest='linewidth', type=float, default=0, help='line width (default: %(default)s).') pixel.add_argument('--ew', '--edgewidth', dest='edge_width', type=float, default=1.0, help='Edge width for the error bar (default: %(default)s)') # other groups parser = arg_group.add_data_disp_argument(parser) parser = arg_group.add_dem_argument(parser) parser = arg_group.add_figure_argument(parser) parser = arg_group.add_gps_argument(parser) parser = arg_group.add_mask_argument(parser) parser = arg_group.add_map_argument(parser) parser = arg_group.add_memory_argument(parser) parser = arg_group.add_reference_argument(parser) parser = arg_group.add_save_argument(parser) parser = arg_group.add_subset_argument(parser) return parser
def create_parser(): parser = argparse.ArgumentParser(description='Estimate velocity / time functions from time-series.', formatter_class=argparse.RawTextHelpFormatter, epilog=TEMPLATE+'\n'+REFERENCE+'\n'+EXAMPLE) parser.add_argument('timeseries_file', help='Time series file for velocity inversion.') parser.add_argument('--template', '-t', dest='template_file', help='template file with options') parser.add_argument('-o', '--output', dest='outfile', help='output file name') parser.add_argument('--update', dest='update_mode', action='store_true', help='Enable update mode, and skip estimation if:\n'+ '1) output velocity file already exists, readable '+ 'and newer than input file\n' + '2) all configuration parameters are the same.') parser.add_argument('--ts-std-file', dest='ts_std_file', help='Time-series STD file for velocity STD calculation.') # reference in time and space # for input file without reference info, e.g. ERA5.h5 parser.add_argument('--ref-yx', dest='ref_yx', metavar=('Y', 'X'), type=int, nargs=2, help='Change referene point Y X for estimation.') parser.add_argument('--ref-date', dest='ref_date', metavar='DATE', help='Change reference date for estimation.') # dates of interest date = parser.add_argument_group('dates of interest') date.add_argument('--start-date','-s', dest='startDate', help='start date for velocity estimation') date.add_argument('--end-date','-e', dest='endDate', help='end date for velocity estimation') date.add_argument('--exclude', '--ex', dest='excludeDate', nargs='+', default=[], help='date(s) not included in velocity estimation, i.e.:\n' + '--exclude 20040502 20060708 20090103\n' + '--exclude exclude_date.txt\n'+DROP_DATE_TXT) # bootstrap bootstrap = parser.add_argument_group('bootstrapping', 'estimating the mean / STD of the velocity estimator') bootstrap.add_argument('--bootstrap', '--bootstrapping', dest='bootstrap', action='store_true', help='Enable bootstrapping to estimate the mean and STD of the velocity estimator.') bootstrap.add_argument('--bc', '--bootstrap-count', dest='bootstrapCount', type=int, default=400, help='number of iterations for bootstrapping (default: %(default)s).') # time functions parser = arg_group.add_timefunc_argument(parser) # computing parser = arg_group.add_memory_argument(parser) return parser
def create_parser(): parser = argparse.ArgumentParser( description= 'Resample radar coded files into geo coordinates, or reverse', formatter_class=argparse.RawTextHelpFormatter, epilog=TEMPLATE + '\n' + EXAMPLE) parser.add_argument('file', nargs='+', help='File(s) to be geocoded') parser.add_argument( '-d', '--dset', help='dataset to be geocoded, for example:\n' + 'height for geometryRadar.h5\n' + 'unwrapPhase-20100114_20101017 for ifgramStack.h5') parser.add_argument( '-l', '--lookup', dest='lookupFile', help='Lookup table file generated by InSAR processors.') parser.add_argument('-t', '--template', dest='templateFile', help="Template file with geocoding options.") parser.add_argument( '--geo2radar', '--geo2rdr', dest='radar2geo', action='store_false', help='resample geocoded files into radar coordinates.\n' + 'ONLY for lookup table in radar-coord (ISCE, Doris).') # output grid / geometry out = parser.add_argument_group('grid in geo-coordinates') out.add_argument( '-b', '--bbox', dest='SNWE', type=float, nargs=4, metavar=('S', 'N', 'W', 'E'), help='Bounding box for the area of interest.\n' 'using coordinates of the uppler left corner of the first pixel\n' ' and the lower right corner of the last pixel\n' "for radar2geo, it's the output spatial extent\n" "for geo2radar, it's the input spatial extent") out.add_argument( '--lalo', '--lalo-step', dest='laloStep', type=float, nargs=2, metavar=('LAT_STEP', 'LON_STEP'), help='output pixel size in degree in latitude / longitude.{}'.format( DEG2METER)) # interpolation / resampling interp = parser.add_argument_group('interpolation') interp.add_argument( '-i', '--interp', dest='interpMethod', default='nearest', choices={'nearest', 'linear'}, help='interpolation/resampling method (default: %(default)s).') interp.add_argument( '--fill', dest='fillValue', type=float, default=np.nan, help='Fill value for extrapolation (default: %(default)s).') interp.add_argument( '-n', '--nprocs', dest='nprocs', type=int, default=1, help= 'number of processors to be used for calculation (default: %(default)s).\n' + 'Note: Do not use more processes than available processor cores.') interp.add_argument( '--software', dest='software', default='pyresample', choices={'pyresample', 'scipy'}, help='software/module used for interpolation (default: %(default)s)\n' 'Note: --bbox is not supported for -p scipy') parser.add_argument( '--update', dest='updateMode', action='store_true', help='skip resampling if output file exists and newer than input file') parser.add_argument('-o', '--output', dest='outfile', help="output file name. Default: add prefix 'geo_'") parser.add_argument('--outdir', '--output-dir', dest='out_dir', help='output directory.') # computing parser = arg_group.add_memory_argument(parser) return parser
def create_parser(): parser = argparse.ArgumentParser( description='DEM Error (Topographic Residual) Correction', formatter_class=argparse.RawTextHelpFormatter, epilog='{}\n{}\n{}'.format(REFERENCE, TEMPLATE, EXAMPLE)) parser.add_argument('timeseries_file', help='Timeseries file to be corrrected') parser.add_argument('-g', '--geometry', dest='geom_file', help='geometry file including datasets:\n' + 'incidence angle\n' + 'slant range distance\n' + 'and/or 3D perpendicular baseline') parser.add_argument('-o', '--outfile', help='Output file name for corrected time-series') defo_model = parser.add_argument_group('temporal deformation model') defo_model.add_argument('-t', '--template', dest='template_file', help='template file with the options') defo_model.add_argument( '--ex', '--exclude', dest='excludeDate', nargs='*', default=[], help='Exclude date(s) for DEM error estimation.\n' + 'All dates will be corrected for DEM residual phase still.') defo_model.add_argument( '-p', '--poly-order', dest='polyOrder', type=int, default=2, help= 'polynomial order number of temporal deformation model (default: %(default)s).' ) defo_model.add_argument( '-s', '--step-date', dest='stepFuncDate', nargs='*', default=[], help= 'Date of step jump for temporal deformation model (default: %(default)s).' + ' i.e. date of earthquake/volcanic eruption') defo_model.add_argument( '--periodic', '--period', '--peri', dest='periodic', type=float, nargs='+', default=[], help= 'periodic functinos of temporal deformation model (default: %(default)s).' ) parser.add_argument( '--phase-velocity', dest='phaseVelocity', action='store_true', help='Use phase velocity instead of phase for inversion constrain.') parser.add_argument('--update', dest='update_mode', action='store_true', help='Enable update mode, and skip inversion if:\n' + '1) output timeseries file already exists, readable ' + 'and newer than input interferograms file\n' + '2) all configuration parameters are the same.') # computing parser = arg_group.add_memory_argument(parser) parser = arg_group.add_parallel_argument(parser) return parser