Image processing

From GRASS-Wiki
Revision as of 08:14, 1 July 2012 by Neteler (talk | contribs) (+http://spectralpython.sourceforge.net/)
Jump to navigation Jump to search

Introduction

Satellite imagery and orthophotos (aerial photographs) are handled in GRASS as raster maps and specialized tasks are performed using the imagery (i.*) modules. All general operations are handled by the raster modules.

  • Data import is generally handled by the r.in.gdal module

Screenshots

Importing

Satellite Data

Ocean Color

Sea Surface Temperature (SST)

High resolution data

Orthophotos

Preprocessing

See also NASA LaRC Satellite Overpass Predictor

Geometric preprocessing/Georectification

A multi-band image may be grouped and georectified with a single set of ground control points (i.group, i.target, i.rectify).

See also the Georeferencing wiki page

Radiometric preprocessing

Correction for atmospheric effects

Correction for topographic/terrain effects

In rugged terrain, such correction might be useful to minimize negative effects.

  • simple "cosine correction" using r.sunmask, r.mapcalc (tends to overshoot when slopes are high)
  • In i.topo.corr (from GRASS AddOns) the following correction methods are implemented: cosine, minnaert, percent, c-factor.

Cloud removal

Image classification

See the dedicated Image classification page.

Filtering

Fourier Transform

Canonical Component Analysis

Principal Component Analysis

Texture

A series of commonly used texture measures (derived from the Grey Level Co-occurrence Matrix, GLCM), also called Haralick's texture features are available:

  • r.texture: In case of panchromatic maps or limited amount of channels, it is often recommended to generate synthetic channels through texture analysis

See here and here for the formulas to calculate texture.

Time series analysis

Enhancements

Radiometric Enhancements

Geometric Enhancements - Image Fusion - Pansharpening

  • i.rgb.his and i.his.rgb: can be used for image fusion
  • i.fusion.brovey: image fusion of pan-chromatic and color channels
  • r.seg which performs image segmentation and discontinuity detection (based on the Mumford-Shah variational model). The module generates a piece-wise smooth approximation of the input raster map and a raster map of the discontinuities of the output approximation. The discontinuities of the output approximation are preserved from being smoothed.

Optimal channel selection for color composites

Stereo anaglyphs

Ideas collection for improving GRASS' Image processing capabilities

Below modules need some tuning before being added to GRASS 6. Volunteers welcome.

Spectral unmixing ideas

  • i.spec.unmix: existing GRASS 5 module awaiting complete GRASS 6 update
  • Make use of the Spectral Python (SPy) which is a pure Python module for processing hyperspectral image data

Spectral angle mapping ideas

Geocoding ideas

Image matching ideas

  • i.points.auto: automated search of GCPs based on FFT correlation (as improved i.points)
Reference: M. Neteler, D. Grasso, I. Michelazzi, L. Miori, S. Merler, and C. Furlanello, 2005: An integrated toolbox for image registration, fusion and classification. International Journal of Geoinformatics, 1(1), pp. 51-61 PDF

Image classification ideas

Stereo ideas

This is stand-alone stereo modeling software (DEM extraction etc). Waits for integration into GRASS.

Lidar LAS format

LAS Tools by M. Isenburg, Howard Butler et al.: http://www.liblas.org

   las2txt | r.in.xyz in=- fs=" "

Update: r.in.lidar and v.in.lidar implemented by Markus Metz (GRASS 7)

(see LIDAR)

Improving the existing code

It might be sensible to merge the various image libraries:

  • GRASS 6 standard libs:
    • lib/imagery/: standard lib, in use (i.* except for i.points3, i.rectify3, see below)
    • imagery/i.ortho.photo/libes/: standard lib, in use (i.ortho.photo, photo.*)
  • GRASS 5 (! only) image3 lib:
    • libes/image3/: never finished improvement which integrated the standard lib and the ortho lib. Seems to provide also ortho rectification for satellite data (i.points3, i.rectify3)
  • GRASS 5/6 image proc commands:
    • merge of i.points, i.vpoints, i.points3 (see above)
    • merge of i.rectify and i.rectify3 (see above)
    • addition of new resampling algorithms such as bilinear, cubic convolution (take from r.proj or r.resamp.aggreg) (done 10/2010)
    • add other warping methods (maybe lanczos or thin splines from GDAL?): Addons#i.warp
    • implement/finish linewise ortho-rectification of satellite data

Bibliography