[GRASS-user] detecting olive trees from satellite imagery

Dear All,

I have to develop a classifier to detect olive tree canopies using Geoeye-1 images. I had thought of segmentation and indeed the segmentation is capable of separating and detecting canopies. However I need now a classifier that retains only the segments that represent olive trees. The range of values assigned to canopies is quite high and doesn’t follow a particular order, hence i haven’t found an obvious mapcalc rule so far. However, I have been reasoning about the particular pattern that characterise olive orchards: olive trees are obviously round, disposed on regular grids, at constant distance to each other, and the canopies, although having different sizes (within a certain range), are almost always well separated from each other. I am now looking to a way to translate this concept into operational rule. I’m sure that this is nothing new, so I was wondering if you could point me relevant literature and existing tools to put this in practice.

Thank you in advance for any hints

Best regards,

Dr. Margherita DI LEO
Scientific / technical project officer

European Commission - DG JRC
Institute for Environment and Sustainability (IES)
Via Fermi, 2749
I-21027 Ispra (VA) - Italy - TP 261

Tel. +39 0332 78 3600
margherita.di-leo@jrc.ec.europa.eu

Disclaimer: The views expressed are purely those of the writer and may not in any circumstance be regarded as stating an official position of the European Commission.

On Wed, 29 Oct 2014, Margherita Di Leo wrote:

I have to develop a classifier to detect olive tree canopies using Geoeye-1
images.

Margherita,

   Is the reflected color spectrum of olive trees different from vegetation
that would normally be expected outside the orchards?

   If so, I would suggest a training set obtained by visiting a few olive
orchards and recording the geographic coordinates of the center as well as
an average radius (or the sides of a rectangular orchard). The satellite
band values for those location can then be used to classify vegetation and
find other olive orchards.

   Of course, you've probably already done this, and it's been about 30 years
since I last worked with satellite imagery so I'm not current on the
technologies.

Rich

Rich,

···

On Wed, Oct 29, 2014 at 3:35 PM, Rich Shepard <rshepard@appl-ecosys.com> wrote:

Is the reflected color spectrum of olive trees different from vegetation
that would normally be expected outside the orchards?

If so, I would suggest a training set obtained by visiting a few olive
orchards and recording the geographic coordinates of the center as well as
an average radius (or the sides of a rectangular orchard). The satellite
band values for those location can then be used to classify vegetation and
find other olive orchards.

Of course, you’ve probably already done this, and it’s been about 30 years
since I last worked with satellite imagery so I’m not current on the
technologies.

Thank you very much for your hint. I should have mentioned that I made tentatives also in this direction. Unfortunately, so far this approach didn’t allow me to tell olive trees from other vegetation types.

Best regards,

Dr. Margherita DI LEO
Scientific / technical project officer

European Commission - DG JRC
Institute for Environment and Sustainability (IES)
Via Fermi, 2749
I-21027 Ispra (VA) - Italy - TP 261

Tel. +39 0332 78 3600
margherita.di-leo@jrc.ec.europa.eu

Disclaimer: The views expressed are purely those of the writer and may not in any circumstance be regarded as stating an official position of the European Commission.

On Wed, 29 Oct 2014, Margherita Di Leo wrote:

Thank you very much for your hint. I should have mentioned that I made
tentatives also in this direction. Unfortunately, so far this approach
didn't allow me to tell olive trees from other vegetation types.

Margherita,

   As I wrote, it's been a very long time since I calculated NDVIs to
classify vegetation types from remotely sensed imagery. However, I vaguely
recall being able to pick bands (satellite imagery) or RGB colors (aerial
photographic imagery) so as to distinguish the vegetation of interest.

   Are there other factors (nominal such as season or province; ratio such as
aspect, size, or elevation) that can be used as a mask to reduce the
vegetational clutter?

Rich

On 29/10/14 15:05, Margherita Di Leo wrote:

Dear All,

I have to develop a classifier to detect olive tree canopies using
Geoeye-1 images. I had thought of segmentation and indeed the
segmentation is capable of separating and detecting canopies. However I
need now a classifier that retains only the segments that represent
olive trees. The range of values assigned to canopies is quite high and
doesn't follow a particular order, hence i haven't found an obvious
mapcalc rule so far. However, I have been reasoning about the particular
pattern that characterise olive orchards: olive trees are obviously
round, disposed on regular grids, at constant distance to each other,
and the canopies, although having different sizes (within a certain
range), are almost always well separated from each other. I am now
looking to a way to translate this concept into operational rule. I'm
sure that this is nothing new, so I was wondering if you could point me
relevant literature and existing tools to put this in practice.

Thank you in advance for any hints

Have you tried integrating variables concerning shape and size (cf some of the v.to.db variables), texture (r.texture - unfortunately GRASS does not propose texture measures for arbitrary polygons, but only for fixed-size windows around pixels, but you can use average texture measures within your segmentation polygons).

You should probably check Pietro's v.class.ml in addons [1]. You can also look at the sample script I sent to the grass-users list a while ago [2].

Just brainstorming here: maybe the r.li.* modules can be (ab)used for such as task ?

[1] https://trac.osgeo.org/grass/browser/grass-addons/grass7/vector/v.class.ml
[2] http://lists.osgeo.org/pipermail/grass-user/2013-October/069189.html

Moritz,

···

On Wed, Oct 29, 2014 at 4:51 PM, Moritz Lennert <mlennert@club.worldonline.be> wrote:

Have you tried integrating variables concerning shape and size (cf some of the v.to.db variables), texture (r.texture - unfortunately GRASS does not propose texture measures for arbitrary polygons, but only for fixed-size windows around pixels, but you can use average texture measures within your segmentation polygons).

You should probably check Pietro’s v.class.ml in addons [1]. You can also look at the sample script I sent to the grass-users list a while ago [2].

Just brainstorming here: maybe the r.li.* modules can be (ab)used for such as task ?

[1] https://trac.osgeo.org/grass/browser/grass-addons/grass7/vector/v.class.ml
[2] http://lists.osgeo.org/pipermail/grass-user/2013-October/069189.html

Fantastic! Thank you for all your precious hints! I’ll let you know how it goes. Also, kudos to Pietro for his v.class.ml (he should advertise more his marvellous tools), that implements shikit [3], I was just reading this example of application [4] and looks promising for my case…

Thank you!

[3] http://scikit-learn.org/
[4] http://blog.remotesensing.io/2014/04/counting-atolls-of-the-maldives/#more

Best regards,

Dr. Margherita DI LEO
Scientific / technical project officer

European Commission - DG JRC
Institute for Environment and Sustainability (IES)
Via Fermi, 2749
I-21027 Ispra (VA) - Italy - TP 261

Tel. +39 0332 78 3600
margherita.di-leo@jrc.ec.europa.eu

Disclaimer: The views expressed are purely those of the writer and may not in any circumstance be regarded as stating an official position of the European Commission.