geodesymiami / rsmas_insar

RSMAS InSAR code
https://rsmas-insar.readthedocs.io/
GNU General Public License v3.0
62 stars 23 forks source link

Suggestions for dem-error-in-radar-coordinates plotting script #523

Open falkamelung opened 1 year ago

falkamelung commented 1 year ago

Hi @fari65 , Here some suggestions for the script, whenever you have time.

@fari65: For naming suggestions see here. https://github.com/geodesymiami/rsmas_insar/commit/03aaeb8dd6368830fd740833feea761f0ac617bb#diff-7b08d886831f50539708768d92043fd30ae436d0c51c18d6a59f21201d9eb44fR70

python Dem4Radar.py --help
usage: Dem4Radar.py [-h] [--vrange VRANGE] [--srtml SRTML] [--srtmh SRTMH] [--demerl DEMERL] [--demerh DEMERH] [--elel ELEL] [--eleh ELEH] [--psize PSIZE] [--offset OFFSET]
                    [--fontsize FONTSIZE] [--figsizey FIGSIZEY] [--figsizex FIGSIZEX]
                    project_dir lat1 lon1 lat2 lon2 outfile

plots velocity, DEM error, and estimated elevation on the backscatter

positional arguments:
  project_dir           enter your data address that includes input files for either sequential network or single reference defined as ../../dsm_reprojected_wgs84.tif, demErr.h5, velocity.h5, ../inputs/geometryRadar.h5, /../inputs/slcStack.h5, timeseries_demErr.h5, maskPS.h5, maskTempCoh.h5
  lat1                  low latitude of the box
  lon1                  low longitude of the box
  lat2                  high latitude of the box
  lon2                  high longitude of the box
  outfile               output png file name

options:
  -h, --help            show this help message and exit
  --vrange VRANGE, -v VRANGE
                        velocity range
  --srtml SRTML, -dsl SRTML
                        Dem SRTM low limit for color bar
  --srtmh SRTMH, -dsh SRTMH
                        Dem SRTM high limit for color bar
  --demerl DEMERL, -el DEMERL
                        Dem error low limit for color bar
  --demerh DEMERH, -eh DEMERH
                        Dem error high limit for color bar
  --elel ELEL, -elel ELEL
                        Estimated elevation low limit for color bar
  --eleh ELEH, -eleh ELEH
                        Estimated elevation high limit for color bar
  --psize PSIZE, -s PSIZE
                        points size
  --offset OFFSET, -d OFFSET
                        dem offset e.g., it is 26 for Miami
  --fontsize FONTSIZE, -f FONTSIZE
                        font size
  --figsizey FIGSIZEY, -figy FIGSIZEY
                        figure size in y direction
  --figsizex FIGSIZEX, -figx FIGSIZEX
                        figure size in x direction

view.py --help
usage: view.py [-h] [-n [NUM ...]] [--nosearch] [--ex [Dset ...]] [--show-kept] [--noverbose] [--math {reverse,deg2rad,rad2deg,square,sqrt,inverse}] [-v VMIN VMAX] [-u UNIT] [--nd NO_DATA_VALUE] [--wrap] [--wrap-range MIN MAX]
               [--flip-lr] [--flip-ud] [--noflip] [--nmli NUM] [--nomultilook] [--alpha TRANSPARENCY] [-d DEM_FILE] [--mask-dem] [--dem-noshade] [--dem-nocontour] [--contour-smooth DEM_CONTOUR_SMOOTH] [--contour-step NUM]
               [--contour-lw NUM] [--shade-az DEG] [--shade-alt DEG] [--shade-min MIN] [--shade-max MAX] [--shade-exag SHADE_EXAG] [--fontsize FONT_SIZE] [--fontcolor FONT_COLOR] [--nowhitespace] [--noaxis] [--notick]
               [--ylabel-rot YLABEL_ROT] [-c COLORMAP] [--cm-lut NUM] [--cm-vlist CMAP_VLIST CMAP_VLIST CMAP_VLIST] [--nocbar] [--cbar-nbins NUM] [--cbar-ext {max,both,neither,min,None}] [--cbar-label CBAR_LABEL] [--cbar-loc CBAR_LOC]
               [--cbar-size CBAR_SIZE] [--notitle] [--title-in] [--title FIG_TITLE] [--title4sen] [--figsize WID LEN] [--dpi DPI] [--figext {.emf,.eps,.pdf,.png,.ps,.raw,.rgba,.svg,.svgz}] [--fignum NUM] [--nrows NUM] [--ncols NUM]
               [--wspace FIG_WID_SPACE] [--hspace FIG_HEI_SPACE] [--no-tight-layout] [--coord {radar,geo}] [--animation] [--show-gps] [--mask-gps] [--gps-label] [--gps-ms GPS_MARKER_SIZE] [--gps-comp {horz,vert,hz2los,up2los,enu2los}]
               [--gps-redo] [--ref-gps REF_GPS_SITE] [--ex-gps [EX_GPS_SITES ...]] [--gps-start-date YYYYMMDD] [--gps-end-date YYYYMMDD] [--horz-az HORZ_AZ_ANGLE] [-m FILE] [--mask-vmin MASK_VMIN] [--mask-vmax MASK_VMAX] [--zm]
               [--coastline {110m,50m,10m}] [--coastline-lw NUM] [--lalo-label] [--lalo-step DEG] [--lalo-max-num NUM] [--lalo-loc left right top bottom] [--lalo-off LALO_OFFSET LALO_OFFSET] [--lalo-fs LALO_FONT_SIZE]
               [--scalebar LEN X Y] [--noscalebar] [--scalebar-pad SCALEBAR_PAD] [--ram MAXMEMORY] [--pts-marker PTS_MARKER] [--pts-ms PTS_MARKER_SIZE] [--pts-yx Y X | --pts-lalo LAT LON | --pts-file PTS_FILE] [--ref-date DATE]
               [--ref-lalo LAT LON] [--ref-yx Y X] [--noreference] [--ref-marker REF_MARKER] [--ref-size NUM] [-o [OUTFILE ...]] [--save] [--nodisplay] [--update] [--sub-x XMIN XMAX] [--sub-y YMIN YMAX] [--sub-lat LATMIN LATMAX]
               [--sub-lon LONMIN LONMAX]
               file [dset ...]

Plot InSAR Product in 2D

optional arguments:
  -h, --help            show this help message and exit
  --show-kept, --show-kept-ifgram
                        display kept interferograms only, without dropped interferograms
  --noverbose           Disable the verbose message printing (default: True).
  --math {reverse,deg2rad,rad2deg,square,sqrt,inverse}
                        Apply the math operation before displaying [for single subplot ONLY].
                        E.g. plot the std. dev. of the variance file.
                          square  = x^2
                          sqrt    = x^1/2
                          reverse = x * -1
                          inverse = 1 / x
  --ram MAXMEMORY, --memory MAXMEMORY
                        Max amount of memory in GB to use (default: 4.0).
                        Adjust according to your computer memory.

Input File:
  File/Dataset to display

  file                  file for display
  dset                  optional - dataset(s) to display (default: []).
  -n [NUM ...], --dset-num [NUM ...]
                        optional - order number of date/dataset(s) to display (default: []).
  --nosearch            Disable glob search for input dset.
  --ex [Dset ...], --exclude [Dset ...]
                        dates will not be displayed (default: []).

Data Display Options:
  Options to adjust the dataset display

  -v VMIN VMAX, --vlim VMIN VMAX
                        Display limits for matrix plotting.
  -u UNIT, --unit UNIT  unit for display.  Its priority > wrap
  --nd NO_DATA_VALUE, --no-data-val NO_DATA_VALUE, --no-data-value NO_DATA_VALUE
                        Specify the no-data-value to be ignored and masked.
  --wrap                re-wrap data to display data in fringes.
  --wrap-range MIN MAX  range of one cycle after wrapping (default: [-3.141592653589793, 3.141592653589793]).
  --flip-lr             flip left-right
  --flip-ud             flip up-down
  --noflip              turn off auto flip for radar coordinate file
  --nmli NUM, --num-multilook NUM, --multilook-num NUM
                        multilook data in X and Y direction with a factor for display (default: 1).
  --nomultilook, --no-multilook
                        do not multilook, for high quality display. 
                        If multilook is True and multilook_num=1, multilook_num will be estimated automatically.
                        Useful when displaying big datasets.
  --alpha TRANSPARENCY  Data transparency. 
                        0.0 - fully transparent, 1.0 - no transparency.

DEM:
  display topography in the background

  -d DEM_FILE, --dem DEM_FILE
                        DEM file to show topography as background
  --mask-dem            Mask out DEM pixels not coincident with valid data pixels
  --dem-noshade         do not show DEM shaded relief
  --dem-nocontour       do not show DEM contour lines
  --contour-smooth DEM_CONTOUR_SMOOTH
                        Background topography contour smooth factor - sigma of Gaussian filter. 
                        Set to 0.0 for no smoothing; (default: 3.0).
  --contour-step NUM    Background topography contour step in meters (default: 200.0).
  --contour-lw NUM, --contour-linewidth NUM
                        Background topography contour linewidth (default: 0.5).
  --shade-az DEG        The azimuth (0-360, degrees clockwise from North) of the light source (default: 315.0).
  --shade-alt DEG       The altitude (0-90, degrees up from horizontal) of the light source (default: 45.0).
  --shade-min MIN       The min height in m of colormap of shaded relief topography (default: -4000.0).
  --shade-max MAX       The max height of colormap of shaded relief topography (default: max(DEM)+2000).
  --shade-exag SHADE_EXAG
                        Vertical exaggeration ratio (default: 0.5).

Figure:
  Figure settings for display

  --fontsize FONT_SIZE  font size
  --fontcolor FONT_COLOR
                        font color (default: k).
  --nowhitespace        do not display white space
  --noaxis              do not display axis
  --notick              do not display tick in x/y axis
  --ylabel-rot YLABEL_ROT
                        Y-axis tick label rotation in degree anti-clockwisely (default: None).
                        Set to 90 for a vertical y-axis tick labels
  -c COLORMAP, --colormap COLORMAP
                        colormap used for display, i.e. jet, cmy, RdBu, hsv, jet_r, viridis, etc.
                        More at https://mintpy.readthedocs.io/en/latest/api/colormaps/
  --cm-lut NUM, --cmap-lut NUM
                        number of increment of colormap lookup table (default: 256).
  --cm-vlist CMAP_VLIST CMAP_VLIST CMAP_VLIST, --cmap-vlist CMAP_VLIST CMAP_VLIST CMAP_VLIST
                        list of 3 float numbers, for truncated colormap only (default: [0.0, 0.7, 1.0]).
  --nocbar, --nocolorbar
                        do not display colorbar
  --cbar-nbins NUM      number of bins for colorbar.
  --cbar-ext {max,both,neither,min,None}
                        Extend setting of colorbar; based on data stat by default.
  --cbar-label CBAR_LABEL
                        colorbar label
  --cbar-loc CBAR_LOC   colorbar location for single plot (default: right).
  --cbar-size CBAR_SIZE
                        colorbar size and pad (default: 2%).
  --notitle             do not display title
  --title-in            draw title in/out of axes
  --title FIG_TITLE, --fig-title FIG_TITLE, --figtitle FIG_TITLE
                        Title shown in the figure.
  --title4sen, --title4sentinel1
                        display Sentinel-1 A/B and IPF info in title.
  --figsize WID LEN     figure size in inches - width and length
  --dpi DPI             DPI - dot per inch - for display/write (default: 300).
  --figext {.emf,.eps,.pdf,.png,.ps,.raw,.rgba,.svg,.svgz}
                        File extension for figure output file (default: .png).
  --fignum NUM          number of figure windows
  --nrows NUM           subplot number in row
  --ncols NUM           subplot number in column
  --wspace FIG_WID_SPACE
                        width space between subplots in inches
  --hspace FIG_HEI_SPACE
                        height space between subplots in inches
  --no-tight-layout     disable automatic tight layout for multiple subplots
  --coord {radar,geo}   Display in radar/geo coordination system (for geocoded file only; default: geo).
  --animation           enable animation mode

GPS:
  GPS data to display

  --show-gps            Show UNR GPS location within the coverage.
  --mask-gps            Mask out GPS stations not coincident with valid data pixels
  --gps-label           Show GPS site name
  --gps-ms GPS_MARKER_SIZE
                        Plot GPS value as scatter in size of ms**2 (default: 6).
  --gps-comp {horz,vert,hz2los,up2los,enu2los}
                        Plot GPS in color indicating deformation velocity direction
  --gps-redo            Re-calculate GPS observations in LOS direction, instead of read from existing CSV file.
  --ref-gps REF_GPS_SITE
                        Reference GPS site
  --ex-gps [EX_GPS_SITES ...]
                        Exclude GPS sites, require --gps-comp.
  --gps-start-date YYYYMMDD
                        start date of GPS data, default is date of the 1st SAR acquisition
  --gps-end-date YYYYMMDD
                        start date of GPS data, default is date of the last SAR acquisition
  --horz-az HORZ_AZ_ANGLE, --hz-az HORZ_AZ_ANGLE
                        Azimuth angle (anti-clockwise from the north) of the horizontal movement in degrees
                        E.g.: -90. for east  direction [default]
                               0.  for north direction
                        Set to the azimuth angle of the strike-slip fault to show the fault-parallel displacement.

Mask:
  Mask file/options

  -m FILE, --mask FILE  mask file for display. "no" to turn OFF masking.
  --mask-vmin MASK_VMIN
                        hide pixels with mask value < vmin (default: None).
  --mask-vmax MASK_VMAX
                        hide pixels with mask value > vmax (default: None).
  --zm, --zero-mask     mask pixels with zero value.

Map:
  for one subplot in geo-coordinates only

  --coastline {110m,50m,10m}
                        Draw coastline with specified resolution (default: None).
                        This will enable --lalo-label option.
                        Link: https://scitools.org.uk/cartopy/docs/latest/matplotlib/geoaxes.html#cartopy.mpl.geoaxes.GeoAxes.coastlines
  --coastline-lw NUM, --coastline-linewidth NUM
                        Coastline linewidth (default: 1).
  --lalo-label          Show N, S, E, W tick label for plot in geo-coordinate.
                        Useful for final figure output.
  --lalo-step DEG       Lat/lon step for lalo-label option.
  --lalo-max-num NUM    Maximum number of lalo tick label (default: 3).
  --lalo-loc left right top bottom
                        Draw lalo label in [left, right, top, bottom] (default: [1, 0, 0, 1]).
  --lalo-off LALO_OFFSET LALO_OFFSET, --lalo-offset LALO_OFFSET LALO_OFFSET
                        Distance between tick and label in points (default: None).
                        Set to negative value, e.g. -36 -18, to move the ticklabel inside the plot.
  --lalo-fs LALO_FONT_SIZE, --lalo-fontsize LALO_FONT_SIZE
                        Lalo label font size in points (default: None).
  --scalebar LEN X Y    scale bar distance and location in ratio (default: [0.2, 0.2, 0.1]).
                            distance in ratio of total width
                            location in X/Y in ratio with respect to the lower left corner
                        --scalebar 0.2 0.2 0.1  #for lower left  corner
                        --scalebar 0.2 0.2 0.8  #for upper left  corner
                        --scalebar 0.2 0.8 0.1  #for lower right corner
                        --scalebar 0.2 0.8 0.8  #for upper right corner
  --noscalebar, --nosbar
                        do not display scale bar.
  --scalebar-pad SCALEBAR_PAD, --sbar-pad SCALEBAR_PAD
                        scale bar label pad in ratio of scalebar width (default: 0.05).

Point:
  Plot points defined by y/x or lat/lon

  --pts-marker PTS_MARKER
                        Marker of points of interest (default: k^).
  --pts-ms PTS_MARKER_SIZE
                        Marker size for points of interest (default: 6.0).
  --pts-yx Y X          Point in Y/X
  --pts-lalo LAT LON    Point in Lat/Lon
  --pts-file PTS_FILE   Text file for point(s) in lat/lon column

Reference date / point:
  Modify reference in time / space for display

  --ref-date DATE       Change reference date for display
  --ref-lalo LAT LON    Change reference point in LAT/LON for display
  --ref-yx Y X          Change reference point in Y/X for display
  --noreference         do not show reference point
  --ref-marker REF_MARKER
                        marker of reference pixel (default: ks).
  --ref-size NUM        marker size of reference point (default: 6).

Save/Output:
  Save figure and write to file(s)

  -o [OUTFILE ...], --outfile [OUTFILE ...]
                        save the figure with assigned filename.
                        By default, it's calculated based on the input file name.
  --save                save the figure
  --nodisplay           save and do not display the figure
  --update              enable update mode for save figure: skip running if
                            1) output file already exists AND
                            2) output file is newer than input file.

Subset:
  Display dataset in subset range

  --sub-x XMIN XMAX, --subx XMIN XMAX, --subset-x XMIN XMAX
                        subset display in x/cross-track/range direction
  --sub-y YMIN YMAX, --suby YMIN YMAX, --subset-y YMIN YMAX
                        subset display in y/along-track/azimuth direction
  --sub-lat LATMIN LATMAX, --sublat LATMIN LATMAX, --subset-lat LATMIN LATMAX
                        subset display in latitude
  --sub-lon LONMIN LONMAX, --sublon LONMIN LONMAX, --subset-lon LONMIN LONMAX
                        subset display in longitude

example:
  view.py velocity.h5
  view.py velocity.h5 velocity --wrap --wrap-range -2 2 -c cmy --lalo-label
  view.py velocity.h5 --ref-yx  210 566                              #change reference pixel for display
  view.py velocity.h5 --sub-lat 31.05 31.10 --sub-lon 130.05 130.10  #subset in lalo / yx

  view.py timeseries.h5
  view.py timeseries.h5 -m no                   #do not use auto mask
  view.py timeseries.h5 --ref-date 20101120     #change reference date
  view.py timeseries.h5 --ex drop_date.txt      #exclude dates to plot
  view.py timeseries.h5 '*2017*' '*2018*'       #all acquisitions in 2017 and 2018
  view.py timeseries.h5 20200616_20200908       #reconstruct interferogram on the fly

  view.py ifgramStack.h5 coherence
  view.py ifgramStack.h5 unwrapPhase-           #unwrapPhase only in the presence of unwrapPhase_bridging
  view.py ifgramStack.h5 -n 6                   #the 6th slice
  view.py ifgramStack.h5 20171010_20171115      #all data      related with 20171010_20171115
  view.py ifgramStack.h5 'coherence*20171010*'  #all coherence related with 20171010
  view.py ifgramStack.h5 unwrapPhase-20070927_20100217 --zero-mask --wrap     #wrapped phase
  view.py ifgramStack.h5 unwrapPhase-20070927_20100217 --mask ifgramStack.h5  #mask using connected components

  # GPS (for one subplot in geo-coordinates only)
  view.py geo_velocity_msk.h5 velocity --show-gps --gps-label   #show locations of available GPS
  view.py geo_velocity_msk.h5 velocity --show-gps --gps-comp enu2los --ref-gps GV01
  view.py geo_timeseries_ERA5_ramp_demErr.h5 20180619 --ref-date 20141213 --show-gps --gps-comp enu2los --ref-gps GV01

  # Save and Output
  view.py velocity.h5 --save
  view.py velocity.h5 --nodisplay
  view.py geo_velocity.h5 velocity --nowhitespace