Saya tampaknya menggunakan paket situs Arcpy ESRI untuk hampir semua geoprosesing python saya. Bagi ESRI, ini adalah seperangkat alat luar biasa yang dapat membantu mencapai banyak hal. Namun, saya juga ingin membuat skrip geoproses di luar domain ESRI Arcpy. Misalnya, jika saya ingin klip raster ke poligon, saya akan mulai dengan skrip berikut dari ESRI :
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "elevation"
inMaskData = "mask.shp"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ExtractByMask
outExtractByMask = ExtractByMask(inRaster, inMaskData)
# Save the output
outExtractByMask.save("C:/sapyexamples/output/extractmask")
Saya tidak yakin bagaimana saya akan menyelesaikan tugas yang sama secara terprogram tanpa Arcpy. Pertanyaan saya untuk programmer serius di luar sana: Kumpulan alat python apa yang Anda gunakan untuk menyelesaikan tugas yang akan dilakukan pengguna ESRI dengan paket situs Arcpy? Di mana saya mulai?
python
geoprocessing
Harun
sumber
sumber
Jawaban:
GDAL adalah alat untuk digunakan. Faktanya, seluruh panggilan adalah satu baris untuk gdal_rasterize:
jika Anda tahu tidak ada nilai data dari dem
Untuk beberapa kontrol python:
di mana variabel Anda dapat diatur dalam python
Untuk python penuh:
Saya baru saja mengintip sintaks untuk API C, jadi sintaks saya untuk python mungkin sedikit tidak aktif. Lihat gdal_alg.h: http://gdal.org/gdal__alg_8h.html
sumber
Anda akan menemukan sejumlah pertanyaan serupa lainnya di situs ini yang menanyakan pertanyaan dasar yang sama dan memiliki referensi yang sangat bagus. Yang paling mirip (dan terperinci) adalah:
Lainnya termasuk:
sumber
Titik awal yang baik adalah Perpustakaan Abstraksi Data Geospasial . Ini sebenarnya terdiri dari dua perpustakaan - GDAL untuk memanipulasi data raster geospasial dan OGR untuk memanipulasi data vektor geospasial tetapi orang biasanya menyebutnya GDAL.
Ada geoproses dengan Python menggunakan kursus GIS open source di Universitas Negeri Utah. Anda mungkin ingin memeriksanya juga.
sumber
Dalam banyak penelitian akademis saya, saya bekerja dengan data LiDAR melakukan analisis permukaan untuk geomorfologi. Saya segera menemukan bahwa melakukan banyak operasi menggunakan arcpy sangat lambat, terutama pada dataset besar. Akibatnya saya mulai menggunakan:
Saya juga akan merekomendasikan buku, Pemodelan Kuantitatif dari Proses Permukaan Bumi kepada siapa saja yang ingin mempelajari lebih lanjut tentang menganalisis permukaan raster. Buku ini dilengkapi dengan contoh kode yang bagus dalam C ++, yang jauh lebih efisien daripada alat ArcGIS. Algoritme ini juga dapat di-porting ke Python tanpa perlu sesuatu yang lebih kompleks daripada numpy, walaupun mereka berjalan lebih cepat di C ++.
sumber
Untuk orang yang menggunakan ESRI saya pikir GRASS akan menjadi lingkungan yang sangat mirip dengan lingkungan python GUI dan diorganisir dalam 'toolkit' terpisah untuk tugas yang berbeda (raster, vektor, toolkit surya dll.). Skrip memiliki opsi lain selain Python tetapi itulah cara saya menggunakannya.
Pasti melihat tautan bagus ini yang terbaru (saya percaya): http://grass.osgeo.org/wiki/GRASS_and_Python
EDIT: tautan lain untuk mereka yang berlatar belakang ESRI: http://grass.osgeo.org/wiki/GRASS_migration_hints
Saya juga mendukung gerakan GDAL. Ini sangat berharga dan saya akan hilang tanpanya.
sumber
Saya pikir jawaban yang diberikan sejauh ini pada dasarnya mencakup semua paket di luar sana yang layak disebut (terutama GDAL, OGR, pyshp, NumPy)
Tetapi ada juga Laboratorium Perangkat Lunak SIG dan Python , yang menampung beberapa modul menarik. Mereka:
Secara pribadi saya mulai bermain-main dengan GDAL / OGR akhir-akhir ini dan menemukan mereka sangat mengesankan dalam hal kecepatan dan jangkauan alat analisis.
Berikut beberapa contoh cara menggunakan metode (diambil dari sumber yang sangat baik ini yang merupakan titik awal yang sangat baik):
Yang menyenangkan tentang alat-alat ini adalah Anda sangat fleksibel dalam menerapkannya. Saya menulis misalnya kelas saya sendiri
CreateGeometry()
untuk dengan mudah membuat file vektor dari awal. Jika Anda tertarik, saya juga dapat mempostingnya di sini, meskipun saya pikir itu di luar cakupan pertanyaan.sumber
Saya tahu pertanyaan Anda Python-sentris, tetapi R memiliki banyak metode analisis statistik nilai, beberapa di antaranya dapat digunakan untuk analisis spasial.
@Whuber
memiliki jawaban yang baik di sini yang menggambarkan cara klip raster ke kotak dalam dua baris.sumber
Solusi saya, solusi cepat, adalah menggunakan GDAL dengan Python.
Kamu butuh
(Dari jawaban di sini: Memotong raster dengan layer vektor menggunakan GDAL )
Tentu saja, Anda harus dapat mencapai ini menggunakan Python murni, tapi saya tidak perlu melakukannya. Dan saya hampir selalu memiliki GDAL! Fleksibilitas GDAL sangat fantastis, terutama di lingkungan linux. Ini menangani raster besar, dapat diikat bersama dengan skrip Python atau Shell dan ada fungsi untuk banyak hal. Lihat juga OGR untuk alat berbasis vektor.
sumber
Jika Anda tidak keberatan menjalankan PostGIS, ia dapat melakukan sebagian besar pemrosesan data spasial untuk Anda.
Cheatsheet PDF:
http://www.postgis.us/downloads/postgis20_cheatsheet.pdf
Terintegrasi dengan python:
https://publicwiki.deltares.nl/display/OET/Accessing+PostgreSQL+PostGIS+with+Python
Dengan alat pendukung seperti SPIT di dalam Quantum GIS atau pgAdmin, Anda dilengkapi dengan baik untuk mengatur PostGIS. Anda kemudian dapat menggunakan python mengendalikan operasi PostGIS pada data spasial Anda.
sumber
Saya telah bekerja pada pustaka geoproses sumber terbuka yang disebut WhiteboxTools yang dapat digunakan sebagai pengganti ArcPy dalam banyak aplikasi. Saat ini ada hampir 300 alat yang tersedia untuk memproses data raster, vektor, dan LiDAR (LAS), meskipun rencananya adalah untuk mem- porting semua 400+ alat yang tersedia di Whitebox GAT . Meskipun alat dikembangkan menggunakan bahasa pemrograman Rust (untuk efisiensi), setiap alat dapat dipanggil dari Python, seperti dalam contoh berikut:
Informasi lebih rinci dapat ditemukan di manual pengguna WhiteboxTools . Perpustakaan itu berdiri sendiri dan tidak memiliki dependensi lain. Anda hanya perlu mengunduh file kecil (<5Mb) yang ada di sini . File unduhan berisi exe WhiteboxTools, skrip whitebox_tools.py , yang menyediakan API Python untuk pustaka (diimpor pada baris teratas skrip di atas), dan manual pengguna. Ada juga GUI tkinter yang sangat mendasar (wb_runner.py) untuk berinteraksi dengan perpustakaan.
Lisensi MIT yang permisif dimaksudkan untuk memungkinkan WhiteboxTools diintegrasikan sebagai back-end dengan GIS open-source lainnya; Alexander Bruy telah mengembangkan plugin QGIS untuk back-end WhiteboxTools. Anda juga dapat mencampur dan mencocokkan alat dari WhiteboxTools dan ArcPy dalam satu skrip yang diperlukan. Perpustakaan masih agak eksperimental, dikembangkan dari University of Guelph Geomorfometri dan Hydrogeomatics Research Group , dan saat ini rilis pra-1.0, yang harus diperhitungkan dalam penggunaan.
sumber
Menggunakan Python untuk klip raster ke shapefile tanpa ArcPy: http://geospatialpython.com/2011/02/clip-raster-using-shapefile.html
sumber