Drone photogrammetry

Hi everyone,

Recently I have tinkered with the creation of ortographic maps and 3d models created using opendronemap.

I see I can add a layer with my own ortophotos, although I have not yet tried it.

Besides this, there are so many other ways in which this could be useful.

I am thinking on a specific use case of mapping in loco erosions and road maintence points with the Field Kit app and latter generate a 3d animation of a flyby over those points. So I could easily create video briefings that I could share with other peoples that would work in this problem with me.

I know much of this is outside the realm of FarmOs, but I would like to hear about the workflows others are using to integrate drones with farmOs…

2 Likes

Sounds like you are doing some interesting things with opendronemap.
I am using a drone to take aerial pictures of the fields every 2-5 months to check on weed patches. I would love to be able to overlay the pictures of the complete field (small ones) and see the development.
Additionally it would be great to gather information on water and nutrient availability in different field regions.

1 Like

This is something I’ve always been interested in too @Lars! Seeing aerial imagery taken periodically, with some kind of “timeline slider” to watch it change (tied into https://github.com/farmOS/farmOS-map/issues/53 perhaps?)

It wouldn’t be too complicated, code-wise! farmOS maps are based on OpenLayers, and adding layers to the map is easy. The main thing missing in farmOS is the actual hosting of the data layers. But spin up an instance of GeoServer / MapServer and that should be possible! Someone should try this! :wink:

2 Likes

Wanted to quickly chime in here! I’m helping a group integrate drone & satellite imagery from a self-hosted GeoServer into farmOS. We have a form in farmOS that is used to record activity logs (associated with the relevant areas) with info about the drone flight in the log’s data field. This basically means saving a “layer name” that’s used to request the WMS imagery layers from GeoServer.

Then when loading an area page, if there are any of these “imagery activity” logs that happened in the area, we add the imagery layers to the map. It works quite well! I haven’t done much work on the GeoServer side of things, but it seems fairly easy to set up. There is additional work needed for processing the drone imagery (and free Sentinel 2 imagery) before it is added to GeoServer - I’m not familiar with that process either.

I would love to be able to overlay the pictures of the complete field (small ones) and see the development.

Once you have multiple images added to the map this is quite possible. You can toggle the layer visibility to change which is “on top” and effectively see changes over time. A “timeline slider” would be the next best thing!

This has all worked well for farmOS 1.0 but I’m considering creating a first-class “imagery asset” for farmOS 2.0. This would allow for a more structured data model - logs and/or assets could have dedicated fields for referencing Imagery Assets, and the Imagery Asset could have fields for the values it needs (geoserver URL, authentication token/credentials, layer name, etc.) A nice feature this would provide is “archiving” imagery assets once they don’t need to be displayed in the map.

3 Likes

@paul121 thank you very much for your reply. It sounds like exactly what I would like to do. Especially the self hosted GeoServer sounds very interesting. I looked at the link provided by @mstenta (thank you) and wonder how difficult that would be.

For those of you interested in Sentinal 2 images I can recommend Earth Engine Apps Online . The slider in this case is not that useful for comparisons in fields (the layer option you mentioned would be better)

It would be great to have this added to farmOS 2.0 but would also be useful in the meantime (winter project for me :slightly_smiling_face:).

3 Likes

Just to chime in on this. I have been very interesting in getting drone maps into farmOS. I use opendronemaps for my stitching and have webODM send the finished files to openaerialmap.org. I know almost nothing about map servers but was able to copy the Norwegian map layer farmOS module and just changing out a few things including the link to the TMS link form openairealmaps. Worked perfectly! No need to host my own map server this way.

2 Likes

Very cool @BOTLFarm!! Glad you were able to figure that out. One thing to note though, a map/imagery server is still required :wink:

I recently found about about the Cloud Optimized Geotiff (COG) project. It allows a somewhat specialized geotiff file served by a standard file server to behave like a map server! I did a little bit of testing and was able to load a COG file from my farmOS server into a JS map - this is really cool because it means farmOS could be your imagery server, too!

It also allows for some cool features like the COG file being uploaded in the files of a “Drone flight” Activity log. I’m hoping to explore this further as I get the chance… pondering the concept of an “Imagery” asset type to help accommodate some of these features. Perhaps ways to visualize your library of imagery assets, compare over time, etc.

The tricky part is converting the imagery into a COG. But there are a good number of scripts/tools to do this and it is becoming more supported. A cool example is the Sentinel2 COG dataset on AWS: https://www.element84.com/blog/sentinel-2-cloud-optimized-geotiffs-now-available-on-aws-registry-of-open-data

3 Likes

Yes @paul121 it still requires a map server.

I guess what I was getting at is I did not have to set one up myself. I run farmOS on a shared server with limited aces to what I can do on the server. I was unable to find a way to host my own map server. OpenAerialMap was a convenient way to get my map images hosted. The main caveat to using this is the images become openly licensed for anyone to view. Not an issue for me.

The COG sound great with the ability to run them directly in farmOS. Looking forward to playing with this some.

2 Likes

We use TileServer to host ours, it is php based, so runs off of your standard web server nicely.

1 Like

Hi, I am interested in your approach, can you share how to do it.

1 Like

Hey,

Not sure which aspect you were interested in. For the photo stitching I use webODM. Once I have a stitched file I upload the map file to OpenAerialMaps. This can be done right form webODM. From there you can copy the TMS url of your map.

In farmOS 7.x I was able to modify the Norwegian Map Module and directly replace TMS url with the one from the OpenAerialMaps. This worked really well in 7.x but I have not explored a way to do this in the new version of farmOS 2.x.

Hopefully this gets you pointed in the right direction. If anyone knows of a simple way to get these maps in 2.x I would be interested.

1 Like

The farm_map_no module doesn’t have a 2.x version AFAIK, but I’ve updated my farm_map_sjc module for 2.x already so that might serve as a useful example of how to make a module for 2.x that adds base layers.

2 Likes