Alat gratis untuk menyederhanakan shapefile parsel?

16

Apakah ada alat yang tersedia yang memungkinkan saya menjalankan jutaan shapefile parsel dan menyederhanakannya?

NetConstructor.com
sumber
1
apa yang Anda maksud dengan menyederhanakan, ujung?
artwork21
1
Saya pikir saya akan khawatir tentang menjalankan penyederhanaan pada poligon tanpa beberapa jenis topologi. Saya bahkan tidak berpikir esri akan mengelola dua sisi yang disederhanakan secara bersamaan sehingga mereka tetap konsisten. Mungkin aku salah.
Brad Nesom

Jawaban:

6

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
geografi
sumber
14

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
Tyler Erickson
sumber
6

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

Derek Swingley
sumber
5

Anda bisa mencoba Mapshaper . Mungkin ada beberapa batasan karena ukuran file Anda.

Julien
sumber
4

GRASS v. Generalisasi

http://grass.osgeo.org/gdp/html_grass64/v.generalize.html

Giovanni Manghi
sumber
Saya melakukan beberapa pengujian dan hari ini, semua metode yang disarankan di sini dan mengandalkan GEOS (ogr2ogr dengan -simplify, rupanya, fungsi ST_SimplifyPreserveTopology PostGIS) menghasilkan anomali topologi (yaitu lubang / tumpang tindih antara poligon). Hanya dengan GRASS saya mendapat hasil yang baik.
capooti
3

Menginspirasi dari Mapshaper, tetapi langsung di lokal, lihat di https://github.com/migurski/Bloch

ThomasG77
sumber
Terimakasih atas tanggapan Anda. Saya kira masalahnya di sini adalah apa yang harus dilakukan jika tidak ada topologi yang didefinisikan dengan shapefile
NetConstructor.com