Notes for a workshop on using open data and open source for geographical applications at the 9th Swiss UNIGIS conference (program in German). If you are looking for a good way to start doing GIS with open source & open standards, this page should give you some ideas. See also my blog post for additional background.
The goal of the workshop is to use open GIS data (or your own data) to create a free web map with open tools. The links below will help us find our way to converting / exploring / processing / analysing / visualising any widely used open formats and standards. Below we suggest three possible starting points: GeoAdmin, OpenStreetMap and Mapbox, as well as a collection of Further Links of interest to GIS users and developers. Sources of open geodata are discussed elsewhere on this forum.
GeoAdmin
For a Swiss data focus, try map.geo.admin.ch from Swisstopo, based on OpenLayers 3. Developed and actively supported by the Federal Government, with 200 years of experience in creating some of the most admired maps in the world. Even though their degree of openness varies, they are happy to help advise on the best way to obtain and make use of their data, and the technologies behind the platform are fully open source.
Click on Advanced tools for WMS (service) and KML (file) import options. Both are limited in terms of bandwidth, so you may need to reduce the scope or scale of your query/map file before importing. Afterwards you can choose from several basemaps, interactively integrate any data from GeoAdmin’s catalog, and use drawing and measuring tools in your Web browser, before publishing the result as an embedded web map.
OpenStreetMap
The world’s largest crowdsourced map is also a rich collection of datasources that varies in density and accuracy corresponding to the strength of its regional communities. In Switzerland, the OSM-CH association aims to make the maps in our part of the world as detailed and versatile as possible.
We can use the uMap tool to set up map layers, add and design points of interest, import data (geojson, gpx, kml, osm…), license, embed and share the resulting map. You can try uMap without registering here. But before you do that, check out this brief introduction to working with OpenStreetMap and create an account if you would like to join the community.
Hover over the icon underneath the zoom buttons (+ / -) and click Add layer then open the Remote data panel to add your data, which must be first uploaded to a public web server.
Mapbox
If visual flair and accessibility is important then check out Mapbox, an open source mapping platform (with commercial support) with excellent tools for custom designed maps based on CSS like carto stylesheets. To get started, open the Mapbox editor (registration not required), in which you can import a geojson, csv (containing latitude & longitude values), kml or gpx file.
Further links
-
CH
- Geodaten des Bundes
http://map.geo.admin.ch - …für die Wissenschaft
geosharing_Workshop - Google Slides - …für den Unterricht im Kursverband oder für das individuelle Lernen
http://www.geo.admin.ch/internet/geoportal/de/home/services/consulting_coordination_form/schools_education/introduction.html
- Geodaten des Bundes
-
QGIS
- Downloads
Download QGIS - Tutorials
QGIS Tutorials and Tips — QGIS Tutorials and Tips
- Downloads
-
R
- Introduction to visualising geospatial data
https://cran.r-project.org/doc/contrib/intro-spatial-rl.pdf - OpenStreetMap support
nathalievilla.org
- Introduction to visualising geospatial data
-
JavaScript
- GeoJSON - storing geodata such as points as longitude/latitude coordinates, shapes, features
http://geojson.org/- TopoJSON - improves upon GeoJSON by processing GIS data with geospatial topology
Home · topojson/topojson Wiki · GitHub - Jeremy Stucki’s Swiss maps
GitHub - interactivethings/swiss-maps: Swiss geodata as TopoJSON
- TopoJSON - improves upon GeoJSON by processing GIS data with geospatial topology
- Turf.js - advanced geospatial analysis for browsers and node
http://turfjs.org/- Coropleth quantile classification with Turf.js on Codepen
http://codepen.io/stevepepple/pen/myMBxg
- Coropleth quantile classification with Turf.js on Codepen
- Mapbox - open source mapping platform for custom designed maps
https://www.mapbox.com/products/- Mapbox guide to analysis with Turf.js
Analyze data with Turf.js and Mapbox GL JS | Help | Mapbox
- Mapbox guide to analysis with Turf.js
- GIS Cloud
http://developers.giscloud.com/- GIS Cloud demo on jsFiddle
Create GIS Cloud objects: map - table - layer - feature - JSFiddle - Code Playground
- GIS Cloud demo on jsFiddle
- THREE.js - more usable WebGL
http://threejs.org/- Wellington in WebGL on Codepen
http://codepen.io/vcurd/pen/JDokj
- Wellington in WebGL on Codepen
- Leaflet.js - open-source library for mobile-friendly interactive maps
http://leafletjs.com/- Interactive Leaflet demo on Codepen
http://codepen.io/kimamil/pen/BNJbvd - OSM Buildings in Leaflet on Codepen
http://codepen.io/leemark/pen/blpIn
- Interactive Leaflet demo on Codepen
- GeoJSON - storing geodata such as points as longitude/latitude coordinates, shapes, features
-
Python
- Tutorials
- Sara Safavi - Python for GIS people
http://slides.sarasafavi.com/pyforgis/#/18 - Anders Lehmann - How to GIS with Python
How to GIS with Python · EuroPython 2015 · Bilbao, 20–26 July 2015 - PennState - Introduction to GIS modeling and Python
Lesson 1: Introduction to GIS modeling and Python | GEOG 485: GIS Programming and Software Development
- Sara Safavi - Python for GIS people
- Data loading
- Fiona - simple reading and writing of spatial data
fiona · PyPI - Rasterio - reads and writes geospatial raster datasets
rasterio · PyPI - Fiona, Rasterio, Shapely by @sgillies
Fiona and Rasterio - GDAL/OGR - loading & manipulating geospatial raster and vector data
Welcome to the Python GDAL/OGR Cookbook! — Python GDAL/OGR Cookbook 1.0 documentation - KML
- FastKML - read and use KML
GitHub - cleder/fastkml: Fast 🌍️ KML processing for python - SimpleKML - generate KML
http://www.simplekml.com/en/latest/
- FastKML - read and use KML
- GPX - GPS eXchange Format
GitHub - tkrajina/gpxpy: gpx-py is a python GPX parser. GPX (GPS eXchange Format) is an XML based file format for GPS tracks. - …and on, and on
- Fiona - simple reading and writing of spatial data
- Processing / visualisation
- Mapnik - geospatial visualization & processing
GitHub - mapnik/python-mapnik: Python bindings for mapnik - PyGeoProcessing - common raster, vector, and hydrological operations
pygeoprocessing · PyPI - GeoPy - client for several popular geocoding web services
GitHub - geopy/geopy: Geocoding library for Python. - Shapely - manipulation and analysis of planar geometric objects
GitHub - shapely/shapely: Manipulation and analysis of geometric objects - GRASS Python library
GRASS GIS Python library documentation — Python library documentation documentation - Numpy - scientific computing with Python
http://www.numpy.org/ - …and on, and on
- Mapnik - geospatial visualization & processing
- Interactive exploration with iPython
- iPython on Authorea
Data-driven, interactive science, with d3.js plots and IPython Notebooks - Authorea - iPython from Sandstorm
Sandstorm App Market - GeoSparkGrams
Technical Tidbit of the Day: GeoSparkGrams: Tiny histograms on map with IPython Notebook and d3.js - matta: view and scaffold d3.js visualizations in IPython notebooks
GitHub - zorzalerrante/datagramas: datagramas - view and scaffold d3.js visualizations in Jupyter notebooks - Pineapple: quick deploy iPython for Macs
Pineapple - Python Notebooks for Mac OS X - Anaconda: quick iPython everywhere else
http://continuum.io/downloads - Canopy: even moar iPython
https://store.enthought.com/
- iPython on Authorea
- Applications
- Folium - visualize Python data on a Leaflet map
GitHub - python-visualization/folium: Python Data. Leaflet.js Maps. - GeoDjango - geographic Web framework
GeoDjango | Django documentation | Django
- Folium - visualize Python data on a Leaflet map
- Tutorials
-
Plotly