I'm interested in a low-cost or open source solution for creating land cover GIS layers that utilize both spectral and textural extraction algorithms. I have used PCI Geomatica, ENVI, and Feature Analyst VLS in the past; however these solutions are a bit beyond my price range, any software recommendations?


3 Answers 3


You can use GRASS GIS for this which supports texture extraction and image classification based on a radiometric/segmentation approach. For an idea, check this conference abstract, a planned talk at the Geoinformatics FCE CTU 2011.

See also: http://grass.osgeo.org/wiki/Image_processing and http://grass.osgeo.org/wiki/Image_classification for an overview.


If I understand you correctly, you are looking for a supervised classification procedure. Some theoretical background: http://rst.gsfc.nasa.gov/Sect1/Sect1_17.html

This is certainly possible through grass: http://grass.osgeo.org/wiki/Image_classification#Supervised_classification_2

As an alternative you could also look at saga (I'm not saying it is better, I just know it better myself), which also plays nicely with qgis and R. There are some video's demonstrating this on this site: http://www.uni-koblenz-landau.de/landau/fb7/umweltwissenschaften/landscape-ecology/Teaching/geostat (download the datafiles to get the presentations).

In all gis programs, what you will do is define a number of reference points or polygons in one type of land, which are then extrapolated to the rest of the area. Here is an example of a landuse classification:

enter image description here

And in fact if you have drawn your training polygons in any gis program, you can use R to predict. Make an overlay with your grids, and then use any prediction system you like (eg rpart if you want classification trees). More info in this book around page 222: http://www.lulu.com/product/file-download/a-practical-guide-to-geostatistical-mapping/14938111

There is a lot more to say, you training sets should be representative for your study area (perhaps it would even be better to generate random points in R and to classify those). You should also choose your auxiliary datasets carefully, and you might want to generate new ones if eg texture is an important property.


If all you want to do is extract regions or features (without classifying them), a segmentation algorithm is more likely what you want. One example (implemented in SAGA GIS) is discussed in this paper: http://mirror.transact.net.au/pub/sourceforge/s/project/sa/saga-gis/SAGA%20-%20Documentation/GGA115/gga115_03.pdf

  • Thank you very much for your response. It seems you know exactly how one can accomplish my goals. What I would really appreciate is if you clarify your answer a bit more. I am specifically interested in the steps involved so that I can teach the program which features are correct and which ones are wrong until all (or most) of the correct features are extracted. Commented Sep 26, 2011 at 15:31
  • Provide more info (in your question, not in comments) what exactly the features are that you want to extract. Apart from that: if there is an overlap in the signal (see nasa link) of different land-use types (or whatever you are mapping), automated classification will not work well.
    – johanvdw
    Commented Sep 26, 2011 at 18:56

You would be able to do that with GRASS.

You will first work with raster data :

Finally you will manipulate vector data. v.db.select and v.class will help you.

  • 1
    This approach uses only one raster - which is usually insufficient.
    – johanvdw
    Commented Sep 26, 2011 at 11:16
  • He is talking about a region (one image or multiples). Anyway, images can be merged.
    – simo
    Commented Sep 26, 2011 at 13:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.