Itu aneh, seolah-olah orang tiba-tiba menemukan kekuatan Python (tanpa ArcPy yang hanya satu modul Python antara lain), lihat misalnya pertanyaan Visualisasikan shapefile dengan Python :
- pemrosesan geospasial dengan Python memiliki sejarah yang sangat panjang, jauh lebih tua dari Arcpy (atau arcgisscripting) -> tidak ada "meniru" kemampuan ArcPy di sini, seperti yang dikatakan Paul, sebagian besar sudah ada sebelum ArcPy.
- referensi untuk modul Python adalah Python Package Index ( Pypi ) dan ada bagian khusus: Topik :: Ilmiah / Teknik :: GIS
- Anda dapat melakukan apa saja dengan modul-modul ini dan seringkali lebih mudah dan lebih cepat daripada ArcPy karena itu adalah Python murni (tidak ada kursor ...).
- Shapely adalah salah satu modul ini untuk memproses geometri geospasial -> menghitung luas poligon dan mengonversi poligon menjadi titik ..
- jika Anda ingin memproses layer vektor, ada osgeo / ogr , Fiona atau Pyshp (dan yang lainnya, yang kurang digunakan) -> query sebuah shapefile dengan atribut, buat layer baru dari seleksi, hitung luas poligon, konversikan poligon ke titik
- untuk memproses raster, standarnya adalah osgeo / gdal
- untuk analisis spasial, ada Pysal
- untuk 3D, Anda dapat menggunakan modul Ilmiah lainnya seperti numpy atau scipy (algoritma 3D, grid, tetapi juga statistik, geostatistik, 2D atau 3D)
- Dan saya tidak berbicara tentang mapnik , matplotlib / basemap , Geodjango dan ...
Anda dapat menggabungkan semua (Pysal dengan rupawan, ...) dan mencampurnya dengan modul Ilmiah lainnya.
Jadi untuk contoh Skrip Python, cari Pyshp Fiona, ogr, gdal atau bentuknya di gis.stackexchange atau internet (banyak contoh, tidak hanya dalam bahasa Inggris).)
Salah satunya dalam bahasa Perancis (skrip dan gambarnya universal!):
- Python: Menggunakan vektor dan lapisan raster dalam perspektif geologis, tanpa perangkat lunak GIS
yang lain dalam bahasa Inggris:
- GIS dengan Python, Shapely, dan Fiona
dan dalam bahasa Spanyol
- Penentuan area poligon tidak beraturan menggunakan koordinat titik
di gis.stackexchange
- Profil ketinggian 10 km setiap sisi garis
- Memperbarui Atribut menggunakan Pyshp
- Bagaimana cara membuat shapefile 3D dari raster?
- Skrip Python untuk mendapatkan perbedaan elevasi antara dua titik
- dll
Script yang disajikan oleh Aaron dapat ditulis lebih sederhana dengan Fiona yang hanya menggunakan kamus 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')
dan jika Anda menggunakan Shapely sebagai tambahan:
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')
Ada juga dua buku:
Pengembangan Geospasial Python dari Eric Westra.
Belajar Analisis Geospasial dengan Python of Joel Lawhead
Python juga digunakan sebagai bahasa scripting dalam aplikasi SIG lainnya seperti QGIS (Quantum GIS), GRASS GIS, gvSIG atau OpenJump atau pemodel 3D seperti Paraview (dan Blender juga!). Dan Anda dapat menggunakan sebagian besar modul geospasial di semua aplikasi ini (lihat Memvisualisasikan data QGIS dengan Blender )