Die beste Sprache, um mit GDAL zu programmieren

20

Ich werde anfangen, Programme zu erstellen, um geografische Daten von einem PostGIS-Server zu verarbeiten, und werde GDAL verwenden.

Nach Ihrer Erfahrung mit der besten Sprache, um damit zu programmieren? Ich kann in Perl und Python programmieren, möchte aber die Sprache mit weiteren Codeteilen zur Wiederverwendung, Beispielen, Bibliotheken usw. kennen.

SonOfabox
quelle
6
Ich habe keinen Beweis dafür, aber ich habe das Gefühl, dass Python viel mehr Bibliotheken und Benutzer als Perl hat. Das ist also meine Stimme!
blah238
Ich denke, dass es bereits viele Apps gibt, die mit Postgis arbeiten. Wenn Sie eine andere Frage stellen, die besagt, was Ihre Bedürfnisse sind, können Sie sich wahrscheinlich Arbeit leisten :)
Francisco Puga

Antworten:

26

Persönlich genieße ich es wirklich, mit GDAL in Python zu programmieren. Sobald Sie es installiert haben und wissen, wie es funktioniert, ist es ziemlich einfach. Mit Python können Sie auch einige wirklich nützliche, im Lieferumfang enthaltene Module (os, math, string, sys, random usw.) sowie Module von Drittanbietern wie NumPy (nützlich für Rasteroperationen) verwenden.

Eine umfassende Liste der GIS-Python-Bibliotheken finden Sie hier: Welche Python-Tools / Module / Add-Ins sind in GIS von entscheidender Bedeutung? ).

Eine wirklich gute Einführung in die Python GDAL-Bindungen finden Sie hier:

http://www.gis.usu.edu/~chrisg/python/2009/

Mit ein wenig Know-how und Lesen können Sie in kürzester Zeit loslegen. Sie können beispielsweise ein Shapefile in zwei Zeilen erfassen:

driver = ogr.GetDriverByName('ESRI Shapefile')
datasource = driver.Open('shapefile.shp')

Sobald Sie die Dokumentation ( http://www.gdal.org/annotated.html ) gelesen haben und wissen, was Sie tun, können Sie die Datei ganz einfach nach Belieben bearbeiten.

Hier finden Sie einige Beispiele dafür, was in einfachem und minimalem Code möglich ist:

http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/

James Milner
quelle
13

Es scheint mir, dass dies eine ziemlich subjektive Frage ist. Aus der Sicht von GDAL / OGR werde ich sagen, dass in Python und Perl im Wesentlichen die gleichen Funktionen der Bibliothek verfügbar sind. Eine Menge hängt also möglicherweise von Ihrer Spracheinstellung und den anderen gewünschten Komponenten ab.

Ich bin selbst ein Python-Typ, aber ich möchte mich ein wenig für Perl aussprechen und feststellen, dass die von Ari Jolma gepflegte GeoInformatica-Umgebung GDAL / OGR und eine Reihe anderer nützlicher Dinge für Perl-Skripter enthält. Ich ermutige Sie, es zu überprüfen:

http://geoinformatics.tkk.fi/

Frank Warmerdam
quelle
7

Ohne zu hinterfragen ist die beste Sprache Python . Weil es viele andere Möglichkeiten eröffnet, die über die Verwendung von GDAL hinausgehen:

1) Mit Python können Sie eine Verbindung zu Ihrem Postgis-Server mit einem ORM wie SQLAlchemy herstellen, das viele Funktionen auf hoher Ebene bereitstellt, um Ihre Daten zu verarbeiten und für GDAL vorzubereiten.

2) Sie können andere Python-Bibliotheken verwenden, um mit Geodaten zu arbeiten, z. B. Shapely oder High Performance Geostatistics Library .

3) Sie haben sehr gute Bindungen für die Kartenausgabe in Python, wie Mapnik .

4) Sie haben einige Frameworks und High-Level-APIs, die Ihnen viel Arbeit ersparen, wie Geodjango (Sie können es lokal verwenden) oder die Qgis-API .

Pablo
quelle
6

Dritte Stimme für Python. Für mich ist es neben den hervorragenden Antworten auch so, dass ich es satt habe, vor einiger Zeit ein halbes Dutzend Skriptsprachen für verschiedene Jobs zu kennen. Sobald ESRI Python unterstützt, habe ich sie alle fallen gelassen (fast - Javascript ist es) immer noch nützlich) zugunsten von Python. Das Tolle ist, dass auch andere Nicht-GIS-Pakete, die ich verwende, Python unterstützen, sodass ich GDAL / OGR über die APIs aller Arten von Software aufrufen kann. Python ist auch eine Hochsprache, daher schreibe ich ungefähr ein Zehntel des Codes, den selbst eine verwaltete Sprache wie C # benötigt.

MappaGnosis
quelle