La meilleure langue pour programmer avec GDAL

20

Je vais commencer à créer des programmes pour gérer les données géographiques à partir d'un serveur PostGIS, et je vais utiliser GDAL.

Selon votre expérience, avec la meilleure langue pour programmer avec elle? Je peux programmer en Perl et Python, mais j'aimerais connaître le langage avec plus de morceaux de code à réutiliser, des exemples, des bibliothèques, etc.

SonOfabox
la source
6
Je n'en ai aucune preuve, mais mon sentiment est que Python a beaucoup plus de bibliothèques et d'utilisateurs que Perl. Voilà mon vote!
blah238
Je pense qu'il existe déjà de nombreuses applications pour travailler avec postgis. Si vous posez une autre question en disant quels sont vos besoins, vous pouvez probablement vous permettre de travailler :)
Francisco Puga

Réponses:

26

Personnellement, j'aime vraiment coder avec GDAL en Python. Une fois que vous l'avez installé et que vous avez compris comment cela fonctionne, c'est assez facile. De plus, avec python, vous pouvez utiliser des modules intégrés `` batteries incluses '' vraiment utiles (os, mathématiques, chaîne, sys, aléatoire, etc.), ainsi que des modules tiers tels que NumPy (utile pour les opérations raster) entre autres.

Pour une liste complète des bibliothèques GIS Python, voir ici: Quels sont les outils / modules / compléments Python cruciaux dans SIG? ).

Une très bonne introduction aux liaisons Python GDAL peut être trouvée ici:

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

Vous pouvez commencer en un minimum de temps avec un peu de savoir-faire et de lecture, par exemple, vous pouvez saisir un fichier de formes en 2 lignes:

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

Il est très facile de faire ce que vous voulez dans le fichier une fois que vous avez lu la documentation ( http://www.gdal.org/annotated.html ) et que vous savez ce que vous faites.

Voir ici pour quelques exemples de ce qui est possible en code simple et minimal:

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

James Milner
la source
13

Il me semble que c'est une question assez subjective. Du point de vue de GDAL / OGR, je dirai que essentiellement les mêmes capacités de la bibliothèque sont exposées en Python et Perl. Ainsi, beaucoup de choses peuvent dépendre de votre préférence linguistique et des autres composants que vous pourriez souhaiter.

Je suis moi-même un python, mais je veux parler un peu au nom de perl et noter que l'environnement GeoInformatica maintenu par Ari Jolma comprend GDAL / OGR et un tas d'autres choses utiles pour les scripteurs perl. Je vous encourage à le vérifier:

http://geoinformatics.tkk.fi/

Frank Warmerdam
la source
7

Sans remettre en question le meilleur langage est Python . Parce qu'il ouvre beaucoup d'autres possibilités au-delà de l'utilisation de GDAL:

1) Avec python, vous pouvez vous connecter à votre serveur postgis avec un ORM comme SQLAlchemy qui fournira de nombreuses fonctions de haut niveau pour gérer vos données et les préparer pour gdal.

2) Vous pouvez utiliser d'autres bibliothèques python pour travailler avec des géodonnées, comme Shapely ou High Performance Geostatistics Library .

3) Vous avez de très bonnes liaisons pour la sortie de carte en python, comme Mapnik .

4) Vous disposez de frameworks et d'API de haut niveau qui vous épargneront beaucoup de travail comme Geodjango (vous pouvez l'utiliser localement) ou Qgis API .

Pablo
la source
6

Troisième vote pour Python. Pour moi, en plus des excellentes réponses ci-dessus, c'est parce que j'en ai marre d'avoir à connaître une demi-douzaine de langages de script pour différents travaux il y a un certain temps, donc dès que ESRI supportait Python, je les ai tous abandonnés (presque - Javascript est toujours utile) en faveur de Python. La grande chose est que d'autres packages non SIG que j'utilise prennent également en charge Python, donc je peux appeler GDAL / OGR à partir des API de toutes sortes de logiciels. Python est également un langage de très haut niveau, donc j'écris sur un dixième du code dont même un langage managé comme C # a besoin.

MappaGnosis
la source