Sahil şeridi nasıl genelleştirilir?


12

Dünyanın kıyı şeridini temsil eden çok sayıda veri noktam var. Tam çözünürlüğü bilmiyorum ama 5-10m civarında olduğunu söyleyebilirim.

Pürüzlü bir sahil şeridini temsil eden bir dizi nokta düşünün. 1m çözünürlükte tüm sahili görüyoruz ve sahili doğru bir şekilde temsil etmek için 50 veri noktasına ihtiyacımız var, ancak 10km çözünürlükte sahil düz bir çizgiye benziyor ve sadece 2 puana ihtiyacımız var.

Verilerin "tam gezegen" çözünürlüklerinden "sokak" çözünürlüklerine kadar ölçeklendirilmesini gerektiren bir eşleme uygulaması yazıyorum. Veri noktalarımın çözünürlüğünü ve daha sonra daha geniş çözünürlükler için veri miktarını azaltmak için yardıma ihtiyacım var.

Vector-Tiling hakkında okuyordum ve bunun en iyi çözüm olacağını düşünüyorum (zaten böyle bir şey yapıyorum), ancak düşük çözünürlüklerde, veri setim hala büyük bir anlam taşıyor [nispeten] uzun sürüyor zaman, yüksek çözünürlükler hızlı olduğu için 'etkili' veri kümesi küçük (bütünün alt kümesi).

Büyük veri setimi nasıl alacağımı ve ölçeğini nasıl azaltacağımı belirlemeye çalışıyorum, böylece 'tam gezegen' görünümümün döşeme verileri yönetilebilir bir boyutta. Döşeme alt veri kümelerini daha büyük tam veri kümesinden nasıl oluşturabilirim?

Bir aracı kullanmaktan mutluyum, ancak nasıl yapıldığını öğrenmek için bunu kendim yapmayı tercih ederim.


1
Gis.stackexchange.com/questions/6585/… yanıtlarını kontrol ettiniz mi? Sorunuzun farklı olduğunu düşünüyorsanız lütfen ayrıntılandırın.
underdark

1
Sorunun "noktalar" yerine sahil şeridi ile ilgili olması gerektiği anlaşılıyor. Çözünürlük azaldıkça, küçük adalar ortadan kalkmalı mı? sıska yılan gibi adaların çevresindeki kıyı şeridinin geçmesi uygun mudur?
Kirk Kuykendall

Sadece fena bir iş yapmak ve devam etmek istiyorsanız, @R Thiede'nin cevabı muhtemelen başlamak için en iyi yerdir. Gerçek meydan okuma üzerinde çalışmak, şekillerin anlamını kaybetmeden çizgileri basitleştirmek istiyorsanız, gis.stackexchange.com/questions/38/… ve gis.stackexchange.com/questions/440/… ilgili sorulara bakın .
matt wilkie

Yanıtlar:


7

Bu sorunu nasıl çözeceğiniz gerçekten duruma ve gerçek topolojinin sizin için ne kadar önemli olduğuna bağlıdır (sadece görseller / oluşturma süresine göre). Nihai hedefiniz kıyı şeridini yaygınlaştırmak olduğundan, genellemeyle ilgili bazı fikirleri yararlı bulabilirsiniz.

Bir yaklaşım, burada görüldüğü gibi tamponlamayı kullanır . Bir süre önce de benzer bir sorun yaşadım ve çözümümü burada detaylandırdım .

Kısacası, farklı seviyelere genelleştirilmiş ayrı vektör veri kümelerini (veya en azından ayrı geometrileri) kullanabilirsiniz. Bu, fayanstan faydalanmasa da temel sorununuzu giderir, ancak elbette isterseniz bunları da kullanabilirsiniz. Tabii ki, veri kümenizi bir ızgaraya dayalı karolara bölecekseniz, önce genelleştirdiğinizden emin olun, yoksa karolar arasındaki boşluklarla sonuçlanırsınız.


Düşünceli bir cevap için +1. Sitemize Hoşgeldiniz, Rüdiger!
whuber

5

Yakın plan yakınlaştırmaya kadar "tam gezegen" yakınlaştırma seviyeleri için veri kümenizin genelleştirilmiş farklı sürümlerini hazırlamalısınız.

Klasik bir genelleme algoritması Douglas-Peucker algoritmasıdır . Henüz yapmadıysanız, noktaları önce sahil hatlarına bağlamanız gerekir.


2
GEOS kütüphanesinde, kendiniz kodlamak isterseniz kullanabileceğiniz yerleşik Douglas-Peucker algoritmaları vardır. Topolojiyi düşünmek isteyebilirsiniz, bu durumda GRASS v.generalize aracı da yardımcı olabilir.
lagerratrobe

Merhaba @ lagerratrobe. Bu cevap topluluğu wiki'sini yaptım, bu yüzden doğrudan düzenleyebilmeli ve hem GEOS hem de GRASS çözümlerini ekleyebilmelisiniz.
underdark


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.