Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
EAlGISGrahame Bowland
@angrygoat

http://ealgis.org/
Can anyone guess!
what this map shows?
Public Transport Use!
!
(did you spot the train lines?)
EAlGIS
• Build a reproducible database of
geospatial information
• Interactive visualisation and analysis
through a web in...
Developed for…
Buzzwords!
• Backend: Python / Flask / SQLAlchemy /
MapServer
• Database: PostGIS
• Frontend: jQuery, OpenLayers, Bootstra...
Reproducibility
• Database built up by running ‘recipes’
• Built in loaders for Shapefile, KML, CSV
attribute data
• Metada...
Attribute Calculations
Simple expression language,
attributes looked up against current
geometry.



100 * (b7837 + b7840 ...
Generating this SQL!
SELECT sa1_2011_aust.geom_3857, sa1_2011_aust.gid,
(100 * (b46_aust_sa1.b7837 + b46_aust_sa1.b7840 +
...
How that works
• Simple expression language parsed with
“pyparsing”
• At parse time, look up attributes by name
and resolv...
Mash All The Things!
• Electoral Analysis
• Power Grid utilisation
• Mash up data on different
geometries
Demo!
Open Source
• Licensed under the GPL 3
• github.com/grahame/ealgis/
• github.com/grahame/ealgis-aus-census-2011/
Demo site
• http://census.ealgis.org/
• email grahame@angrygoats.net for
access (public access coming soon!)
• help wanted...
Upcoming SlideShare
Loading in …5
×

EAlGIS - Interactive Geospatial Data Analysis

877 views

Published on

Presentation given to GeoRabble Perth on Tuesday 11 March 2014.

Published in: Education
  • Be the first to comment

EAlGIS - Interactive Geospatial Data Analysis

  1. 1. EAlGISGrahame Bowland @angrygoat
 http://ealgis.org/ Can anyone guess! what this map shows?
  2. 2. Public Transport Use! ! (did you spot the train lines?)
  3. 3. EAlGIS • Build a reproducible database of geospatial information • Interactive visualisation and analysis through a web interface • Infrastructure for offline analysis, data- mashups…
  4. 4. Developed for…
  5. 5. Buzzwords! • Backend: Python / Flask / SQLAlchemy / MapServer • Database: PostGIS • Frontend: jQuery, OpenLayers, Bootstrap • Mozilla Personas for user authentication • development: ‘vagrant up’
  6. 6. Reproducibility • Database built up by running ‘recipes’ • Built in loaders for Shapefile, KML, CSV attribute data • Metadata! Database introspection & stored relationship data - attributes to geometries. • Automatically reproject spatial data to map projection (eg. Google Mercator)
  7. 7. Attribute Calculations Simple expression language, attributes looked up against current geometry.
 
 100 * (b7837 + b7840 + b7843 + b7846 + b7864 + b7894 + b7912 + b7921 + b7924) / b7942
  8. 8. Generating this SQL! SELECT sa1_2011_aust.geom_3857, sa1_2011_aust.gid, (100 * (b46_aust_sa1.b7837 + b46_aust_sa1.b7840 + b46_aust_sa1.b7843 + b46_aust_sa1.b7846 + b46_aust_sa1.b7864 + b46_aust_sa1.b7894 + b46_aust_sa1.b7912 + b46_aust_sa1.b7921 + b46_aust_sa1.b7924)) / CAST(b46_aust_sa1.b7942 AS FLOAT) + 0 AS q FROM sa1_2011_aust JOIN b46_aust_sa1 ON b46_aust_sa1.gid = sa1_2011_aust.gid JOIN b01_aust_sa1 ON b01_aust_sa1.gid = sa1_2011_aust.gid WHERE b01_aust_sa1.b3 > 100 AND b46_aust_sa1.b7942 != 0) as subquery using unique gid using srid=3857
  9. 9. How that works • Simple expression language parsed with “pyparsing” • At parse time, look up attributes by name and resolve to SQLAlchemy column objects • Emit into the parse tree • Step back… and it works!
  10. 10. Mash All The Things! • Electoral Analysis • Power Grid utilisation • Mash up data on different geometries
  11. 11. Demo!
  12. 12. Open Source • Licensed under the GPL 3 • github.com/grahame/ealgis/ • github.com/grahame/ealgis-aus-census-2011/
  13. 13. Demo site • http://census.ealgis.org/ • email grahame@angrygoats.net for access (public access coming soon!) • help wanted :-)

×