Extraction evi values for multiple points

  • Short description: I want to extract the EVI values for specific points. At the end I need a table with multiple points with a separate column specifying its EVI values. I have create EVI for sentinel data. and I have ground points as geojson file.
  • Specific request/idea/comment: Can anyone suggest to extract evi value and merge it with ground points. What kind of processes are possible?

To elaborate a bit:
For the purpose of developing machine learning workflows (like the example Crop Classification) it would be really useful to specify point locations and extract the Imagery Values at these locations. If we use the “filter_spatial” process with a multipoint geojson we are able to get one datacube (with one pixel) per point and download them as tiff or netcdf. This is not feasable for more than a few points. Is there a way to get a csv which looks like this:

| Point ID | Lat | Lon | Band 1 | Band 2 | … |

Hi @vinorechika39 and @mludwig2 .

We are currently improving the aggregate_spatial implementation, which should be enough to handle your request. Additionally, we are working on specific machine learning processes, you can have a look at the ongoing discussions here:

As soon as we will have some updates we will notify you.

Apart from this, I know that at VITO they were using also JSON as output format for similar scenarios. @jeroen.dries do you have an example for this?

VITO also supports CSV export, but I’m not sure right now what the exported file would look like. @mludwig2 @vinorechika39 Could you provide an example process graph so that we can experiment a bit with it and see whether we can find a solution?

Here is an example processing graph. Note that it uses small polygons instead of points since a while back filter_spatial did not work with points (but should now afaik).

Maybe one more thought about machine learning in openEO from an R User perspective:
My “dream workflow” would be the following:

  1. Get predictor data via openEO backend at specified locations (basically the request of this thread)
  2. Feature engineering / selection, model training, cross validation, evaluation etc. on my local machine using an existing machine learning framework (e.g. caret in R or sklearn in python)
  3. “Upload” the model to openEO to make large scale predictions.

This way, established machine learning techniques and models could be handled without implementing them all in the backend while at the same time utilizing the cloud based imagery computations.

2 Likes

Hi all,
apologies for the delay, but aggregate_spatial on points is something we recently started to support on dev.
So if you try against openeo-dev.vito.be, it might already work. The feature will probably become available in production this week.
Note that, as a workaround, we ourselves used to convert points into small, pixel-sized, polygons.

The workflow you describe should be fully supported. For Python, we are building a client library around it for additional convenience over here:

Jeroen

Hi all,
thanks for all the suggestions!
I tried an aggregate_spatial with four small polygons but run into this error.

NotImplementedError(“unsupported result type {r}”.format(r=type(result))) NotImplementedError: unsupported result type <class ‘openeo_driver.save_result.AggregatePolygonSpatialResult’

Is this really a “not implemented issue” or am I still doing something wrong?
The process graph: openEO extract process graph - Pastebin.com

All the best
Marvin

Could it be that you reduced the time dimension?
In that case, it’s something that’s also about to get fixed normally (or somewhere in our deployment pipeline), but I’ll double check to see if this is not something else.

Related issue: