Apakah ada alat yang tersedia yang memungkinkan saya menjalankan jutaan shapefile parsel dan menyederhanakannya?
Apakah ada alat yang tersedia yang memungkinkan saya menjalankan jutaan shapefile parsel dan menyederhanakannya?
Jawaban:
Anda dapat mencoba Shapely - API Python yang dibangun di atas GEOS . Karena Shapely dan GDAL memiliki pustaka Python, Anda dapat dengan mudah menggabungkannya ke data dari berbagai sumber (termasuk shapefile) lalu menyederhanakan dan mengekspor seperti yang diinginkan.
Satu-satunya downside mungkin kecepatan jika Anda melakukan jutaan fitur - bisa lebih cepat untuk menggunakan GEOS atau JTS secara langsung.
Lihat metode penyederhanaan :
Semua titik dalam objek yang disederhanakan akan berada dalam jarak toleransi dari geometri asli. Secara default, algoritma yang lebih lambat digunakan yang mempertahankan topologi. Jika pertahankan topologi disetel ke False, algoritma Douglas-Peucker yang lebih cepat digunakan.
>>> p = Point(0.0, 0.0)
>>> x = p.buffer(1.0)
>>> x.area
3.1365484905459389
>>> s = x.simplify(0.05, preserve_topology=False)
>>> s.area
3.0614674589207187
Versi 9.0 dari GDAL / OGR menambahkan opsi -simplify ke perintah ogr2ogr . Dokumentasi menunjukkan bahwa itu mempertahankan topologi.
-menyederhanakan toleransi: (dimulai dengan GDAL 1.9.0) toleransi jarak untuk penyederhanaan. Metode ini akan mempertahankan topologi, khususnya untuk geometri poligon.
Contoh penggunaan:
ogr2ogr outfile.shp infile.shp -simplify 0.000001
Jika data Anda disimpan di PostGIS, coba gunakan ST_SimplifyPreserveTopology .
ogr2ogr memiliki opsi "segmentasi" yang tampaknya melakukan apa yang Anda butuhkan: Dokumentasi GDAL ogr2ogr
Dari halaman itu:
-segmentasikan max_dist: (dimulai dengan GDAL 1.6.0) jarak maksimum antara 2 node. Digunakan untuk membuat luasan kueri spasi menengah
GRASS v. Generalisasi
Menginspirasi dari Mapshaper, tetapi langsung di lokal, lihat di https://github.com/migurski/Bloch