MARPLOT: Building a Desktop GIS for Emergency Response from FOSS Components May 3, 2016 Michael Katz, Software Engineer 6/12/20161
2 CAMEO ® Suite Uses To respond to chemical emergencies, and to help prepare for them ahead of time. Fertilizer plant explosion, Louisiana, 2013 (US Chemical Safety Board) Train derailment, New Jersey, 2012 (NOAA) Tornado, Kentucky, 2012 (NOAA)
6/12/20163 CAMEO ® Software Suite ALOHA ® CAMEOfm Tier2 Submit ™ MARPLOT ® CAMEO Chemicals Developed jointly by NOAA and EPA 325,000 downloads a year and 2,000,000 visitors to CAMEO Chemicals site
MARPLOT Overview GIS with focused, simplified interface that’s easy to install, easy to populate with data, and easy to use for emergency responders and planners. Other key requirements: – Works as a standalone app, but also integrates with CAMEO and ALOHA. – Can operate completely offline for core functionality (including downloaded basemap tiles); additional features when online (e.g., WMS, weather) – Allows easy addition of heterogeneous objects types on a layer. – Handle hundreds of thousands of objects efficiently, millions of objects reasonably. First developed in 1990s; MARPLOT 5 series released 2015 (complete rewrite), 19K downloads Windows, 1K downloads Mac Version 5 built on FOSS components, using a standard Web-style client/server architecture. 6/12/20164
Screenshots: Overview 6/12/20165
Screenshots: Layer Settings 6/12/20166
Screenshots: Sublayers 6/12/20167
Screenshots: Display Fields 6/12/20168
Screenshots: Object Settings 6/12/20169
Screenshots: Annotations 6/12/201610
Screenshots: Customize Sticky 6/12/201611
Screenshots: Search Data 6/12/201612
Screenshots: Search Distance 6/12/201613
Screenshots: Search Results 6/12/201614
Screenshots: Add WMS 6/12/201615
Screenshots: Add Raster 6/12/201616
Screenshots: Raster Overlay 6/12/201617
Screenshots: ALOHA Threat Zone 6/12/201618
Screenshots: ALOHA Threat Zone 6/12/201619
Screenshots: Computed Polygons 6/12/201620
Screenshots: U.S. Population 6/12/201621
Screenshots: Download Offline Tiles 6/12/201622
Screenshots: Import 6/12/201623
Screenshots: Export 6/12/201624
MARPLOT “Special Case” Uses 1.Hurricane Katrina: one of the only GIS systems that didn’t require internet; used especially to track chemical drums. 2.Tornado search and rescue: storm shelter locations in path; FEMA damage assessments (acreage and land parcels for cost estimate). 3.CA earthquake drill: ring-by-ring calling of convenience stores for emergency response and damage assessment. 4.Diving search-and-rescue grids; prison break search- and-rescue grids. 6/12/201625
MARPLOT Architecture 6/12/201626
MARPLOT FOSS Components: Client Chromium Embedded Framework (Marshall Greenblatt, based on Google’s Chromium) OpenLayers 3 jQuery jQuery UI (minimal use for tabs and buttons) moment.js (time zones) linkify.js (smart recognition of URLs) cleditor.js (rich text HTML editing) jqcp.js (color picker) 6/12/201627
MARPLOT FOSS Components: Server Written "from scratch" instead of relying on MapServer or another GIS server engine SQLite POCO (portable components) C++ library for cross- platform files and paths, XML, JSON, threads – miniz.cpp (compress/decompress) CImg (with a number of custom modifications) for drawing overlay tiles GDAL for raster file access, including MrSID, Proj4 GEOS for polygon computations 6/12/201628
MARPLOT’s Future Moving to SQLite (instead of shapefiles plus.json files) for all data storage (but not using SpatiaLite). Faster, smaller, much more reliable. Better in-memory indexes (smaller and more powerful than shapefile trees, and plenty fast even without the “tree”). Moving away from Python since most of the application is in C++ at this point. Additional import file types: GeoDatabase, others? Cleaner thread locking. Graphics classes and thematic mapping (data-based graphics). WMS queries. “MARPLOT Lite” in other web-based CAMEO programs. 6/12/201629
MARPLOT: Building a Desktop GIS for Emergency Response from FOSS Components May 3, 2016 Michael Katz, Software Engineer 6/12/201630