¿Está buscando herramientas / módulos / complementos de Python para GIS?

31

Con ArcGIS 10, Python se ha convertido en el lenguaje de scripting de facto para ESRI. Mientras que el software de código abierto líder como QGIS, GeoServer, PostGIS, todos son compatibles con Python. Por lo tanto, se volvió importante conocer / aprender Python para desarrolladores de GIS y usuarios.

¿Alguien puede hacer una lista de tales herramientas / módulos / complementos en Python que son cruciales en el SIG?

    
pregunta thelastray 21.06.2017 - 15:12

10 respuestas

38
  • NumPy : NumPy es el paquete fundamental para la computación científica con Python. Contiene entre otras cosas:

    • un poderoso objeto de matriz N-dimensional
    • funciones sofisticadas (de difusión)
    • herramientas para integrar código C / C ++ y Fortran
    • capacidades útiles de álgebra lineal, transformada de Fourier y números aleatorios

    Además de sus obvios usos científicos, NumPy también se puede usar como un eficiente contenedor multidimensional de datos genéricos. Se pueden definir tipos de datos arbitrarios. Esto permite que NumPy se integre de manera sencilla y rápida con una amplia variedad de bases de datos.

  • SciPy : SciPy (pronunciado "Sigh Pie") es un software de código abierto para matemáticas, ciencias e ingeniería. También es el nombre de una conferencia muy popular sobre programación científica con Python. La biblioteca SciPy depende de NumPy , que proporciona una manipulación de matrices N-dimensional conveniente y rápida. La biblioteca SciPy está diseñada para funcionar con matrices NumPy y proporciona muchas rutinas numéricas fáciles de usar y eficientes, como las rutinas para la integración y optimización numérica. Juntos, se ejecutan en todos los sistemas operativos populares, se instalan rápidamente y son gratuitos. NumPy y SciPy son fáciles de usar, pero lo suficientemente poderosos como para depender de algunos de los principales científicos e ingenieros del mundo. Si necesitas manipular los números en una computadora y mostrar o publicar los resultados, ¡prueba a SciPy!

  • Shapely : Shapely es un paquete de Python con licencia BSD para la manipulación y el análisis de objetos geométricos planos. Se basa en las bibliotecas GEOS (el motor de PostGIS) y JTS (desde las que se transporta GEOS) de gran despliegue. Esta dependencia C se intercambia por la capacidad de ejecutar a una velocidad increíble. Shapely no se ocupa de los formatos de datos ni de los sistemas de coordenadas, pero puede integrarse fácilmente con los paquetes que están.

  • enlaces de Python GDAL : este paquete y las extensiones de Python son una serie de herramientas para programar y manipular el < a href="http://www.gdal.org/"> GDAL Biblioteca de abstracción de datos geoespaciales.

  • GeoDjango: GeoDjango pretende ser un marco web geográfico de clase mundial. Su objetivo es facilitar al máximo la creación de aplicaciones web de SIG y aprovechar el poder de los datos habilitados espacialmente.
  • PyProj
  • SpatialPython : repositorio de github bien documentado.
respondido por el blah238 16.09.2018 - 09:54
11

Para responder a mi propia pregunta, acabo de encontrar este módulo de Pythons. Aunque todavía no lo he usado, se ve emocionante.

  

NetworkX es un paquete de software en lenguaje Python para la creación,   manipulación y estudio de la estructura, dinámica y funciones de   redes complejas.

Y

  

rtree : índice espacial de Python GIS

    
respondido por el thelastray 17.04.2012 - 07:07
10

vaya a Topic :: Scientific / Engineering :: GIS y tiene todos los módulos de Python para SIG (para trabajar con shapefiles, rásteres, KML, GML, GPX geocodificación, etc.)

Los más importantes ya se han citado, pero también recomiendo Fiona " Fiona proporciona una interfaz de Python mínima y sin complicaciones a la biblioteca de acceso a datos geodatos más confiable de la comunidad de SIG de código abierto y se integra fácilmente con otros paquetes de Python GIS como pyproj, Rtree y Shapely. "

y para redes con shapefiles o Esri Feature Class con módulo Networkx Geoprocesamiento de redes geométricas : " Por lo que puedo decir, ESRI no ha lanzado ninguna herramienta de geoprocesamiento para su red geométrica " o Alternativas a pgRouting o Python: cómo transformar un shapefile (o clase de entidad ESRI) en un red topológica (gráfico) (en francés)

import networkx as nx
G = nx.read_shp('pointshapefile.shp')
print(G.nodes())
# result [(1.0, 2.0), (3.0, 2.0), (0.0, 0.0), (3.0, 1.0), (4.0, 4.0), (2.0, 1.0), (2.0, 4.0), (1.0, 3.0), (2.0, 3.0), (1.0, 4.0), (4.0, 3.0), (4.0, 2.0), (3.0, 4.0), (1.0, 1.0)]
print(G.edges())
# result [((1.0, 2.0), (1.0, 1.0)), ((3.0, 2.0), (2.0, 1.0)), ((3.0, 1.0), (2.0, 1.0)), ((4.0, 4.0), (3.0, 4.0)), ((2.0, 1.0), (1.0, 1.0)), ((2.0, 4.0), (2.0, 3.0)), ((1.0, 3.0), (1.0, 2.0)), ((2.0, 3.0), (1.0, 2.0)), ((1.0, 4.0), (1.0, 3.0)), ((4.0, 3.0), (4.0, 2.0)), ((4.0, 2.0), (3.0, 2.0)), ((3.0, 4.0), (2.0, 3.0)), ((1.0, 1.0), (0.0, 0.0))]

# shortest path
print(nx.astar_path(H,(1.0, 4.0),(4.0, 2.0),dist))
# result [(1.0, 4.0), (1.0, 3.0), (1.0, 2.0), (2.0, 3.0), (3.0, 2.0), (4.0, 2.0)]

# and so with all the algorithms of Networkx module
# you can also export the results in shapefile format

Uso Shapely, Fiona, GDAL / OGR, Pyshp, Networkx y otros en QGIS y GRASS GIS sin problemas (y con matplotlib o descartes para gráficos interactivos a). A menudo tienen algoritmos más fáciles de usar para el tratamiento.

Algunos de estos módulos también se pueden usar en ArcPy con problemas porque ArcPy usa la versión 1.3 de Numpy, obsoleta (ahora versión 1.6.1 ...) y no puede actualizarla sin romper el módulo ArcPy.

    
respondido por el gene 13.04.2017 - 14:34
8

Para la representación cartográfica de datos GIS:

  1. Enlaces de Python de Mapnik
  2. MapServer MapScript
respondido por el user890 17.04.2012 - 01:01
7

Agregando a la lista:

PySAL - "biblioteca de código abierto multiplataforma de funciones de análisis espacial"

disponible en: enlace

pyshp: un lector y escritor de python shapefile en python puro

disponible en: enlace

Editar:

Alguien me mostró este módulo hoy, puede ser de algún interés para las personas. Ejemplo de vector GIS y datos raster para el uso de python:

gisdata - enlace

    
respondido por el Zero Qualms 13.05.2012 - 11:54
5

Uso y recomiendo ReportLab Toolkit , la biblioteca de PDF de código abierto para la creación programática de documentos en PDF. formato. Como se anuncia en sus páginas, es una solución robusta, flexible, probada por el tiempo y sólida en la industria. Es un software gratuito de código abierto escrito en Python, pero su sintaxis no es la más fácil con la que he tratado :-)

En ArcGIS 10.0 es invaluable para escribir informes en formato PDF desde clases de entidad y tablas, aunque algunas de estas funciones pueden no ser tan necesarias en 10.1 cuando el acceso a los informes en PDF del redactor de informes de ArcGIS esté disponible para ArcPy.

    
respondido por el PolyGeo 17.04.2012 - 03:12
4

En el mundo Django:

  • vectorformats (por escupir a nuestro geojson ya que el geodjango no lo admite de forma nativa);
  • Geraldo (para informes, utiliza ReportLab);
respondido por el George Silva 18.04.2012 - 18:14
2

Todavía hay más:

GRASS : puedes llamar a GRASS con Python.

FMEObjects - Si tiene una FME licencia también tienen un módulo de Python que te permite llamar a algunos de sus geniales transformadores.

    
respondido por el GIS-Jonathan 17.04.2012 - 13:05
1

La distribución de paquetes de Enthought tiene un lote de los paquetes enumerados anteriormente agrupados en una plataforma cohesiva. Incluso se han asegurado de que se pueda configurar fácilmente para trabajar desde el indicador de python de ArcGIS y que arcpy se pueda usar desde su indicador de python. Lo utilizamos en nuestras oficinas. De nuestra wiki interna:

La mejor manera de conectar ArcGIS y EPD es instalar ambos y vincularlos mediante archivos .pth para que el sys.path de Python incluya los otros módulos del sistema. El archivo "zzEPD.pth" permite que ArcGIS Python acceda a los módulos de EPD, y "zzArcGIS.pth" permite que EPD Python acceda a arcpy. (El prefijo "zz" está ahí para garantizar que los paquetes "extraños" se encuentren en último lugar en sys.path para evitar posibles conflictos para los módulos que existen en ambas instalaciones de Python). Si se encuentra con conflictos de ArcGIS, simplemente cambie el nombre del archivo a .txt ("zzEPD.pth.txt") y reinicie ArcGIS y ArcGIS ya no "verá" los módulos EPD (no estarán en sys.path).

* zzEPD.pth: colocar en la carpeta \ Python27 \ Desktop10.1 \ lib \ site-packages *

# zzEPD.pth 
# Path to Enthought modules
C:\Python27\epd32\lib\site-packages

* zzArcGIS.pth: lugar en la carpeta \ Python27 \ epd32 \ lib \ site-packages *

# zzArcGIS.pth 
# copy of \Python27\Desktop10.1\lib\site-packages\ArcGIS.pth
C:\ArcGIS\Desktop10.1\bin
C:\ArcGIS\Desktop10.1\arcpy
C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts
    
respondido por el Roland 12.06.2013 - 18:23
1

No es específico de GIS, pero para depurar python, IPDB es increíble. enlace

Para usarlo, solo coloque las siguientes líneas en su código:

import ipdb
ipdb.set_trace()

Luego, en tu shell de Python, puedes colocar cualquier parte del código e interactuar con todas las variables en ese estado actual.

    
respondido por el djq 12.06.2013 - 19:15

Lea otras preguntas en las etiquetas