Skip to content

To do list

Zhang Yunjun edited this page Sep 22, 2024 · 97 revisions
  • for isce2/stripmapStack, add an prepSlcTSX.py to uncompress the TSC data in *.tar.gz format.

  • load_data: replace the try/except call of prep_module with a more meaningful error catch:

    • if mintpy.load.* options exist and are valid, run as designed (with update mode turned ON)
    • if no or not-existing mintpy.load.* options, if the inputs folder exists and is valid, give a warning and continue; if the inputs folder does not exist, return error and exit.
  • overwrite the existing data.rsc file if the isce can be imported and the new metadata dict includes more metadata.

  • tsview: speedup by reading single pixel data on the fly while clicking

  • diff.py: support two time series with different resolutions, e.g. timeseries.h5 and ion.h5, 1) to avoid upsampling the low resolution iono stack from isce2 during load_data, and 2) to save disk space.

  • support reading OPERA CSLC products in view.py and readfile.py.

  • leverage the numTriNonzeroIntAmbiguity.h5 info for unwrap_error_bridging as in Oliver-Cabrera et al. (2021).

  • merge legacy/load2hdf5.py into load_data.py as the former can be handy.

    • make -t and -f as mutually exclusive options, to switch between loading via template file and loading into single h5 file.
  • use tqdm instead of mintpy.objects.progressBar object, because:

    • it's simpler to use: 0-2 lines vs. 3 lines
    • tqdm use pure python, while progressBar use numpy
    • start testing with ifgram_inversion.py for the overhead performance evaluation, then expand to the entire package.
  • view.py:

    • support plotting common geometries (points, lines, polygons) in KML, GMT and WKT format.
    • auto plot TS into one figure (for easy quality checking of error corrections) by fixing width and auto adjust figure lengths, to be used in smallbaselineApp for pic folder.
    • draw range/azimuth direction arrows via matplotlib AnchoredDirectionArrows
  • apply to be a NumFOCUS-affiliated project.

  • merge unwrap_error_bridging.py and unwrap_error_phase_closure.py into unwrap_error.py.

  • move all the images from yunjunz's personal website to a github repo (mintpy wiki, mintpy-tutorial, or create a new one just for images, or yunjunz's github page?), for better independency and more robust against the firewalls from countries to wordpress.com.

  • plate_motion:

    • support time-series as input
    • integrate into smallbaselineApp.py via template options as below, with the former having a higher than the latter one, to avoid potential conflicts. This is fed as plate_motion.py -t option.
      • mintpy.plateMotion.plate
      • mintpy.plateMotion.omegaCart
      • mintpy.plateMotion.omegaSph
      • mintpy.plateMotion.constVelo
    • support --update option to auto-skip via a run_or_skip().
  • replace print statements with python logging module

Technical features

  • Move the user forum from Google Group to Discourse for a better interactive experience.

  • timeseries2velocity.py:

    • save the output as velocity.h5 and velocityStd.h5. This would 1) eliminate the special "--nosearch" consideration of view.py velocity.h5 dset and 2) improve the visualization of the velocity file because velocity and velocityStd usually has very different color range.
  • view: support fault overlay for geocoded files from public available dataset.

  • save_kmz_timeseries:

    • customizable levels of steps/details
    • write a guide to related details to the "eye alt" on Google Earth to guide users
    • write a guide to find the memory limit of each computer and convert it to the setting of the script.
    • define the initial Y-axis range of the time-series plot for the whole image. This range is currently scaled to each point, thus difficult to have a comparable view among different points.
  • Add unit test for the most vulnerable functions

  • add mintpy.utils.print() for flexible printing and logging

    • bool argument print_msg to replace vprint() in view.py.
    • bool argument log to turn on/off logging to a local file mintpy.log in the current directory via rich.console
    • str argument syntax such as "python", "bash", "csh", "cfg", etc. to highlight output syntax via rich.syntax
  • Explore the GPU-speedup with cupy for ifgram_inversion.py

Documentation

  • add example datasets for ISCE-2/alosStack and ISCE-2/stripmapStack using AlosAT424 dataset on Kirishima.

  • use fastai/nbdev to re-write the documentation, including tutorials and APIs.

  • switch from readthedocs to the leafmap (https://leafmap.org/) style? It's more modern and cleaner, and supports embeding notebooks-converted html (https://leafmap.org/notebooks/00_key_features/).

  • add API document with usage extracted from code and with the source link, e.g. geocube

  • Add interactive jupyter notebook using Google Colab, so that one can run those example using a web browser only.

Algorithm features & functionalities

  • output uncertainty time-series

Design consideration for the next major version

  • use empty mintpy.objects.__init__.py file

  • replace objects and utils sub-module names with more meaningful group names, e.g., geometry, stdproc, etc.

Random stuff

  • convert the isce2 earthdef archive into github issues/discussions using redmine to github (suggested by Piyush).