Skip to content

Instantly share code, notes, and snippets.


Stephen Mather smathermather

View GitHub Profile
View ODM - HIF

Installing and configuring ODM components within the POSM base system; Determining approximate limitations on the number of source photos that can be handled by standard POSM hardware

Raw image upload (unprocessed images sourced from a sUAS) using a web form and/or fileshare; Copying / uploading post-processed GeoTIFFs to POSM using a web form and/or fileshare

GeoTIFF processing (externally sourced scenes and/or output from ODM):

  • Chunking input images into Web Mercator tiles at the TMS zoom level most closely corresponding to its native resolution
  • Pyramiding (downsampling and merging) of generated tiles to produce tiles for all appropriate zooms

Simple web interface for managing processing pipelines:

  • Display progress in a web view while processing proceeds
View postgis2.2_9.5_multiple_indexes_problem.sql
DROP TABLE IF EXISTS regions_medial_subset CASCADE;
CREATE TABLE regions_medial_subset AS
ST_ApproximateMedialAxis(ST_Buffer(geom, 0)) AS geom,
scalerank, featurecla, "name", namealt, region, subregion
FROM regions_polys_subset
"name" != 'AUSTRALIA' AND "name" != 'NORTH AMERICA' AND
"name" != 'SOUTH AMERICA' AND "name" != 'EUROPE' AND
smathermather /
Last active Nov 9, 2015
OpenDroneMap -- The bigger vision


Take OpenDroneMap from simple toolchain to an online processing tool + open aerial dataset. This would be distinct from and complementary to OpenAerialMap:

  1. Explicitly engage and provide a platform for drone enthusiasts to contribute imagery in return for processing services.
  2. Address and serve:
  • Aerial imagery
  • Point clouds
  • Surface models
  • Terrain models
smathermather /
Last active Aug 29, 2015
Thoughts on OAM, ODM, and MapKnitter

Integration points for ODM / OAM:

  • First step -- have ODM write OAM/OIM metadata and GeoTiff
  • Second step -- write wrapper to auto push to OAM catalog

Integration points for ODM MapKnitter

  • Adapt SIFT output for generic 2D autostitch
  • Use MapKnitter to approximately place identifiable photos and use that in optimization of ODM
smathermather / regexp_split
Created Feb 13, 2015
regexp split to table
View regexp_split
CREATE TABLE nr.oram_metrics AS
SELECT oram_id, 'm1_wetland_area'::text AS metric, regexp_split_to_table(m1_wetland_area, ',')::text AS selection
FROM nr.cm_oram_data
SELECT oram_id, 'm2a_upland_buffer_width'::text AS metric, regexp_split_to_table(m2a_upland_buffer_width, ',')::text AS selection
FROM nr.cm_oram_data;
View Centennial Webby


  • Web & Social Media
  • Video
  • Book
  • Events
  • Gala
  • Money

Website types/ Ideas

  • Timelines
View Regional GIS

Project scope:

  • Assessment of existing hardware, software, and oganizational capacity
  • Review of 5 existin and costs structures
  • Develop ROI
  • Develop guidlines to allow for shared costs
  • Create short, medium, and long term implementation roadmap with recommendations
  • Facilitate and build consensus with initial and possible future partners

Four tier model (generic model of how GIS services organizes)

smathermather / odm texture
Last active Aug 29, 2015
OpenDroneMap Texture Mapping
View odm texture

OpenDroneMap Texture Mapping


Current status of OpenDroneMap

A fork of, currently OpenDroneMap project uses Bundler SfM, Patch-based Multi-view Stereo Software (PMVS), Clustering Views for Multi-view Stereo (CMVS), and related tools to ingest a set of unreferenced images, perform multistereo matching, reconstruct original camera positions, sparse point cloud, and dense point cloud from image inputs. ODM is intended to act as a workflow for processing ground level and civilian UAS (drone) imagery to do 3D reconstruction, with target outputs of point clouds, surfaces, textured surfaces, and orthophotos. Currently ODM can provide outputs similar to figures 1 and 2.

Figure 1:

smathermather /
Last active Aug 29, 2015
Randon Notes on Leaflet Mapmaking

each huc has interactive points for sampling locations identify gaps problem areas (not in attainment) another layer with the different projects

Timeline: End of June...