Open Source GIS : A practical look at the Open Source GIS Stack Presented at PSU Feb 2007 by Aaron Racicot – GIS Programmer, GISP Ecotrust A Citizen of Salmon Nation
Who Am I? B.S. Computer Science Split Personality M.S. Environmental Science Open Source User/Developer GIS Programmer
GIS – Geographic Information Systems GIS Maps – Print / Electronic Cartography Spatial Data Creation/Collection Spatial Processing Spatial Modeling Spatial Analysis Reasoning with a Sense of Place
Ecotrust - Salmon Nation
OSGeo – Open Source Geospatial Foundation Board of Directors Website Committee Fundraising Committee Incubation Committee Promotion and Visibility Committee Public Geospatial Data Committee Education and Curriculum Committee System Administration Committee Voting Members General Members
OSGIS Software Stacks… Desktop Generic StackFOSS4G StackGrouping ApplicationQGis, Grass, OSSIM, JUMP, UDig User Interface Application Dev. Environment Eclipse, QT, OpenGL, Tkl/Tk High Level Utilities GeoTools, Postgresql, PostGIS Data Serving High Level Scripting Languages PHP, PERL, Python Low Level Utilities Shplib, GEOS, OGR/GDAL, R-Statistics, GMT Data Processing/ Formatting Low Level Languages C, C++, Java, FortranSystem Software Operating System Linux, Darwin, Cygwin Hardware Drivers bit processor drivers Desktop Software Stack
OSGIS – Desktop Applications GRASS GIS
OSGIS Software Stacks... Server/Web Web-based Software Stack Generic StackFOSS4G StackGrouping Client Side BrowserFirefox, Safari, NetscapeUser Interface Client Side Application Open Layers Map-Fu, Chameleon, DBox, Cartoweb3, MapGuide, Mapbender, Mapbuilder Client Side Scripting Java Script, Java Applets ~~~~~~~~~~~WEB~~~~~~~~~~~ Server Side Application Chameleon, Cartoweb3, MapGuide, Mapbender, Mapbuilder, Custom Data Serving High Level UtilitiesMapserver, MapGuide, Geoserver High Level Scripting Languages PHP, PERL, PythonData Processing Low Level UtilitiesShplib, GEOS, OGR/GDAL, PostGIS, R-Statistics, GMT Low Level Languages C, C++, Java, FortranSystem Software Operating System/Drivers Linux, Darwin, Cygwin Hardware Drivers32-64 bit processor drivers
OSGIS – Server/Web Tools GRASS GIS GDAL/OGR R-Statistics
Desktop Raster/Vector Processing GRASS/GDAL/OGR - Data Crunching Both Raster and Vector support Very powerful tool set (similar to ArcINFO/ArcGRID) Traditionally Poor GUI, but getting better Very fast Cross platform QGIS/GDAL/OGR – Data Viewing/Editing Both Raster and Vector support Nice GUI Cross platform QGIS can integrate with GRASS
GRASS-Raster Grass Raster Processing
GRASS-Vector Grass Vector Processing
QGIS - Titan QGis 0.8
Mapserver Web-Based Interface AJAX-User Based Data Filter GMT generated graphics Spatially constrained queries and scenarios Chameleon Mapserver framework PostGIS Spatial Data
Slippy Maps…OpenLayers Google Like Tools Tile based image server Super Slippy!
Now what…. How is this useful to you???????
Personal Use…. Thanks to Dylan Beaudette : Navigating Wilderness Areas with GRASS Classification Cost Surface
Creating Data…. Digitizing, Modifying, extracting… Context Layer Viewing Create new shapes Create new attributes
Transforming Data…. How to get coordinates in UTM to Geo-NAD83?
Web enable standard geo-data….
Web enable non-standard geo- data…. How to display and interact with model data? GIS Model Results Web Based Real-Time GIS Model
Spatially enable your database…. How to select data within a polygon area? Intersects Geometry Definition Distance(geometry, geometry) Equals(geometry, geometry) Disjoint(geometry, geometry) Intersects(geometry, geometry) Touches(geometry, geometry) Crosses(geometry, geometry) Within(geometry A, geometry B) Overlaps(geometry, geometry) Contains(geometry A, geometry B) Intersects(geometry, geometry) Relate(geometry, geometry, intersectionPatternMatrix) Relate(geometry, geometry) Centroid(geometry) Area(geometry) Length(geometry) PointOnSurface(geometry) Boundary(geometry) Buffer(geometry, double, [integer]) ConvexHull(geometry) Intersection(geometry, geometry) SymDifference(geometry A, geometry B) Difference(geometry A, geometry B) GeomUnion(geometry, geometry) GeomUnion(geometry set) MemGeomUnion(geometry set)
Display unique data…. How can I plot geospatial and model data? #!/bin/csh # #GMT Example 24 $Id: job24.csh,v /05/08 01:35:12 # # Purpose:Extract subsets of data based on geospatial criteria # GMT progs:gmtselect, pscoast, psxy, minmax # Unix progs:echo, cat, awk # # Highlight oceanic earthquakes within 3000 km of Hobart and > 1000 km echo "147:13 -42: Hobart" >! point.d cat ! dateline.d > Our proxy for the dateline EOF set R = `minmax -I10 oz_quakes.d` pscoast $R -JM9i -K -Gtan -Sdarkblue -Wthin,white -Dl -A500 -Ba20f10g10WeSn \ -U"Example 24 in Cookbook" >! example_24.ps psxy -R -J -O -K oz_quakes.d -Sc0.05i -Gred >> example_24.ps gmtselect oz_quakes.d -L1000/dateline.d -Nk/s -C3000/point.d -fg -R -Il \ | psxy -R -JM -O -K -Sc0.05i -Ggreen >> example_24.ps awk '{print $1, $2, 0, $3, $3}' point.d | psxy -R -J -O -K -SE -Wfat,white >> example_24.ps awk '{print $1, $2, 14, 0, 1, "LT", $4}' point.d \ | pstext -R -J -O -K -Gwhite -D0.1i/-0.1i >> example_24.ps psxy -R -J -O -K point.d -Wfat,white -Sx0.2i >> example_24.ps psxy -R -J -O -M dateline.d -Wfat,white -A >> example_24.ps \rm -f point.d dateline.d.gmt* The Generic Mapping Tools
Where is Ecotrust going…DSTs Web User Request Web User Response Static Data Storage Web Services Data Gathering Data Formatting Data Processing Map Formatting Map Production The Problem Is The Arrows! Connecting a web request to server side GIS analysis is tricky Real-Time Web Decision Support Tools
DST using GRASS/Mapserver Siuslaw Watershed Restoration Initiative Data Gathering Data Formatting Data Processing PHP Mapscript GRASS
Where to go for more info Ecotrust OSGeo OSGIS Maptools - FreeGIS - Open Source GIS - Standards OGC - Desktop GRASS - QGIS - UDIG - JUMP – OSSIM - OpenEV - Server/Web Mapserver - OpenLayers - MapBender - MapBuilder - MapGuide OS - Tools PostGIS - GDAL/OGR - PROJ R-Statistics - GMT -
GRASS Demo…