Agriculture: WebODM + FIELDimageR

Hi everyone,

I am super happy to join the OpenDroneMap community with FIELDimageR. My name is Filipe Matias and my research focus is plant science and agriculture. I’ve been using drone images to extract data from the agriculture field and applying this information in plant breeding. FIELDimageR is a compilation of functions in R language to analyze pos-orthomosaicing images.

WebODM and FIELDimageR is a perfect fit to develop an open-source pipeline in agriculture features. While WebODM easily and intuitively allows to build orthomosaics, FIELDimageR is used on the following steps of image analysis, making them a perfect combination. The pipeline proposed in FIEDLimageR starts by preparing the image: (i) cropping, (ii) removing soil and weeds, and (iii) rotating. This package also builds a plot shapefile in order to extract information for each plot, which can be used to evaluate different wavelengths, vegetation indices, stand count, canopy percentage, and plant height.

Please join me in this adventure with suggestions and feedback toward the development of this tool. All ideas are super welcome. This is an open channel to talk about remote sensing applied to agriculture.

Thank you…!!!

ODM_FIELDimageR_New

4 Likes

Hi, Filipe and welcome!

Super glad to see your project, and your contributions here!

As for suggestions, do you think it would be possible to integrate FIELDImageR into WebODM as a plugin using the existing API?

Following up upon that, have you tested it with the R Processing Provider Plugin for QGIS?

And beyond that, any interest in making a native QGIS Plugin or Processing Algorithm so that analyses could be modeled/scripted inside of QGIS?

As for the indicies used within FIELDImageR, where do they come from? Something like IndexDB?

Thanks!

Welcome to the community @filipematias :hand: !

From here: https://github.com/OpenDroneMap/FIELDimageR/blob/master/inst/extdata/Indices.txt

1 Like

Welcome! This is a fantastic project.

1 Like

Hi @Saijin_Naib,
Thank you for contacting me. I will try to address your questions below:

Q1: As for suggestions, do you think it would be possible to integrate FIELDImageR into WebODM as a plugin using the existing API?
A1: That’s a really good question. I am not sure, because although these tools complement each other they are independent and have different applications. But it’s something to think about.

Q2: Have you tested it with the R Processing Provider Plugin for QGIS?
A2: Unfortunately, I don’t have experience with R Processing Provider Plugin for QGIS. I will check it and let you know, but feel free to evaluate and share it with us.

Q3: And beyond that, any interest in making a native QGIS Plugin or Processing Algorithm so that analyses could be modeled/scripted inside of QGIS?
A3: That’s an amazing suggestion. I thought this when I was developing the pipeline but I feel more comfortable coding in R language. Please, contact me by private msg or email to schedule a Skype to talk better about that. Thank you…!!!

Q4: As for the indices used within FIELDImageR, where do they come from? Something like IndexDB?
A4: They are indices related to agriculture and plant physiology. Please, see more information and references in FIELDimageR pipeline at https://github.com/OpenDroneMap/FIELDimageR#P6

Let me know if you have more questions and suggestions.
Best,
Filipe Matias

2 Likes

Hello to all,
@filipematias Filipe first thank you for your project and i have a question.
When i tried to rotate the image of the field with the plots, rows of the those plots twists in irregular way, so can you help me about it?
I attached image before and after image rotation with your code.Rotation
Best,
Pedja

Hi @Pedja,

Thank you for asking.

The function fieldRotate() has many arguments that can help you:

  1. “clockwise” which if it is TRUE the rotation will be at clockwise direction.
  2. “h” if it is TRUE, the drawn line will be at horizontal, if FALSE (90-theta).

Please, play around with these arguments and let me know if it works. Also, type in your R console help(fieldRotate) for more information.

Best,
Filipe Matias

4 Likes

Can you count trees with field image r and odm? how can i do it?
thanks

Hi @Peke, thank you for asking.

Yes, you can count trees. First, you should build a mask with the function fieldMask() and then use the output to count your trees with function fieldCount(). Please see more information in FIELDimageR tutorial at https://github.com/OpenDroneMap/FIELDimageR#P7.

3 Likes

Thanks for answering! Unfortunately for me I’m moderatly illiterate in informatics… :frowning: i could barely get webodm running with docker… i already installed r studio and r but i got stock running the field mapp R.
Is there a video tutorial on how appropriately install the required components and programs and how to run it?? Thanks again!! :slight_smile: i need to count 100 hectares of lemon trees. I’m actually having problems with webodm mapping 2300 images it will result in error code 1 or child returned 137 error… i have 24g ram and i5 processor with 300g allocated for docker container. But i already processed with no problems in this same computer the orthomosaic with pix4d free trial version.!!

1 Like

@Peke did you try to follow the instructions in the readme? Where did you get stuck?

1 Like

Hi @filipematias,
I tried everything and again I get the same mistake. Plant rows on my image are constantly distorted and because of that I cant create a grid of my plots with your function field Shape.
Is there any way to rotate the image in the right way, maybe with some other function?

Best,

Pedja

Congratulations for the development of these orthophoto processing tools.**
I would like to know how can i calculate an NDVI when we have an orthophoto with three bands (Red, Green et Blue)?**
Thank you for your help

I’m closing this thread, since it’s getting a bit chaotic.

If you have questions, please open separate threads. :pray:

Hi @Pedja,

You can use one of the two options:

NewMosaic<-fieldRotate(mosaic, clockwise = F) # Select 2 points

or

NewMosaic<-fieldRotate(mosaic, theta = 11.4) # Do not need select points, because you already have the theta.

Best,
Filipe

1 Like