In der letzten Zeit habe ich viel mit den Daten der Shuttle Rader Topography Mission (SRTM)  gearbeitet. In diesem Artikel stelle ich einen Workflow zusammen mit einem python-Skript vor, wie du die für dich relevanten Daten identifizieren, größere SRTM-Datenmengen effizient downloaden und sie mit Hilfe von ArcGIS weiter verarbeiten kannst.

 

1. Allgemeines

Die Daten (SRTM3) liegen in 1°x1° großen Kacheln mit einer Auflösung von 90m (am Äquator) vor und erreichen eine Abdeckung von 56 °S – 60°N. Im Bereich der USA liegt die Auflösung bei ca. 30m.

Der Namen der Kacheln (z.B.:N01E120.hgt) setzt sich dabei wie folgt zusammen:

  • N bzw. S Ausdehnung, bei der die Kachel beginnt. N01 bedeutet, dass die Kachel eine Ausdehnung von 01°-02 °N hat.
  • W bzw. O Ausdehnung, bei der die Kachel beginnt. Ausdehnung analog wie beim vorherigen Punkt.
  • „*.hgt“: Dies ist kein eigenes Format, sondern stellt lediglich die Abkürzung für „height“ dar. Die Daten liegen als rohe 16-bit signed integers vor.

 

2. Notwendige Software

OpenStreetMap entwickelt sich je nach Region in unterschiedlicher Intensität und Schnelle weiter. Mit Peters genialem OSM-History-Renderer kann diese Entwicklung visualisiert werden. Die Visualisierung beruht dabei auf einem OSM-Full-History-File, das, im Gegensatz zu einem aktuellen Datenbankabzug, beinahe die vollständige Historie mit allen Änderungen in einem Gebiet umfasst. Hinter der folgenden Abbildung verbirgt sich eine Animation für Heidelberg, bei der die monatlichen Zuwächse dargestellt werden.

Viel Spaß!

Visualisierung der OpenStreetMap Daten-Historie für Heidelberg

 

 

 

 

Mit diesem python-Snippet kannst du doppelte Werte in einer Spalte der Attributtabelle eines Shapefiles in ArcMap finden. Der erste der doppelten Werte wird durch “0″ alle übrigen doppelten Werte mit “1″ gekennzeichnet.

Zuerst musst du eine neue Spalte vom Typ “Short Integer” mit einem beliebigen Namen in der Attributtabelle erstellen. Anschließend im Felberechner (Field Calculator) den Parser auf python umstellen und ein Haken bei “Codeblock anzeigen” setzen.

Im Bereich “Pre-Logic Script Code:” muss folgender Codeblock eingegeben werden. Dabei musst du beachten die Einrückungen genau so auch zu übernehmen:

uniqueList = []
def istDuplikat(inValue):
 if inValue in uniqueList:
 return 1
 else:
 uniqueList.append(inValue)
 return 0 

 

Im Unteren Block diese Zeile einfügen und zwischen die beiden “!” den Namen deiner Spalte mit den Duplikaten eingeben

istDuplikat( !DEINE SPALTE MIT DEN DUPLIKATEN! )

Mit dem Tool osm2nds von Eva Peters lassen sich aus OSM-Daten für ArcGIS und dem Network-Analyst routingfähige Netzwerke erstellen. In diesem älteren Blogpost habe ich bereits geschrieben was du dazu benötigst und wie du dabei am besten vorgehst.

 

1. Problematik

Das Tool kann jedoch nicht beliebig große Datensätze verarbeiten. Ein Update für größere Netzwerke ist erst in unbestimmter Zeit geplant. Über einen kleinen Zwischenschritt kannst du die Größe deines Gebietes trotzdem erweitern. Mit der Hilfe von osmosis, dem Allzweck-Tool für die Bearbeitung von OSM-Daten, entfernst du einfach im Vorhinein überflüssige Daten aus dem *.osm-File. weiterlesen…

Neben der gegenwärtigen Fülle an Daten in OSM ist auch deren Aktualität und Genauigkeit von großer Bedeutung. Martijn van Exel wählt hierfür in einem Blogpost den Begriff der „staleness“. leo.org nennt es „Abgestandenheit“, was so viel bedeutet, wie die Zeit, die seit dem letzten Edit (Geometrie oder Tags) in der Datenbank vergangen ist. Diese Informationen müssen anschließend aber auch korrekt interpretiert werden: Ein lange nicht editiertes bzw. berührtes Objekt kann zum einen bedeuten, dass sich hier seit der letzten Änderung tatsächlich nichts mehr verändert hat aber zum anderen auch, dass Veränderungen auftraten, diese jedoch noch nicht in OSM gemappt bzw. angepasst wurden. Wie dem auch sei, ein Blick auf lange nicht editierte Bereiche kann lohnenswert sein.

Hier einige Screenshots der „staleness“ von ausgewählten Bereichen vom 15.07.2012 in und um Heidelberg (dunkelgrün: <6 Monate; hellgrün: 6-12 Monate; hell-violett: 12-24 Monate; violett: >24 Monate). Die Visualisierung wurde auf Basis dieses wirklich guten Tutorials von mvexel erstellt.

Hier eine Übersicht über Mannheim und Heidelberg, wo bereits deutliche Unterschiede zu erkennen sind:

Mannheim und Heidelberg

weiterlesen…

Hier eine schöne Karte mit aktuellen Temperaturen als Overlay. Die Overlay-Informationen werden mehrmals in der Stunde aktualisiert übermittelt. Die Clusterfunktion im Hintergrund ermöglicht dabei auch bei relativ geringen Zoomleveln eine angenehme Darstellung. Leaflet als javaScript Bibliothek macht die Anwendung zudem sehr schön smooth. Den Quellcode dieses Beispiels kannst du hier downloaden.

Es können aber auch OpenLayers, und Google-maps verwendet werden. Fertige Beispiele gibt es unter http://openweathermap.org/example

 

Mit dem Tool GMapToGPX lässt sich sehr komfortabel Routen von google-maps als *.gpx exportieren. Diese können anschließend z.B. auf eine GPS-Gerät als Routing-Grundlage genuzt werden. Dafür benötigst du lediglich ein kleines Tool, das du in die Lesezeichenleiste deines Browsers kopieren musst. Dieses findest du unter http://www.elsewhere.org/journal/gmaptogpx/.

Ziehe den gelb umrandeten Link per “Drag & Drop” in deine Lesezeichenleiste. Anschließend besuchst du maps.google.de und gibst deine gewünschte Route ein. Wurde diese erfolgreich berechnet musst du auf das Bookmarklet klicken um die Route im *.gpx Format anzuzeigen. Diese kopierst du anschließend in einen Texteditor und speicherst sie mit der Endung “.gpx” ab. Das war’s!

Achtung: Ich benötigte die Route für mein Garmin eTrex Vista HCx. Um keine Probleme beim Import mit MapSource und der anschließenden Anzeige auf dem GPS zu bekommen, musste ich die Datei unter UTF-8 abspeichern.

Wollte man bisher administrative Grenzen aus OSM exportieren war dies nicht gerade einfach. Nun bin ich auf eine wirklich sehr schöne und komfortable Anwendung von MisterBoo gestoßen, die du unter http://ags.misterboo.de/ erreichen kannst. Diese ermöglicht u.a. den Download einzelner administrativer Grenzen aus OSM. Hilfreich ist dabei die Aufteilung nach der deutschen Verwaltungsgliederung (u.a. Bundesländer, Landkreise/Kreisfreie Städte und Gemeinden).

Die Daten werden als GeoJSON zum Download angeboten. Diese wiederum können bequem per “drag and drop”  in QuantumGIS geöffnet und dort beispielsweise als shapefile abgespeichert werden.

Neben der eigenen Gestaltung von google-maps Daten (in diesem Artikel beschrieben) kann die API auch als Viewer für einen WebMapService (WMS) genutzt werden. In diesem Beispiel habe ich einen OGC-konformen WMS eingebunden, der von der Landesanstalt für Umwelt, Messungen und Naturschutz Baden-Württemberg bereitgestellt wird. Er zeigt die mittlere jährliche Solareinstrahlung für horizontale Flächen in [kWh/m²] an. Damit du einfach nach einer Adresse suchen kannst habe ich zudem die Google Geocoding API V3 eingebunden, mit er du auf die Hausnummer genau nach Adressen suchen kannst. Die Karte kannst du hier betrachten bzw. downloaden. weiterlesen…

Unter http://www.openflights.org/data.html kannst du Daten zu Flughäfen, Airlines und Flugrouten beziehen. Die Daten sind gut beschrieben und müssen zur Verwendung am besten in einem *.csv-file geladen werden. Mit einem GIS deiner Wahl oder PostGIS können die Daten visualisiert werden. Dazu demnächst noch ein Tutorial, wie du ansprechende Karten mit den Daten in ArcGIS erstellen kannst.

Die Daten unterliegen der OpenDatabaseLicence. Dies bedeutet, dass du die Daten teilen, verändern und zu deinem Zweck nutzen darfst.