Saving Money with Open Source GIS

Preview:

DESCRIPTION

2010 Fall ILGISA Workshop

Citation preview

Saving Money UsingOpen Source Software

Bryan Lumanbryanluman@gmail.com

What is Open Source Software?

http://notinventedhe.re/on/2010-10-13

Wikipedia Says...

Open-source software (OSS) is computer software that is available in source code form for which the source code and certain other rights normally reserved for copyright holders are provided under a software license that permits users to study, change, and improve the software.

What does that mean to me?

• FREE!

• You can make changes to the software

• You can learn from experienced coders

• Oh, yeah... FREE!

http://www.opensource.org

(so don’t sue me)

• Check with your lawyer if you are unsure

• JUST AS YOU SHOULD WITH ANY DEAL!

• Example: RFP’s, Microsoft CAL’s, developer licenses.

End of Scary Legal Stuff

Where do I find it?

How do I know if it’s good?

Recently updated?

Good documentation?

How many people maintain it?Not a good

choice

Active Community?

Are there companies selling support?

Books?

Buzz?

OK so what do I use?

Obligatory ESRI Reference

Text

http://www.python.org/

Programming Language of Choice

def greet puts "Hello world"end

http://www.ruby-lang.org

http://rubyonrails.org/

http://www.sinatrarb.com/

http://jquery.com/

http://www.postgresql.org/

http://www.sqlite.org/

http://www.mongodb.org/

http://nginx.org/

Text

http://www.imagemagick.org

GET TO THE GIS SOFTWARE!!!

Desktop Apps

uDighttp://udig.refractions.net/

• Uses Eclipse GUI

• Reads most standard GIS formats (PostGIS, shapefile, WMS, WFS, WCS, GeoRSS, KML, and images)

• Limited map making ability

• Simple editing is OK

GRASShttp://grass.osgeo.org

• One of the first GIS systems

• Initially developed by US Army Construction Engineering Research Laboratory in Champaign, IL

• Incredible powerful for geoprocessing both raster and vector

• Gives ArcInfo 7 a run for it’s money on the UI (i.e. not good)

Quantum GIShttp://www.qgis.org/

• Good middle ground

• Reasonably decent UI

• Power of GRASS

• Almost comparable to ArcView

• Before you buy another license at least give this a try

Databases

PostGIShttp://postgis.refractions.net/

• Nearly part of the PostgreSQL core

• Based off well documented standards (OGC)

• Fast and Stable

• Large community developing and documenting

MySQL Spatial Extensions

• Incomplete and not well documented

• Not recommended unless you MUST use MySQL

Spatialitehttp://www.gaia-gis.it/spatialite/

• Uses much of the same guts as PostGIS

• Based on SQLite so very small and portable

• Possible exchange format

• Can use on iOS devices (GIS on your phone)

• A little young

http://www.opengeospatial.org/standards/sfs

Most SQL vendors implement geography using a version of the:

OpenGIS Implementation Specification for Geographic information - Simple feature access

Data Formats

Most Common

• ESRI Shapefile

• De facto standard

• Documented by ESRI

http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf

Well Known Text (WKT)&

Well Known Binary (WKB)

• Used in database records

• Well documented

• Compact

Example

POINT(6 10) =010100000000000000000018400000000000002440

LINESTRING(3 4,10 50,20 25) = 010200000003000000000000000000084000000000000010400000000000002440000000000000494000000000000034400000000000003940

GMLhttp://en.wikipedia.org/wiki/

Geography_Markup_Language

• OGC/ISO Standard

• Encoded in XML and like XML can be used for good or evil

• Most other open formats take their cue from this format

Example

<gml:Point gml:id="p21" srsName="urn:ogc:def:crs:EPSG:6.6:4326"> <gml:coordinates>45.67, 88.56</gml:coordinates></gml:Point>

GeoJSONhttp://geojson.org

• JavaScript Object Notation (JSON) encoded

• Very similar to GML but a little more streamlined

• Different than the ESRI JSON format

Example{ "type": "Point", "coordinates": [100.0, 0.0] }

{ "type": "Polygon", "coordinates": [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ] ]}

GeoRSShttp://georss.org

• Essentially a streamlined version of GML

• Used in RSS feeds

• Used by Yahoo in a lot of data streams

Example

<georss:point> 45.256 -71.92</georss:point>

KMLhttp://code.google.com/apis/kml/documentation

• Initially developed for Keyhole (Keyhole Markup Language) which was changed to Google Earth after being acquired

• As it’s name implies this is a markup language and is more suited to presenting GIS data than exchanging it

• Now an open standard and supported by Google Earth, NASA Worldwind, and ESRI

<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://www.opengis.net/kml/2.2"> <Placemark> <name>Simple placemark</name> <description>Attached to the ground. Intelligently places itself at the height of the underlying terrain.</description> <Point> <coordinates>-122.0822035425683,37.42228990140251,0</coordinates> </Point> </Placemark></kml>

Example

GPXhttp://www.topografix.com/gpx.asp

• GPS eXchange Format

• XML based

• Fairly easy to read and write

• Lots of support in consumer GPS devices

<?xml version="1.0" encoding="UTF-8" standalone="no" ?><gpx ...> <metadata> <link href="http://www.garmin.com"> <text>Garmin International</text> </link> <time>2009-10-17T22:58:43Z</time> </metadata> <trk> <name>Example GPX Document</name> <trkseg> <trkpt lat="47.644548" lon="-122.326897"> <ele>4.46</ele> <time>2009-10-17T18:37:26Z</time> </trkpt> <trkpt lat="47.644548" lon="-122.326897"> <ele>4.94</ele> <time>2009-10-17T18:37:31Z</time> </trkpt> <trkpt lat="47.644548" lon="-122.326897"> <ele>6.87</ele> <time>2009-10-17T18:37:34Z</time> </trkpt> </trkseg> </trk></gpx>

Image Formats(some)

GeoTIFFGeoJPG PNG

USGS DEM DOQNetCDF

NITF

JP2

Erdas Imagine ESRI GRID

ECW

ERMapper

BMP MrSID

PCI And many more!!!

GDAL/OGRhttp://www.gdal.org/

• Swiss army knife of GIS!

• Converts, slices and dices data anyway you like

• Really fast!

• Used in a bunch of OS and commercial applications

• Using ArcGIS? - You are already using GDAL

Web Mapping

Openlayershttp://openlayers.org/

• Only totally open, full featured, web map viewer

• Well documented

• Can be used with ESRI ArcGIS Server as well as many other data sources WMS, WFS, GeoRSS, etc...

MapServerhttp://mapserver.org/

• Original open source web mapping solution

• Akin to ESRI ArcIMS... will lead you into madness with it’s broken HTML

• Using just the map rendering capability is OK

Mapnikhttp://mapnik.org/

• Beautiful Rendering

• Exceptionally difficult to compile

• May be a little slow compared to MapServer

• Used by Google and Apple

Tilecachehttp://tilecache.org/

• Nice small python web service

• Will serve tiles ala Google Maps statically or on demand

• Lots of options for increasing web serving performance (memcached, HTTP headers)

GeoDjangohttp://geodjango.org/

• Django is a python web framework for designing applications quickly

• This is a very nice extension that adds a variety of methods for interacting with spatial data using PostGIS, GEOS, and PROJ4

Free but not open

• Google Earth

• Google Maps

• Microsoft Bing

• Yahoo Maps

• Mapquest

http://lakecountyil.gov

Other Cool Geo API’s

• 4Square

• Facebook

• Twitter

• Flickr

Open Streetmaphttp://www.openstreetmap.org/

• Totally open dataset of features

• Based on TIGER (in USA) and updated by individuals

• Variable precision

• Excellent cartography

• Made using open source GIS software

EveryBlockhttp://everyblock.com

• Second evolution of ChicagoCrime.org

• Excellent User Interface

• Uses Openlayers and Mapnik

Warning!

Extreme Technical Content ahead!

libLAShttp://liblas.org

• Library and executables

• Can convert raw LAS to a variety of formats using advanced filtering

• Can get detailed info and compare LAS files

• Supported by Iowa DNR and US Army

GEOShttp://trac.osgeo.org/geos/

• Geometry Engine, Open Source (GEOS)

• Backbone of PostGIS and Spatialite

• Also used in Quantum GIS, GRASS, OGR, Ingres, MapServer, and GeoDjango

PROJhttp://trac.osgeo.org/proj/

• Library and executable

• Will project to and from anything

• Used in almost all OS GIS projects

A little note about projections

EPSG/WKID Codeshttp://www.epsg.org/Geoodetic.html

• European Petroleum Survey Group (EPSG) initially developed a list of projections for easy reference

• Also known as Well Known ID’s (WKID)

• A good searchable index is: spatialreference.org

PROJCS["NAD83 / Illinois East (ftUS)", GEOGCS["NAD83", DATUM["North_American_Datum_1983", SPHEROID["GRS 1980",6378137,298.257222101, AUTHORITY["EPSG","7019"]], AUTHORITY["EPSG","6269"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.01745329251994328, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4269"]], UNIT["US survey foot",0.3048006096012192, AUTHORITY["EPSG","9003"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",36.66666666666666], PARAMETER["central_meridian",-88.33333333333333], PARAMETER["scale_factor",0.999975], PARAMETER["false_easting",984250.0000000002], PARAMETER["false_northing",0], AUTHORITY["EPSG","3435"], AXIS["X",EAST], AXIS["Y",NORTH]]

EPSG:3435

vs