Çok ayrıntılı bir kara alanı şekil dosyasından bir okyanus şekil dosyası nasıl alınır?


10

Bir şekil dosyasını "tersine çevirme" olasılığı arıyorum. Yapmak istediğim kıtalar ve adalarla bir şekil dosyasını su çokgenleri olan bir şekil dosyasına dönüştürmek. Doğal Dünya'dan mevcut okyanus şekil dosyası çok yanlış.

Aktif bir OSM katılımcısı olarak, OSM'deki mevcut şekil dosyalarının kullanılmasının benim için iyi olacağını düşündüm. Bunlar bir CBS perspektifinden çok daha doğru ama çok hatalıdır. Ancak, mapserver bununla başa çıkabilir, bu yüzden bunların iyi olması gerektiğini düşündüm. Bu şekil dosyaları, bazıları burada bulabilirsiniz http://metro.teczno.com/#coastline çok büyük.

Dünya sınırları olan bir çokgenli (-180 ila 180, -90 ila 90) bir şekil dosyası oluşturdum. Daha sonra dünya alanımdan, kara alanlarının diğer şekil dosyasında olduğu şekil dosyasındaki alanları kırpmaya çalıştım. Ben QGIS, vektör araçları -> fark fonksiyonu ile denedim. % 100 CPU kullanımıyla 12 saat sonra durdum. Her zaman% 100 ilerleme gösterdi. RAM bir sorun değildi.

Ben bir "dünya çokgen", tercihen Linux komut satırından kara alanları kırpmak için başka bir olasılık arıyorum.


2
ArcGIS'te tanımladığınız işlem Silme olarak bilinir. Açık kaynaklı bir çözüm aradığınız anlaşılıyor, bu nedenle belki de bu terimde arama yapmak bir şey ortaya çıkaracaktır. MapWindow, bir Silme aracına sahip gibi görünüyor, ancak burada yapılan tartışma da sınırlamalara sahip olabileceğini gösteriyor: mapwindow.org/phorum/read.php?4,20317
PolyGeo

2
Shapefile "çokgeninizi dünya sınırlarıyla (-180 ila 180, -90 ila 90)" daha küçük parçalara ayırmak isteyeceksiniz. Ardından alanları kırpabilirsiniz. İki olası sorun yaşıyorsanız, bir tanesi hem kuzey yarımkürede hem de güney yarımkürede aynı anda veri işliyor olmanızdır. İki, -180/180 sınırları ile ilgili potansiyel sorunlar. Dünya sınırlarınızı 4 küçük parçaya bölmeyi deneyin: Sol üst, Sağ üst, Sol alt, Sağ alt, dünyanın.
Michael Markieta

Dünya çokgeninizi oluşturduğunuzda, onu arazi verileriyle aynı sisteme yansıttığınızı varsayıyorum?
djq

Yanıtlar:


6

Kurtarmaya Rasters! Bu işlemi, şekil dosyanızı bir raster dönüştürerek, 'ters çevir' işlemini yaparak ve tekrar vektöre dönüştürerek yapabilirsiniz

  • Raster -> Dönüştür -> Rasterleştir. Çıkış katmanı raster1
  • Alan hesaplayıcısını açın, ifade rasterini girin1 @ 1 = 0
  • Raster -> Dönüştür -> Çokgenleştir, Çıktı katmanı ocean_polygons
  • Nitelik tablosunu açın, DN = 0 için arama yapın, düzenlemeyi değiştirin, seçilen özellikleri silin ve kaydedin. Kalan şey okyanus alanları için çokgenler olacak.

resim açıklamasını buraya girin


1

SAGA GIS (ve muhtemelen birçoğu da) "çokgen kesişimi" komutuna sahiptir. Tüm dünyayı içeren bir çokgen oluşturun ve toprak çokgenlerinizi ondan soyutlayın. Yani bu kütüphanedeki yöntem 2 veya 3.

Usage: saga_cmd libshapes_polygons "Polygon Intersection" -SHAPES_A <str> [-FIELD_A <str>] -SHAPES_B <str> [-FIELD_B <str>] -SHAPES_AB <str> [-METHOD <str>] [-SPLITPARTS]
  -SHAPES_A:<str>   Layer A
    Shapes (input)
  -FIELD_A:<str>    Attribute A
    Table field
  -SHAPES_B:<str>   Layer B
    Shapes (input)
  -FIELD_B:<str>    Attribute B
    Table field
  -SHAPES_AB:<str>  Intersection
    Shapes (output)
  -METHOD:<str>     Method
    Choice
    Available Choices:
    [0] Complete Intersection
    [1] Intersection
    [2] Difference (A - B)
    [3] Difference (B - A)
  -SPLITPARTS       Split Parts
    Boolean

0

Sahil şeridinde ayrıntıya ihtiyacınız varsa bir tarama çok fazla veri içerebilir. Spatialthoughts tarafından önerilenle aynı prensip ancak Delaunay TIN kullanmak bir seçenek olabilir mi?



0

Karmaşık olmaları nedeniyle OSM arazi şekil dosyalarını tersine çevirmede pek başarılı olamadım, ancak ham OSM verilerinden hem kara hem de okyanus şekil dosyaları oluşturmak mümkün. http://openstreetmapdata.com/data , son derece kullanışlı bulduğum her ikisinin de indirilmesini sunuyor.

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.