Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SARvey suggestions #544

Open
falkamelung opened this issue Jul 6, 2024 · 2 comments
Open

SARvey suggestions #544

falkamelung opened this issue Jul 6, 2024 · 2 comments

Comments

@falkamelung
Copy link
Member

falkamelung commented Jul 6, 2024

  • consider renaming sarvey_mti.py. to sarvey.py ?
  • code organization as tools/SARvey/src/sarvey/cli for fast --help and so that sarvey --help works (in addition to sarvey.py --help) (check mintpy --help)
  • It would be really good to use similar names for the networks/parameters as ISCE/miaplpy (need to check Fringe). ISCE uses the term "Sequential" and "number of connections". Here from MiaplPy:
    Here the MiaplPy options:
######### 4. Select the network and generate interferograms
## Different pairs of interferograms can be choosed for unwrapping.
## Following is a short description of each type
## 1. mini_stacks: It unwraps single reference interferograms in each ministack which is formed from images of each year
## 2. single_reference: It unwraps the single reference interferograms of the whole stack using referenceDate.
## 3. delaunay: delaunay triangles with temporal and spatial baseline threshold.
## 4. sequential: sequential interferograms
## You may also unwrap certain combination of pairs by giving them in a text file as miaplpy.interferograms.list
miaplpy.interferograms.networkType             = delaunay     # [mini_stacks, single_reference, sequential, delaunay] default: single_reference
miaplpy.interferograms.list                    = auto     # auto for None, list of interferograms to unwrap in a text file
miaplpy.interferograms.referenceDate           = auto     # auto for the middle image
miaplpy.interferograms.ministackRefMonth       = auto     # The month of the year that coherence is high to choose reference from, default: 6
miaplpy.interferograms.connNum                 = 6     # Number of connections in sequential interferograms, auto for 3
miaplpy.interferograms.delaunayBaselineRatio   = 4     # [1, 4, 9] Ratio between perpendiclar and temporal baselines, auto for 4
miaplpy.interferograms.delaunayTempThresh      = auto     # [days] temporal threshold for delaunay triangles, auto for 120
miaplpy.interferograms.delaunayPerpThresh      = auto     # [meters] Perp baseline threshold for delaunay triangles, auto for 200
miaplpy.interferograms.oneYear                 = auto     # [yes, no ] Add one year interferograms, auto for no
  • I like star. Does it involve the selection of a best reference?
  • consider renaming config.json to sarvey.cfg (there is smallbaselineApp.cfg, miaplpyApp.cfg) ?
  • window size names. Maybe something similar to miaplPy?
miaplpy.inversion.rangeWindow              = 24   # range window size for searching SHPs, auto for 15
miaplpy.inversion.azimuthWindow            = 7   # azimuth window size for searching SHPs, auto for 15
  • consider some logic to keep a config.json file outside the processing directory from which the local config. json is updated. MintPy has functions for that:
template_dict = readfile.read_template(template_file_path)
self.templateFile = ut.update_template_file(self.templateFile, self.customTemplate).  (I think)
  • consider supporting MintPy *cfg format (and we can have topsStack, MintPy, MiaplPy and sarvey options in one *cfg file):
sarvey.consistency_check.coherence_p1 = 0.9
sarvey.consistency_check.grid_size = 200
sarvey.consistency_check.spatial_mask_file_p1 = auto
sarvey.consistency_check.knn = 30
sarvey.consistency_check.max_arc_length = null
sarvey.consistency_check.min_num_arc = 3

MintPy example:

########## 5. invert_network
## Invert network of interferograms into time-series using weighted least sqaure (WLS) estimator.
## weighting options for least square inversion [fast option available but not best]:
## a. var - use inverse of covariance as weight (Tough et al., 1995; Guarnieri & Tebaldini, 2008) [recommended]
## b. fim - use Fisher Information Matrix as weight (Seymour & Cumming, 1994; Samiei-Esfahany et al., 2016).
## c. coh - use coherence as weight (Perissin & Wang, 2012)
## d. no  - uniform weight (Berardino et al., 2002) [fast]
## SBAS (Berardino et al., 2002) = minNormVelocity (yes) + weightFunc (no)
mintpy.networkInversion.weightFunc      = auto #[var / fim / coh / no], auto for var
mintpy.networkInversion.waterMaskFile   = auto #[filename / no], auto for waterMask.h5 or no [if not found]
mintpy.networkInversion.minNormVelocity = auto #[yes / no], auto for yes, min-norm deformation velocity / phase
  • pip install PySide6 (I had to uninstall?Have to check)

  • consider using --dostep step_name and --start step_name --end step_name following ISCE and MintPy:

topsApp.py --help --steps
2024-07-09 00:58:08,671 - isce.insar - INFO - ISCE VERSION = 2.6.3, RELEASE_SVN_REVISION = ,RELEASE_DATE = 20230418, CURRENT_SVN_REVISION =
ISCE VERSION = 2.6.3, RELEASE_SVN_REVISION = ,RELEASE_DATE = 20230418, CURRENT_SVN_REVISION =
None
The currently supported sensors are:  ['SENTINEL1']

Usages:
topsApp.py <input-file.xml>
topsApp.py --steps
topsApp.py --help
topsApp.py --help --steps

None
A description of the individual steps can be found in the README file
and also in the ISCE.pdf document

Command line options for steps processing are formed by
combining the following three options as required:

'--start=<step>', '--end=<step>', '--dostep=<step>'

The step names are chosen from the following list:

['startup', 'preprocess', 'computeBaselines', 'verifyDEM', 'topo']
['subsetoverlaps', 'coarseoffsets', 'coarseresamp', 'overlapifg', 'prepesd']
['esd', 'rangecoreg', 'fineoffsets', 'fineresamp', 'ion']
['burstifg', 'mergebursts', 'filter', 'unwrap', 'unwrap2stage']
['geocode', 'denseoffsets', 'filteroffsets', 'geocodeoffsets']

If --start is missing, then processing starts at the first step.
If --end is missing, then processing ends at the final step.
If --dostep is used, then only the named step is processed.

In order to use either --start or --dostep, it is necessary that a
previous run was done using one of the steps options to process at least
through the step immediately preceding the starting step of the current run.
smallbaselineApp.py --help
usage: smallbaselineApp.py [-h] [--dir WORKDIR] [-g] [-H] [-v] [--plot] [--start STEP] [--end STEP] [--dostep STEP] [customTemplateFile]

Routine Time Series Analysis for Small Baseline InSAR Stack

positional arguments:
  customTemplateFile    custom template with option settings.
                        ignored if the default smallbaselineApp.cfg is input.

options:
  -h, --help            show this help message and exit
  --dir WORKDIR, --work-dir WORKDIR
                        work directory, (default: ./).
  -g                    generate default template (if it does not exist) and exit.
  -H                    print the default template file and exit.
  -v, --version         print software version and exit
  --plot                plot results [only] without running smallbaselineApp.

steps processing (start/end/dostep):
  Command line options for steps processing with names chosen from the following list:

  ['load_data', 'modify_network', 'reference_point', 'quick_overview', 'correct_unwrap_error']
  ['invert_network', 'correct_LOD', 'correct_SET', 'correct_ionosphere', 'correct_troposphere']
  ['deramp', 'correct_topography', 'residual_RMS', 'reference_date', 'velocity', 'geocode']
  ['google_earth', 'hdfeos5']

  In order to use either --start or --dostep, it is necessary that a
  previous run was done using one of the steps options to process at least
  through the step immediately preceding the starting step of the current run. 

https://github.com/isce-framework/isce2?tab=readme-ov-file#running-isce-with-steps

@falkamelung falkamelung changed the title SARvey comments SARvey suggestions Jul 9, 2024
@falkamelung
Copy link
Member Author

falkamelung commented Jul 9, 2024

sar_plotter:

  • spelling error: unwraping_temporal.py

sarvey

  • rename sbas directory to sb or sequential. MiaplPy uses network_sequential, network_delaunay_4 or network_single_reference
  • replace knn by k_nearest_neighbors
  • if -f config.json is not given it should use the config.json if it exists

@falkamelung
Copy link
Member Author

SARvey more urgent suggestions/issues

  • step_1_arc_coherence_reduced.png: The title/header does not show what is different to step_1_arc_coherence.png

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant