Mengapa GRASS menghilangkan poligon saat menggunakan v.generalisasi?

9

Saya menghadapi dilema ketika mencoba menggunakan v.generalisasi untuk menyederhanakan poligon yang ukuran dan strukturnya serupa dengan Negara atau Negara Bagian AS. Seringkali, saya kehilangan poligon dari kumpulan data setelah menjalankan metode penyederhanaan atau penghalusannya. Yang mengganggu saya adalah sepertinya tidak ada pola yang konsisten untuk perilaku ini. Dalam beberapa kasus, serangkaian perintah yang sama diterapkan pada set data yang berbeda menyebabkan hasil yang sama sekali berbeda. Akibatnya, saya tidak dapat mengembangkan alur kerja yang dapat diulang dan dengan enggan mulai mencari alat penyederhanaan lain yang mempertahankan topololgy. Berikut ini sebuah contoh:

# LOAD AND CLEAN
v.in.ogr dsn=counties.shp output=county
v.build.polylines input=county output=county_polylines
v.clean input=county_polylines output=county_clean tool=bpol,rmdupl type=boundary

# SMOOTH AND GENERALIZE
v.generalize input=county_clean output=county_smooth method=sliding_averaging look_ahead=7 slide=1
v.generalize input=county_smooth output=county_general method=douglas threshold=.005

Setiap langkah v. Generalisasi menghasilkan beberapa poligon menghilang. Saya ingin mengerti mengapa ini terjadi. Apakah karena fitur yang dimuat ke memori tidak cukup? Apakah parameter saya "ketat" cukup untuk menyebabkan fitur dikecualikan karena mereka telah memenuhi semacam kriteria geometri? (Perhatikan bahwa saya kehilangan beberapa fitur yang sangat besar.) Apakah ada masalah dengan topologi fitur yang dijatuhkan yang menyebabkannya terhapus? Terkait dengan pertanyaan terakhir itu, saya berasumsi bahwa build.polylines dan operasi bersih yang saya lakukan semula harus mengatasi hal ini, tetapi saya tidak sepenuhnya yakin, dan sepertinya saya tidak dapat menemukan instruksi yang baik untuk mengatasi hal ini. Apakah ada?

Hargai wawasan apa pun yang dapat diberikan orang, terutama yang berdasarkan pengalaman pribadi dengan alat umum.

Roger

lagerratrobe
sumber
sepertinya data Anda bisa di lat lon. yang akan cukup untuk kehilangan data dengan ambang 0,005 Anda. dapatkah Anda memverifikasi bahwa Anda menggunakan planar cs?
Brad Nesom
Saya benar-benar bertanya-tanya tentang hal itu dan memproyeksi ulang proyeksi Albers Equal Area sebelum menjalankan yang di atas. Berikut adalah parameter proyeksi: USER: 100002 (+ proj = aea + lat_1 = 20 + lat_2 = -23 + lat_0 = 0 + lon_0 = 25 + x_0 = 0 + ellps = WGS84 + unit = m + no_defs) . Masih memiliki masalah yang sama.
lagerratrobe
Saya bertanya-tanya mengapa Anda mengubah poligon menjadi polyline. Apakah ada alasan khusus mengapa Anda tidak menyederhanakan poligon secara langsung?
underdark
Ok, saya mengeluarkan bagian v.build.polylines, jadi "county_clean" sekarang menjadi lapisan poligon. Masih kehilangan banyak area. Saya awalnya berpikir bahwa itu mungkin membuat penyederhanaan lebih mudah, tetapi karena "bpol" di v.clean juga melanggar poligon, mungkin itu tidak masalah.
lagerratrobe
1
hanya pertanyaan bodoh. Apakah Anda yakin kehilangan data menggunakan v.generalisasi dan bukan v.clean ?
simo

Jawaban:

4

Jawaban dari tim pengembangan GRASS.

"Hilangnya poligon [dalam v 6.4.1] terjadi karena batas yang dihaluskan yang melanggar topologi vektor dihapus, setelah itu semua batas yang secara topologi salah. Batas sekarang [dalam 6.4.2] hanya dihaluskan / disederhanakan jika modifikasi tidak melanggar topologi vektor. "

lagerratrobe
sumber