I am interested in learning what software exists for land classification using machine learning algorithms (e.g. k-NN, Random Forest, decision trees, etc.) I am aware of the randomForest package in R and MILK and SPy in Python.

What open-source or commercial machine learning algorithms exist that are suited for land cover classification?

  • Maybe you findsome useful information here. But I'm assuming you know this already.
    – Flavio
    Commented Nov 8, 2020 at 8:08

9 Answers 9


I would have to say that the most complete software environment for Machine Learning and nonparametric modeling is R. This is a big field in statistics, spanning K-NN, Kernel smoothing, General Additive Models, weak learners, support vectors, neural nets, semi-parametric spline regression, imputation, etc... I would highly recommend reading: Hastie, T., R. Tibshirani, J. Friedman (2009) The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer Series in Statistics.

Besides R, commercial software by Salford Systems has Random Forests, Multivariate Adaptive Regression Splines, CART and Gradient Boosting (TreeNet) available in a GUI environment. RuleQuest is still selling See5/C5 which is an updated version of the C4/ID3 CART algorithm. The University of Waikato's Weka 3 is an open source GUI/Commandline Java effort with a large number of models available.

  • 1
    @Aaron FYI, Falk Hutterman and myself are teaching a workshop at the US-IALE (Landscape Ecology) 2013 meeting in Austin, TX. Our focus will be on using R for machine learning and nonparametric modeling. I will also provide an introduction to using spatial objects in R for data preparation and specification of models. Commented Feb 7, 2013 at 16:00

I'd strongly recommend scikits-learn for Python. It supports supervised and unsupervised classification and the documentation is excellent (particularly check out the Machine Learning for Astronomical Data Analysis tutorial and the accompanying YouTube video (note: this is 3 hours long)).

The project is under active development, with the last version being 0.12 which was released in September.

As for what the package is capable of, see Nearest Neighbours, Random Forest (under Ensembe Methods), and Decision Trees to use the examples you gave.

Unfortunately no GUI unless you want to devote time to building one, but I'd recommend the iPython IDE as an excellent interactive scripting environment, including inline plots with matplotlib in the QT console.


A good overview of machine learning techniques in R is the machine learning taskview. It offers a host of different algorithms, recommended by the experts.


Did you have a look at eCognition? With their new Version (8.9) they provide Random Forests algorithm within a GUI environment. You can create nice process trees and include object features. enter image description here


Your question assumes that machine learning algorithms for land classification are somehow distinct from software used for other machine learning applications. There are some applications that require special treatment because of unusual characteristics, but there is no reason I know of to think that land use needs special treatment. If land use data can be put into a standard comma delimited form, existing tools such as R should do just fine. Now there may or may not be Land Use software that uses models discovered from machine learning techniques, but that's a different question.

Edited after the first response. -> Most of the major packages for machine learning do have some tools for spatial visualization, although of course they may not meet your particular needs. For example, are you familiar with the sp library for R which is intended for spatial data visualization? Let's see if I can find an appropriate link that gives the flavor of what you can do with it.

http://rwiki.sciviews.org/doku.php?id=tips:spatial-data:spatial_data_visualization For a more extensive listing of tools useful for spacial analysis in R you may want to look at http://cran.r-project.org/web/views/Spatial.html as this includes tools for Geostatistics, ecological analysis, and the like.


There is a group out of Duke University that have developed some interesting script tools for ArcGIS, including random forest models.

Marine Geospatial Ecology Tools

enter image description here

  • 2
    The MGET toolbox is just a wrapper for R. If you have the capacity to use R you can avoid a considerable headache calling R through ArcGIS, through Python (Rpy2). You also have no flexibility in using other tools in R that can be applied to the resulting RF, GAM, regression or CART model(s) objects. Commented Apr 8, 2013 at 2:24

You can also do land classification with DTclassifier (Decision Tree classifier) plugin for QGIS. It provides simple interface for classification of raster data using decision trees, to perform within QGIS.


I highly recommend you check out Spacenet. As quoted on their website: "SpaceNet delivers access to high-quality geospatial data for developers, researchers, and startups. Before SpaceNet, computer vision researchers had minimal options to obtain free, precision-labeled, and high-resolution satellite imagery. SpaceNet focuses on four open source key pillars: data, challenges, algorithms, and tools."

They have open source labelled datasets that are covered under the creative commons license. They also hold regular Machine Learning Competitions on those datasets, and then open source and analyze the best models.

I have personally used their open source cresi road segmentation library, and was able to get some great results out of it. They also have an open source Geospatial Machine Learning Pipelining Library called Solaris which is also great.

While they do not cover Landcover Detection (Yet), I found that reading their blogposts really helped me into getting familiar with how to apply machine learning specifically on GIS data.


dzetsaka https://plugins.qgis.org/plugins/dzetsaka/ A Classification tool for QGIS may be considered for those who are not conversant with programming. It facilitates semi-automatic classification with Gaussian Mixture Model, Random Forest, and SVM classifiers.

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.