Dieser Fehler kann im Python-Geoverarbeitungsfenster auftreten, wenn python in ArcGIS nicht korrekt konfiguriert ist. Dies hat zur Folge, dass ArcPy ebenfalls nicht funktionieren wird, da ArcMap nicht auf deine python Pakete zugreifen kann.

Das Problem kann folgendermaßen gelöst werden:

  • Falls nicht bereits geschehen, installiere python.
  • Erstelle in deinem Python-Installationsverzeichnis (bei mir: C:\Python27\Lib\site-packages) ein sog. Path-File: „Desktop10.1.pth“ (ohne Anführungszeichen). Sollte dies bereits bestehen, müssen die Pfade aus dem nächsten Punkt ggf. korrekt angepasst werden.
  • In dieses Path-File müssen nun die Pfade zu ArcPy, dem bin und dem site-packages-Verzeichnis je in einer neuen Zeile eingetragen werden. Bei mir sieht das wie folgt aus:

C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.1\bin
C:\Python27\ArcGIS10.1\Lib\site-packages

 

Abschließend muss ArcMap neu gestartet werden. Nun sollten die Befehle import arcpy bzw. import numpy keine Fehler mehr hervorheben.

In diesem Artikel will ich aufzeigen, wie in der Attributtabelle eines Shapefiles oder einer Feature-Class in ArcMap eine ID in einer Spalte inkrementell (1, 2, 3, etc.) erhöht werden kann.

Erstelle hierzu ein neues Feld vom Typ „short integer“ in deiner Attributtabelle, ich nenne es in meinem Fahl „unique_id“ (ohne Anführungszeichen).

Nun musst du in den Editiermodus wechseln und per Rechtsklick auf den Titel der neu angelegten Spalte „Feldberechnung“ (Field Calculator) auswählen.

Stelle nun oben den Parser auf „Python“ um und setzte einen Haken bei „Code-Block anzeigen“.

Im Bereich “Pre-Logic Script Code” kopierst du nun folgenden Codeblock (Einzug berücksichtigen):


zaehler = 0
def uniqueID():
  global zaehler
  zaehler += 1
  return zaehler


Im Bereich darunter wird durch die Eingabe von

uniqueID()


die Funktion aufgerufen. Folgendes Bild zeigt die korrekte Eingabe im Feldberechner:

Feldberechner

Achtung: Arbeitest du in einer Feature-Class wird sich die inkrementelle Erhöhung an der existierenden OBJECTID orientieren.

1) Ausgangsthese

In verschiedenen Arbeiten habe ich mich mit intrinsischen Qualitätsanalysen von OpenStreetMap Daten beschäftigt und dazu einen Blogpost bzw. verschiedene Veröffentlichungen geschrieben. Kurzum: Für verschiedene Fragestellungen kann ein OSM-Full-History-Dump für Qualitätsaussagen mit unterschiedlichem Erfolg genutzt werden. In diesem Artikel möchte ich hervorheben, welche Bedeutung dabei der (räumliche) Kontext hat und zeigen, weshalb intrinsische Indikatoren niemals losgelöst voneinander betrachtet werden dürfen. Für diese Analysen habe ich den iOSMAnalyzer und ein OSM-Full-History-Planet File vom 02.11.2013 verwendet.

 

2) Aktualität aller Nodes

Einen ersten Eindruck vermittelt die Aktualität der Daten. In folgendem Diagramm wird die Aktualität aller Nodes (deren letztmalige Bearbeitung) in unserem Gebiet visualisiert. Etwas weniger als 50% der Nodes sind älter als 2 Jahre, ca. 25% hingegen jünger als 6 Monate; eine mäßiger Wert, weder als “schlecht” noch als “hervorragend” einzustufen.

Aktualität aller OSM Nodes im ausgewählten Gebiet

weiterlesen…

Abhängig vom Import der Daten liegen in einer PostgreSQL/PostGIS Datenbank die OSM-Tags (Attribute in From von Schlüssel-Wert-Paaren) eines Features alle in einer einzigen Zelle vor. Diese können mit verschiedenen postgres-Funktionen problemlos in der Datenbank weiter verarbeitet werden.

Möchte man die Daten jedoch in ein Shapefile exportieren steht man vor dem Problem, dass diese den hstore-Datentyp nicht unterstützen. In Shapefiles muss jeder Schlüssel einzeln in einer eigenen Spalte vorliegen. Da ich dies in letzter Zeit immer wieder benötigte, habe ich mir ein kleines, simples python Script (hstore-splitter) geschrieben, dass genau dies für einen übernimmt. Es schreibt die 245 meist-verwendeten Schlüssel absteigend sortiert mitsamt ihren Werten in neue Spalten der Datenbanktabelle. Da Shapefiles maximal 255 Spalten haben dürfen ist eine Limitierung erforderlich, die jedoch im Script auch verringert werden kann.

Vorraussetzungen für ein erfolgreiches Ausführen sind:

In diesem Artikel möchte ich kurz den “iOSMAnalyzer” vorstellen, den ich in meiner Diplomarbeit und anschließenden Zeit an der GIScience Working Group Heidelberg entwickelt habe.Vergangene Woche habe ich das Tool auf der State of the Map 2013 in Birmingham vorgestellt. Dieses Tool ermöglicht die intrinsische Qualitätsanalyse von OpenStreetMap Daten auf Basis eines OSM-Full-History-Dumps. Intrinsisch in diesem Kontext meint, dass zur Analyse kein Referenzdatensatz verwendet wird. Lediglich durch die Analyse der OSM-Editierhistorie können Aussagen zur Qualität der Daten approximiert werden. Das Tool wurde unter der GNU General Public License V3 veröffentlicht und kann von meinem GitHub Repository heruntergeladen werden. Dort findest du auch eine Dokumentation zur Installation und Verwendung.

Bei Fragen & Feedback kannst du mich jederzeit kontaktieren. Viel Spaß!

Die Arbeit mit dem von esri entwickelten GRID Format für Raster hat mir schon des Öfteren Kopfschmerzen bereitet und mich zu stundenlangem Recherchieren von Fehlern in meinen Skripten gezwungen. Letztlich waren dies jedoch zumeist Probleme, die vom Format an sich ausgingen und daher entsprechend einfach zu berücksichtigen sind.

Hier eine erste Liste mit den Problemen, die bei mir am häufigsten auftraten und wie sie umgangen werden können:

  • GRIDs vertragen keine Sonderzeichen im Namen und dürfen maximal 9 Zeichen lang sein. Multiband GRIDs hingegen dürfen eine Namensläge von maximal 13 haben. Außerdem war es bei mir manchmal der Fall, dass Skripte abstürzten, wenn sie eine Zahl als erstes Zeichen im Dateinamen hatten. Auch das solltest du vermeiden. weiterlesen…

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…