[GRASS-user] Semi-automatic classification with GRASS modules

Hello everyone,
I’m applying between QGIS and GRASS to apply a semi-automatic classification of aerial photos.
In practice I would like to use the combination of the grass modules in the processing of QGIS; i.cluster and i.maxlink. My problem is that with i.cluster I can not create the “spectral signature” which then must be used in the second module. Why?
In practice I use two photo areas and I left (As proof) the preset parameters but at the end of the process (Although it does not give me errors), only a final report is created and no spectral signature files. Why?
Thanks in advance

Hi Giuseppe,

On Wed, Jul 4, 2018 at 11:36 AM, Giuseppe Cillis <giucillis@gmail.com> wrote:

Hello everyone,
I'm applying between QGIS and GRASS to apply a semi-automatic classification
of aerial photos.
In practice I would like to use the combination of the grass modules in the
processing of QGIS; i.cluster and i.maxlink. My problem is that with
i.cluster I can not create the "spectral signature" which then must be used
in the second module. Why?
In practice I use two photo areas and I left (As proof) the preset
parameters but at the end of the process (Although it does not give me
errors), only a final report is created and no spectral signature files.
Why?

Please consider to use more recent approaches like i.segment,
r.learn.ml (addon), v.class.mlR (addon) etc.

You can find an overview here which we presented at FOSDEM earlier this year:

GRASS GIS in the sky: GRASS GIS as high-performance remote sensing toolbox
https://fosdem.org/2018/schedule/event/geo_grass/

Best
Markus

--
Markus Neteler, PhD
http://www.mundialis.de - free data with free software
http://grass.osgeo.org
http://courses.neteler.org/blog

Hi all,

you may want to consider topography-driven classification: by that I
mean a classification
restricted to proper sub-areas; in particular we have explored the use
of both rectangular
areas and slope units, for the specific purpose of landlisde mapping,
in this paper:

https://doi.org/10.1080/19475705.2018.1458050

we expect the method to work for purposes other than landslide
mapping, and to be even
more effective in locations at larger latitudes, where shades are more
relevant to the specific
spectral response of each given terrain class, in a given sub-area.

Massi

2018-07-04 12:20 GMT+02:00 Markus Neteler <neteler@osgeo.org>:

Hi Giuseppe,

On Wed, Jul 4, 2018 at 11:36 AM, Giuseppe Cillis <giucillis@gmail.com> wrote:

Hello everyone,
I'm applying between QGIS and GRASS to apply a semi-automatic classification
of aerial photos.
In practice I would like to use the combination of the grass modules in the
processing of QGIS; i.cluster and i.maxlink. My problem is that with
i.cluster I can not create the "spectral signature" which then must be used
in the second module. Why?
In practice I use two photo areas and I left (As proof) the preset
parameters but at the end of the process (Although it does not give me
errors), only a final report is created and no spectral signature files.
Why?

Please consider to use more recent approaches like i.segment,
r.learn.ml (addon), v.class.mlR (addon) etc.

You can find an overview here which we presented at FOSDEM earlier this year:

GRASS GIS in the sky: GRASS GIS as high-performance remote sensing toolbox
https://fosdem.org/2018/schedule/event/geo_grass/

Best
Markus

--
Markus Neteler, PhD
http://www.mundialis.de - free data with free software
http://grass.osgeo.org
http://courses.neteler.org/blog
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

On Wed, Jul 4, 2018 at 11:36 AM, Giuseppe Cillis <giucillis@gmail.com> wrote:

Hello everyone,
I’m applying between QGIS and GRASS to apply a semi-automatic classification of aerial photos.

In practice I would like to use the combination of the grass modules in the processing of QGIS; i.cluster and i.maxlink. My problem is that with i.cluster I can not create the “spectral signature” which then must be used in the second module. Why?

The signature file is stored in the current mapset. When you use GRASS through QGIS, a temporary location and mapset is created and again deleted once the GRASS process has finished. That means the signature file is created, but again deleted when QGIS deletes the temporary location/mapset. The solution is to use GRASS directly.

Markus M

In practice I use two photo areas and I left (As proof) the preset parameters but at the end of the process (Although it does not give me errors), only a final report is created and no spectral signature files. Why?
Thanks in advance


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Hi Giuseppe try to take a look also here, if you find something that can help you

http://hdl.handle.net/2434/574065

I tried a combination of i.segment.uspo, i.segment and v.class.mlR (Grippa et al. 2017) to classify an aerial images of Alpine areas. I get low a accuracy in classification because I did the great mistake of no consider the single properties of habitat in different Alpine belts. I hope you will get better result :wink:

I use this e-mail also to make a question, during a work I tried to classify a pancromatic aerial image using an unsupervised approach. Running i.cluster it gave me an error indicating that it needs more than two classes. What I missed?

Thank you

Michele

Michele Zurlo:

[..]

I use this e-mail also to make a question, during a work I tried to
classify a pancromatic aerial image using an unsupervised approach.
Running i.cluster it gave me an error indicating that it needs more
than two classes. What I missed?

Dear Michele, the algorithm behind i.cluster does not work with less
than two input images. See also:
https://trac.osgeo.org/grass/ticket/1908.

Kind of a common practice, is to use another input derived from the first.
I.e., some synthetic image, derived from the aerial panchromatic one.
See https://grass.osgeo.org/grass74/manuals/r.texture.html.

Nikos

Thanks you for the answers!
The aerial photos classification is a common problem. In particular when there is a need to classify small elements.

I have alway done a manual classification but now I need to eleborate many photos to distinguish the forest from the agricultural areas. So, I will try with different modules and, if doesn’t work, I will use GRASS direclty.

···

2018-07-05 8:17 GMT+02:00 Nikos Alexandris <nik@nikosalexandris.net>:

Michele Zurlo:

[…]

I use this e-mail also to make a question, during a work I tried to
classify a pancromatic aerial image using an unsupervised approach.
Running i.cluster it gave me an error indicating that it needs more
than two classes. What I missed?

Dear Michele, the algorithm behind i.cluster does not work with less
than two input images. See also:
https://trac.osgeo.org/grass/ticket/1908.

Kind of a common practice, is to use another input derived from the first.
I.e., some synthetic image, derived from the aerial panchromatic one.
See https://grass.osgeo.org/grass74/manuals/r.texture.html.

Nikos

Thank you for your answer. I will add a texture channel to run i.cluster.

Only a curiosity I know that i.cluster is an old way to approach to aerial images, but in the future will be there the possibility to use the module even with an image?
Sometimes to have this image cluster could be very useful.

Thank you again

Michele

* Michele Zurlo <michele.zurlo@unimi.it> [2018-07-06 07:27:29 +0200]:

Thank you for your answer. I will add a texture channel to run i.cluster.

I recall that I naively have tried to "abuse" the module by using the
same input image twice!

Only a curiosity I know that i.cluster is an old way to approach to
aerial images, but in the future will be there the possibility to use
the module even with an image?
Sometimes to have this image cluster could be very useful.

The input can be any set of raster/image. It's a k-means based
clustering algorithm after all and the classification is then performed
with `i.maxlik`.

Michele, if your goal is to get "segments", then classify these, why not
work with `i.segment` or/and `/addons/i.superpixels.slic`?

I guess you already know all this. I hope the discussion stimulates
a productive brainstorming.

Cheers, Nikos

Hi Nikos I generally use the i.segment module because I’m working in a natural context management. I know also the i.superpixels.slic but I’ve not tried it yet. Indeed it could be a good idea to compare the results of both modules in different kind of environments.

About the i.cluster I remember that I tried to “abuse” the module but with me it doesn’t work :wink:

My need of run i.cluster was due for a little work for a public administration. My idea was to realize a small report comparing pixel and object based approach, in older aerial image classification, adding different kind of features (radiometric, texture and so on).

Thank you, I hope so too.

Michele