Smathermather's Weblog

Remote Sensing, GIS, Ecology, and Oddball Techniques

Archive for the ‘FOSS4G 2014’ Category

OpenDroneMap — Humanitarian uses of outputs

Posted by smathermather on January 12, 2015

OpenDroneMap Logo

OpenDroneMap

In response to a recent query about OpenDroneMap, I’m writing a quick summary here, and then a brief write-up on how it could relate to humanitarian response / crisis mapping applications, as discussed in my Deep Dive session at International Conference of Crisis Mappers in New York, this past November.  Ahem. The summary:

OpenDroneMap: Open Source Toolkit for processing Civilian Drone Imagery

“OpenDroneMap is an Open Source Toolkit for processing Civilian Drone Imagery. As small unmanned aerial systems have dropped in price and become readily affordable, software for making meaningful geographic data from civilian drones has not. Until now.

“OpenDroneMap is fully Free and Open Source postprocessing tool for highly overlapping unreferenced imagery, turning unstructured data (simple photos) into structured geographic data such as colorized point clouds, digital surface models, textured digital surface models, and highly detailed orthophotography.

The project can be found at http://opendronemap.github.io/odm/.”

So, cool stuff. But what does that mean? What do we really get at the end of the day, so to speak, at least within the context of crisis response. To answer this question, I’ll divide this into two categories — goodies we get now and goodies we will get later as the project matures.

Products we get now from OpenDroneMap:

  1. Point Cloud
  2. Textured Mesh
  3. Up to 1-2cm (or so) orthophotos

What can we do with 2cm imagery in the crisis response context? My colleagues at ICCM addressed this question:

  • Structural Mapping
  • Logistics and Supply Planning
  • Count People — IDPs, Protests
  • Identify Equipment / Weaponry
  • Finding people (search and rescue)
  • Finding Animals (conservation)

Products we get later from OpenDroneMap (as the project matures and adds features):

As to future products from the toolchain we will derive the following:

  • 4cm Terrain / Surface Models
  • Off-Nadir Imagery

Again, drawing from the brainstorming at ICCM:

4cm Terrain / Surface Models yield us:

  • Off-road route planning
  • Hydrology / innundation estimation
  • Damage assessment — rubble volume estimation
  • Agricultural Planning

Off-Nadir Imagery:

  • Forensics
  • Damage Assessment (useful for building especially which often won’t show damage on roof)
  • Context for video footage

Addendum:

The UAViators site lists the following (complementary and otherwise related to the above) uses of UAVs to support humanitarian efforts:

Together, these teams work collaborate to facilitate various uses of UAVs to support humanitarian efforts. These include:   

  • Rapid assessment of disaster damage to building infrastructure
  • Rapid assessment of powerlines and other electricity infrastructure
  • Identify usable roads and transportation infrastructure
  • Identify useful areas for humantiarians to set up base camp
  • Aerial support for road clearance activities
  • Estimate population displacement
  • Identify temporary shelters
  • Identify best locations to set up new temporary shelters
  • Survey impact of disaster on agriculture, farmland
  • Search and Rescue
  • Identifying whether radio transmitters/comms on the ground still work

Posted in 3D, Bundler, Camera Calibration, Conference, FOSS4G 2014, Image Processing, International Conference of Crisis Mappers, OpenDroneMap, Optics, Photogrammetry, PMVS | Tagged: , | Leave a Comment »

OpenDroneMap — Orthophotos and Textured Mesh

Posted by smathermather on December 22, 2014

Textured mesh of Langley Dataset from Aaron Racicot

Textured mesh of Langley Dataset from Aaron Racicot

Good news to report, though I haven’t finished my own testing yet… but OpenDroneMap, which previously would just create point clouds from drone images, now also produces:

  1. Meshes!
  2. Textured meshes!
  3. Georeferenced textured meshes (if the exif data has geographic coordinates)
  4. Georeferenced orthophotos! (if the exif data has geographic coordinates)

Now, I’d like those ifs to go away, but that requires a bit of thoughtful interface work. In the mean time, give it a whirl on your data.

Work left to do:

  • Refine processing chain
  • Allow for input of GCPs for images without GPS in their exif
  • Blending / brightness correction, etc. of input images
  • Digital surface model output

See this branch on github for the whole package : https://github.com/OpenDroneMap/OpenDroneMap. A special thanks to Spotscale (http://www.spotscale.com/) for undertaking and executing this work.

(Just integrated with the main branch January 20, 2015)

These are Spotscale’s screenshots. I’m re-running on my own test machine for validation as we speak (so to speak):

Textured mesh of Seneca test dataset (flown by Fred Judson and others of ODOT with Sensefly Swinglet). Ignore curves-- they are all in the no-data areas.

Textured mesh of Seneca test dataset (flown by Fred Judson and others of ODOT with Sensefly Swinglet). Ignore curves– they are all in the no-data areas.

odm_orthphoto

Orthophoto of Seneca test dataset (flown by Fred Judson and others of ODOT with Sensefly Swinglet).

 

Posted in 3D, Bundler, Camera Calibration, Conference, FOSS4G, FOSS4G 2014, Image Processing, OpenDroneMap, Optics, Photogrammetry, PMVS | 3 Comments »

OpenDroneMap — The MOVIE

Posted by smathermather on September 22, 2014

Apparently travelling for 20 days straight back and forth through 3 time zones across 13 hours of time difference  makes me calmer, more rational, and a better presenter than normal. All 27 minutes and 35 seconds.

And then don’t forget to check out the rest: http://vimeo.com/foss4g

Posted in 3D, Bundler, Camera Calibration, Conference, FOSS4G, FOSS4G 2014, Image Processing, OpenDroneMap, Optics, Photogrammetry, PMVS | Tagged: , , , , , | Leave a Comment »

OpenDroneMap and the art of sneakernet packet making

Posted by smathermather on September 20, 2014

Current scene in the smathermather household — OpenDroneMap sneakernet packets being produced for training 53 people in OpenDroneMap on Monday.
image

(Yes, I’m using rsync, not tar. Old dog. New tricks.)

edit: let’s throw some code up there, ugly though it may be:


START=$(date +%s) && cd /media/user/USB\ DISK/ && rsync -avz /home/user/Desktop/* . && cd .. && \
END=$(date +%s) && DIFF=$(( $END - $START )) && echo && echo "Processing took $DIFF seconds" & \
START=$(date +%s) && cd /media/user/USB\ DISK1/ && rsync -avz /home/user/Desktop/* . && cd .. && \
END=$(date +%s) && DIFF=$(( $END - $START )) && echo && echo "Processing took $DIFF seconds" && \
cd .. &

 

Posted in 3D, Bundler, Camera Calibration, Conference, FOSS4G, FOSS4G 2014, Image Processing, OpenDroneMap, Optics, Photogrammetry, PMVS | Tagged: , , , , , | 6 Comments »

OpenDroneMap — Art and Science

Posted by smathermather on September 16, 2014

I consider myself an artist and scientist. I’ll confess I have let the art go fallow some in recent years, but these are two sides of one coin. If you like either, and especially if you like both, you should check out Tobias Research.

I met Michele at FOSS4G, where from the moment she saw my presentation on OpenDroneMap to using it to create a point cloud was a few short hours. I sat with Michele and her partner in crime, Alex, for a little while walking them through the (until then) undocumented steps of creating a mesh and texturing it inside MeshLab (to be fair to MeshLab, there’s plenty of docs on this, but there were none yet within the OpenDroneMap repo.

So, here’s some quick shots of her Kite Aerial Photography images for studying plant / dune dynamics processed through OpenDroneMap. Stunning kite aerial photography (KAP) work. The groundwork for great and beautiful science:

 

 

Posted in 3D, Bundler, Camera Calibration, Conference, FOSS4G, FOSS4G 2014, Image Processing, OpenDroneMap, OpenDroneMap, Optics, Photogrammetry, PMVS | Tagged: , , , , , | Leave a Comment »

Null Archipelago — Null Islands for All Coordinate Reference Systems — revision

Posted by smathermather on September 10, 2014

Ok, I misunderstood… . The Null Island Archipelago is actually meant to be just datum based, i.e. not the 0,0 of every projection, but the 0,0 of every null lat/lon.

CREATE OR REPLACE FUNCTION where_in_the_null (crs integer) RETURNS
geometry AS $$

WITH null_island AS (
	SELECT ST_MakePoint(0,0) AS geom
	),
null_island_crs AS (
	SELECT ST_SetSRID(geom, crs) AS geom FROM null_island
)
SELECT ST_Transform(geom, 4326) FROM null_island_crs

---

DROP TABLE IF EXISTS null_archipelago;

CREATE TABLE null_archipelago AS
SELECT srid, where_in_the_null(auth_srid) FROM spatial_ref_sys
WHERE proj4text LIKE '%longlat%';

null_archipelago_real

 

 

@mizmay Someone suggested & @schuyler tweeted (who? please remind me!) a few weeks ago that each coordinate reference system (CRS) has it’s own Null Island, and therefore there must be a Null Archipelago. This got me thinking — what does that look like?

Enter PostGIS. We’ll create a function, that given an EPSG code will return the 0,0 location for that reference system in the real world. It turns out, this is quite easy.


CREATE OR REPLACE FUNCTION where_in_the_null (crs integer) RETURNS
geometry AS $$

WITH null_island AS (
	SELECT ST_MakePoint(0,0) AS geom
	),
null_island_crs AS (
	SELECT ST_SetSRID(geom, crs) AS geom FROM null_island
)
SELECT ST_Transform(geom, 4326) FROM null_island_crs
 
$$ LANGUAGE SQL VOLATILE;


So, now we need some EPSG codes. To that end, we have one in any PostGIS database.


CREATE TABLE null_archipelago AS
SELECT srid, where_in_the_null(auth_srid) FROM spatial_ref_sys
	WHERE auth_srid > 2000 AND auth_srid < 4904;


Map showing the null archipelago overlayed on the Stamen Watercolor Map

Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.

Posted in Conferences, FOSS4G, FOSS4G 2014 | Tagged: , , | Leave a Comment »

Null Archipelago — Null Islands for All Coordinate Reference Systems

Posted by smathermather on September 10, 2014

@mizmay Someone suggested & @schuyler tweeted (who? please remind me!) a few weeks ago that each coordinate reference system (CRS) has it’s own Null Island, and therefore there must be a Null Archipelago. This got me thinking — what does that look like?

Enter PostGIS. We’ll create a function, that given an EPSG code will return the 0,0 location for that reference system in the real world. It turns out, this is quite easy.

CREATE OR REPLACE FUNCTION where_in_the_null (crs integer) RETURNS
geometry AS $$

WITH null_island AS (
	SELECT ST_MakePoint(0,0) AS geom
	),
null_island_crs AS (
	SELECT ST_SetSRID(geom, crs) AS geom FROM null_island
)
SELECT ST_Transform(geom, 4326) FROM null_island_crs
 
$$ LANGUAGE SQL VOLATILE;

So, now we need some EPSG codes. To that end, we have one in any PostGIS database.

CREATE TABLE null_archipelago AS
SELECT srid, where_in_the_null(auth_srid) FROM spatial_ref_sys
	WHERE auth_srid > 2000 AND auth_srid < 4904;

Map showing the null archipelago overlayed on the Stamen Watercolor Map

Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.

Posted in Conferences, FOSS4G, FOSS4G 2014 | Tagged: , , | 2 Comments »

FOSS as Folk

Posted by smathermather on September 10, 2014

Let us expand a bit on the theme of Free and Open Source Software as _Folk_ software development, i. e. of the people, for the people, and by the people. When I put together my presentation for FOSS4G Korea 2014, I had elements of this theme in it. I expected I would talk about the relationship between governance and open source software in the context of legitimacy — that one informs the legitimacy of the other, as both operate in that shared space we might call commons and derive their legitimacy from that commons.

As I spoke with Sanghee Shin and other OSGeo folks when I arrived, the concepts really crystalized: Free and Open Source Software is folk software, enabled to be built due to the connectivity available by the medium of the internet, by creators with common purpose and common love. And as _folk_ software, not only will development and support of Free and Open Source Geospatial sofware lend legitimacy to the South Korea’s central government’s initiative in software, but that as commons-based peer production, open source software becomes an open expression of Korean culture, Korean ingenuity, and Korea’s contribution to the broader GeoSpatial world.

From the outset, what I was attempting with the speech was to combine Paul Ramsey’s diagram for commons-based peer production (Love of common interest + inexpensive tools for production + internet = commons-based peer production, i.e. Wikipedia, OpenStreetMap, FOSS software, etc.) with Kate Chapman’s call to action: Geo for All, a call for the widening and deepening of the pool of contributors and users of GeoSpatial data and software. The concept of FOSS as Folk happens to do just this thing, and hints at some of the challenges before us in making FOSS accessible.

But, the question of _folk_ explicitly gives us additional conditions and context for creating an inclusive community. This touches back to Kate Chapman’s call for geo4all — understanding FOSS as Folk explicitly calls us to balance simplicity and elaborateness (석가탑 다보탑), and thus helps us be inclusive, but also gives us traditions and context for implementation.

Let us tie this all together in a sentence or two: FOSS is Folk Software, Folk has legitimacy through inclusive process similar to democratic society, and Folk software can draw on other Folk traditions to achieve the balance of simplicity and elaborativeness that results in software and tools that are inclusive and effective. Finally, looking to Governance and Open Source, the work of South Korea in supporting FOSS for geospatial and initiatives like Code for America, FOSS and democratic processes can draw legitimacy from each other by resourcing the same Commons space.

image

Posted in Conferences, FOSS4G, FOSS4G 2014, FOSS4G Korea | Tagged: , , | 2 Comments »