Que extraño, como si la gente de repente se descubrió el poder de Python (sin ArcPy que es solo un módulo de Python entre otros), ver por ejemplo la cuestión de Visualizar shapefile en Python:
-
geoespacial de procesamiento en Python tiene una historia muy larga, mucho mayor que el de Arcpy (o arcgisscripting) -> no es "imitar" las capacidades de ArcPy aquí, como dice Pablo, la mayoría ya estaban allí antes de ArcPy.
- la referencia para los módulos de Python es la de Python Package Index (Pypi), y hay una sección dedicada: Tema :: Científica/Ingeniería :: SIG
- usted puede hacer nada con estos módulos y a menudo es más fácil y más rápido que ArcPy porque es puro Python (no cursores...).
-
Bien formada, es uno de estos módulos para el procesamiento geoespacial geometrías -> calcular áreas de polígonos y convertir los polígonos a los puntos..
- si desea procesar las capas vectoriales, hay osgeo/ogr, Fiona o Pyshp (y otros, menos usado) -> consulta de un archivo shapefile por atributos, crear nueva capa a partir de la selección, calcular áreas de polígonos, convertir los polígonos a los puntos de
- para el procesamiento de los rásteres, el estándar es de osgeo/gdal
- para el análisis espacial, hay Pysal
- para 3D, se pueden utilizar otros Científicos módulos como numpy o scipy (algoritmos 3D, las redes, pero también las estadísticas, la geoestadística, 2D o 3D)
- Y no hablo de mapnik, matplotlib/mapa base,Geodjango y ...
Usted puede combinar todos (Pysal con shapely, ...) y se mezclan con las de otros Científicos módulos.
Por lo tanto para la secuencia de Comandos de Python ejemplos, búsqueda de Pyshp Fiona, ogr, gdal o bien proporcionado en el sig.stackexchange o de internet (hay muchos ejemplos, no sólo en inglés).)
Uno de ellos en francés (las secuencias de comandos y las cifras son universales !):
- Python: el Uso de capas de vector y ráster en una perspectiva geológica, sin software GIS
otro en inglés:
- SIG con Python, bien formada, y Fiona
y en español
- Determinación de áreas de polígonos irregulares utilizando las coordenadas de los vértices
en el sig.stackexchange
- El perfil de elevación de 10 km a cada lado de una línea
- La actualización de los Atributos mediante Pyshp
- Cómo crear un 3D shapefile de una trama?
- Secuencia de Comandos de Python para la obtención de la diferencia de elevación entre dos puntos
- etc
El guión presentado por Aaron puede ser escrito más simplemente con Fiona que sólo utiliza diccionarios de Python:
import fiona
with fiona.open('sites.shp', 'r') as input:
with open('hw1a.txt', 'w') as output:
for pt in input:
id = pt['properties']['id']
cover = pt['properties']['cover']
x = str(point['geometry']['coordinates'][0])
y = str(point['geometry']['coordinates'][21])
output.write(id + ' ' + x + ' ' + y+ ' ' + cover + '\n')
y si uso bien formada, además de:
from shapely.geometry import shape
with fiona.open('sites.shp', 'r') as input:
with open('hw1a.txt', 'w') as output:
for pt in input:
id = pt['properties']['id']
cover = pt['properties']['cover']
x = str(shape(pt['geometry']).x)
y = str(shape(pt['geometry']).y)
output.write(id + ' ' + x + ' ' + y+ ' ' + cover + '\n')
Hay también dos libros:
Python Geoespacial Desarrollo de Eric Westra.
El aprendizaje de Análisis Geoespacial con Python de Joel Lawhead
Python también es utilizado como un lenguaje de secuencias de comandos en otras aplicaciones de SIG como QGIS (Quantum GIS), GRASS GIS, gvSIG o OpenJump o modeladores 3D como Paraview (y Blender también !). Y puedes utilizar la mayoría de los módulos geoespaciales en todos estos de la aplicación (consulte Visualización de QGIS datos con Blender)