FOSS4G Conference in Review – Workshops – Sessions



FOSS4G Conference in Review – Workshops – Sessions

0 0


foss4g-2014-recap


On Github sisskind / foss4g-2014-recap

FOSS4G Conference in Review

Andrew Murdoch, Leidos

Josh Sisskind, Leidos

What is FOSS4G

  • Free and Open Source Software for Geospatial
  • PDX 2014 was 10th Annual International FOSS4G Conference
  • Future Conferences

Sponsors

Session Titles

Session Descriptions

Keynotes

Workshops

Workshops

  • Building apps with OpenLayers 3
  • A standard geo-spatial stack in the clouds
    • Deploying a free (with some size limits) cloud-based instance of PostgreSQL/PostGIS and GeoServer in RedHat’s online hosting service (OpenShift) served on Linux machines. Provided instructions for consuming the hosted GIS data and services on your local machine using the QGIS desktop client.

Workshops

  • Enterprise Class Deployment for GeoServer and GeoWebcache
  • The Accidental DBA
  • Leaflet and Mapbox JavaScript API Fundamentals

Sessions

Sessions

  • A GeoNode Primer
  • A GeoNode Primer
  • GeoNetwork OpenSource 3.0
  • Getting Started with OpenLayers 3
  • Evaluation of WPS Frameworks
  • Writing Better PostGIS Queries
  • PostGIS Feature Frenzy
  • Creating Custom HTML Elements for Maps
  • Mapping it out with AngularJS
  • Fixing GIS Data Discovery
  • Open Source Spatial on Open Shift
  • Finding the Where in Big Fuzzy Data
  • GIS in the Browser
  • Vector Tiles for Fast Custom Maps
  • Open Source Spatial on OpenShift
  • Building Development Environments Using Vagrant
  • An Open Source Approach to Communicating Weather Risks
  • GLOB3 Mobile
  • The Role of FOSS4G as a Component of Hybrid Systems
  • Server-side Marker Clustering For Rapid Display of Large Datasets
  • Mapping Words and Phrases from Geographic Knowledge on the Web
  • Client-side vs. Server-side GeoProcessing: Benchmarking the Browser
  • Combining Geometry and Key-Value Stores Using PostGIS and HStore
  • Building Open Source Projects in the Government ESRI Ecosystem
  • Terrafomer – Open Source Geometry in Your Browser and Node.js
  • Projections in Web Browsers Are Terrible and You Should Be Ashamed of Yourself
  • Tuning Open Source GIS Tools to Support Weather Data/Rapidly Changing Rasters
  • Manager's guide to PostGIS
  • GeoTools, GeoServer, GeoGit
  • Tell stories and engage an audience with maps
  • Update on new OGC standards: Geopackage & OWS Context
  • Empowering people, popularizing open source and building a business
  • Supporting Open Data with Open Source
  • GRASS GIS 7: Your reliable geospatial number cruncher
  • Developing OpenLayers-based mobile applications
  • Web and Mobile Enterprise Applications
  • Quadcopter GIS for less than $700
  • Distributed versioned Editing in Action
  • Open Source, Open Standards and 50 Lines of Code
  • MapLoom: A new web-client with versioned editing (GeoGit) integration
  • GRASS GIS, Star Trek and Old Video Tape
  • Fiona and Rasterio

Andrew's Sessions

Tell stories and engage an audience with maps

  • presentation from CartoDB
  • Global Forest Watch example
  • Using torque.js library for time dimension data on Github
  • "Eric the bird" example
  • Articles in Wired referring to CartoDB and climate change
  • Development of oddysey.js for journalist applications
  • lots of overlap with ArcGIS Online but better integration with GitHub

Manager's guide to PostGIS

general overview comparing Oracle spatial to PostGIS

versioning handled by GeoGig / PostGIS / desktop client (QGIS/ArcMap/etc.)

Update on new OGC standards: Geopackage & OWS Context

  • Geopackage uses SQLite to store vector data using the simple features SQL spec
  • stores raster data using the MBTiles spec in BLOB columns with tiling optional
  • all OGC specs are now on Github as well as test suites for compliance.
  • OWS context uses an atom feed passing georss data with links, references to spatial and non-spatial data

Empowering people, popularizing open source and building a business

  • examples of torque.js for time dimension vector features
  • point animation for Google Maps or Leaflet
  • uses CartoCSS and Canvas 2D
  • concept of tilecube (X,Y,Time)
  • based on Postgres and Node.js on the server

Supporting Open Data with Open Source

  • NOAA project
  • uses data.json metadata exchange format (US Government standard)
  • transfers metadata / links / references
  • uses CKAN web api
  • examples include: data.noaa.gov and data.gov
  • based on stack of GeoServer, GeoNode and CKAN
  • GeoNode for data discovery
  • CS-W catalog services for QGIS and ArcGIS
  • Remote Services and GeoGig versioned editing using distributed data and MapLoom (as an editor for GeoGig)

GRASS GIS 7: Your reliable geospatial number cruncher

  • network analysis
  • image processing
  • hydro modeling
  • python api
  • integration with QGIS for better GUI
  • formats out include: geotiff and shapefile
  • formats in include: PostGIS and WFS
  • uses WPS with pyWPS web processing service
  • 3d animation
  • well documented
  • georeferencing imagery
  • image classications
  • space-time cubes storing temporal data

Developing OpenLayers-based mobile applications

  • part of ROGUE-JCTD demo project
  • three apps iteratively developed with Open Layers at the core for mobile
  • PushPin Cross Platform with OL3
  • uses GeoShape / GeoGig for disconnected editing
  • app is called Arbiter and handles offline editing and sync using WFS-T (last edit wins)
  • uses PhoneGap plugins
  • compares spatial networks IOS app to Rogue / Arbiter pushpin cross platform web app.

Glob3 Mobile (Mobile Map Tools)

  • Github
  • Converter to native app code
  • MMT project on github
  • displays 3d models on mobile
  • displays pointclouds in BerkelyDB

Web and Mobile Enterprise Applications

  • Ubisense (Peter Batty) presentation
  • distributed off-line editing
  • utility and telecom space
  • originally worked wth PostGIS and Mapfish with Google Maps frontend
  • now works with PostGIS, Geoserver and Leaflet
  • app called "myWorld“
  • mobile uses PhoneGap with SQLite database to compile "native" apps on ios and android
  • challenges to HTML5 application include Large Local Storage using HTML5 offline storage
  • option to go "low-tech" with fieldpapers.com

A GeoNode Primer

  • Demo
  • built-in metadata editor
  • built on Django
  • hosted on github
  • spatial and non-spatial data uploaded by users.
  • content-management system with cross-links (like JIRA or FogBugz for data)
  • data catalog search functions and filters
  • user manager / permissions?
  • Examples:
    • World Food Network
    • MapStory
    • Harvard World Map
    • NEPAnode - GeoSHAPE (GeoGit / MapLoom / Mobile interface)

Quadcopter GIS for less than $700 - hardware and software to map your local community

  • Just for fun!
  • Phantom quadcopter ($500)
  • Canon ELPH camera ($110)
  • uses Canon CHDK developer kit to create interval shutter operation
  • flied manually (no auto-flight plan ability)
  • software to stitch imagery back together:
    • Microsoft ICE (based on photosynth)
    • AgiSoft Photoscan (not open and not free)
    • Visual SFM (open source)
  • once you have a mosaic you can georeference in desktop software (QGIS warper or mapknitter.com)
  • you can use gdal2tiles to create a tiled mosaic from the source mosaic
  • add to OSM using ideditor.com
  • create 3d models from sparse point cloud using AgiSoft Photoscan or Visual SFM and Meshlab

GeoTools, GeoServer, GeoGit: A case study of use in utility field work

  • GeoGit now is GeoGig which handles versioning and history
  • based on GeoTools using Java
  • Alternative to GitHub.io pages w/ GeoJSON which may be better for less complex editing scenarios
  • possible example of GitHub.io in Landon Reed's presentation on distributed editing
  • Does not handle visualization: SLDs vs. CartoCSS using CSS Geoserver plugin

Distributed versioned Editing in Action

  • GeoGit now is GeoGig which handles versioning and history
  • based on GeoTools using Java
  • Alternative to GitHub.io pages w/ GeoJSON which may be better for less complex editing scenarios
  • possible example of GitHub.io in Landon Reed's presentation on distributed editing
  • Does not handle visualization: SLDs vs. CartoCSS using CSS Geoserver plugin

Open Source, Open Standards and 50 Lines of Code: A look behind GitHub's GeoJSON rendering and diffing

  • GeoGit now is GeoGig which handles versioning and history
  • based on GeoTools using Java
  • Alternative to GitHub.io pages w/ GeoJSON which may be better for less complex editing scenarios
  • possible example of GitHub.io in Landon Reed's presentation on distributed editing
  • Does not handle visualization: SLDs vs. CartoCSS using CSS Geoserver plugin

MapLoom: A new web-client with versioned editing (GeoGit) integration

  • project called ROGUE developed as a Joint Technology Demonstration with DoD partners as well as State Department.
  • Rogue-jctd on GitHub
  • MapLoom is their web-based editor interface plugged in to GeoNode for editing GeoGig enabled PostGIS data sources.
  • Supports viewing versions and history for different editors

Projections in Web Browsers are terrible and you should be ashamed of yourself

  • refers to Adaptive Composite Map Projections (Bernhard Jenny) which is a very cool interactive demo
  • rant against use of hundreds of state plane coordinate systems and multiple projection and coordinate systems world-wide when for most use-cases, there is no need for that level of complexity.
  • discussion of the biases inherent in WGS84 Web Mercator system.

GRASS GIS, Star Trek and Old Video Tape - A reference case on audiovisual preservation for the OSGeo community

GRASS GIS promo video from 1987

(narrated by William Shatner!)

Josh's Sessions

Fiona and Rasterio

  • Sean Gillies @ Mapbox
  • Fiona (vector) and Rasterio (Raster) are clean Python interfaces to OGR and GDAL
    • Import fiona
      							with fiona.open(path) as src:
      								first= next(src)
    • Import rasterio
      							with rasterio.open(path) as src:
      								data = src.read()
      							rasterio.features.shapes() 
      							rasterio.features.rasterize()
      							rasterio.warp.reproject()

Custom HTML Elements

var foo = Object.create(HTMLElement.prototype)
	foo = CreatedCallback = function(){
		this.map = …
		this.map.setView…
	}
	map = registerElement(“foo”,{prototype.foo})
<map width="400" height="600" extent="..."></map>
  • Uses require.js and currently only supporting in Chrome (use polymer.js for others)
  • Can extend to feature points, etc...

Terraformer

  • ESRI product, developed in PDX R&D Office
  • No call to server for geometry, data conversions
Terraformer.point()

Writing Better PostGIS Queries

  • ST_DWithin > ST_Distance since it takes advantage of spatial index
  • Create compound GIST indexes when it makes sense (i.e., geography and hstore)
  • Take advantage of PostGIS KNN operators
  • LATERAL: subselect in FROM clause
  • Rasters: Clip then union for better results
    ST_UNION(ST_CLIP(...)))

Finding the Where in Big Fuzzy Data

lambda-architecture.net

Server Side Clustering

  • Used server-side leaflet and combination of Node.js, MongoDB, AWS and ClamAV
  • Created cache of clusters in browser using CacheControl and MongoDB in GeoJSON format

Mapping Words and Phrases from Geographic Knowledge on the Web

frankenplace.com

Geoparsing completed using references within text to places

PDX Map

THE END