wiki:wxGUIDevelopment/wxIClass

Version 8 (modified by wenzeslaus, 13 years ago) ( diff )

digitizer notes

wxIClass

wxIClass is a wxGUI extension. Generates spectral signatures for an image by allowing the user to outline regions of interest. The resulting signature file can be used as input for i.maxlik or as a seed signature file for i.cluster. (cited from i.class manual)

wxIClass should have similar functionality as i.class. Don't be confused with older wxGUI i.class implementation wx.class (addons, wiki). wxIClass should replace wx.class.

It will be available in GRASS 7. Now it is in the first development phase and it is developed in private repository. It will be moved to trunk when it's basic functionality is available.

Module name

User friendly name should be found. In the implementation wxIClass is used (and IClass or iclass in C implementation).

User wiki

See also GRASS User Wiki page (TODO).

Implemented features

  • Main window (MapFrame) with two maps and area for plots (similar to i.class window) and with statusbar and toolbar similar to GCP
  • C functions for wxIClass in lib/imagery
    • computing statistics (mean, ...)
    • creating raster map
    • simple API for Python
    • saving signature file (writing signature file seems to be broken in old i.class, fixed now)
    • works for multiple categories and multiple training areas (i.class worked only for one traning area)

Planned features

  • something like layer manager for both mapwindows (Traning and Preview)
  • changing layer opacity
  • missing layer manager can be (temporary) substituted by combo box (moves map layer to top)
  • save and load training areas as vector layer
  • managing more than one category
    • one would be active (determines preview, plots, new digitized area category)
    • category manager would be needed
  • importing/exporting vector map (also exporting raster could be useful)
  • importing existing signature file (see i.class manual)
  • dialog to show generated signature file
  • removing subgroup from user interface

Digitizer requirements

  • add area
  • edit area
  • remove area
    • in user interface removing boundary and centroid separately is inconvenient
    • wxIClass needs removing areas by category
  • undo/redo (would be nice to have)
  • do not add database record for feature

The best solution is probably a set of common classes like IVDigit and IVDigitWindow which provide all but customizable digitizing functionality. Then wxIClass digitizer part can use some parameters and overriding of inherited methods to customize digitizer. Overriding need to be used e. g. in places where standard digitizer uses UserSettings.

Roadmap

  • Refactoring of MapFrames a MapWindows (mapdisp*.py, gcpmapdisp*.py)
    • reason: creating common MapFrame base class and allow specializing in modules like GCP (georectifier) or wxIClass
    • separating statusbar functionality: r48703
    • GCP: r48713, r48764
    • moving code to MapFrameBase: r48763, r48769
    • toolbar access methods: r48765, r48766
  • Create/edit imagery group dialog
  • Digitizer customization

List of tickets

No results

Note: See TracWiki for help on using the wiki.