Bagaimana cara mendapatkan shapefile lautan dari shapefile luas daratan yang sangat rinci?

10

Saya mencari kemungkinan untuk "membalikkan" suatu shapefile. Yang ingin saya lakukan adalah mengubah shapefile dengan benua dan pulau menjadi shapefile yang memiliki poligon air. Bentuk laut yang ada dari Bumi Alami terlalu tidak akurat.

Sebagai kontributor OSM aktif, saya pikir menggunakan shapefile yang ada dari OSM akan baik-baik saja bagi saya. Ini jauh lebih akurat tetapi sangat bermasalah dari perspektif GIS. Namun, mapserver dapat mengatasinya jadi saya pikir ini seharusnya baik-baik saja. Shapefile ini, beberapa di antaranya dapat Anda temukan di sini http://metro.teczno.com/#coastline sangat besar.

Saya telah membuat shapefile dengan satu poligon dengan batas dunia (-180 hingga 180, -90 hingga 90). Kemudian saya telah mencoba untuk menghapus area dari shapefile batas dunia saya di mana area lahan berada di shapefile lain. Saya mencobanya dengan QGIS, alat vektor -> fungsi perbedaan. Setelah 12 jam dengan penggunaan CPU 100%, saya menghentikannya. Itu selalu menampilkan kemajuan 100%. RAM bukan masalah.

Saya mencari kemungkinan lain untuk menghapus area daratan dari "poligon dunia", lebih disukai baris perintah Linux.

Thomas
sumber
2
Di ArcGIS, operasi yang Anda gambarkan dikenal sebagai Erase. Sepertinya Anda mencari solusi open source, jadi mungkin mencari istilah itu akan mengubah sesuatu. MapWindow tampaknya memiliki alat Erase, tetapi diskusi di sini menunjukkan bahwa ia juga mungkin memiliki keterbatasan: mapwindow.org/phorum/read.php?4,20317
PolyGeo
2
Anda akan ingin membagi shapefile "poligon dengan batas dunia (-180 hingga 180, -90 hingga 90)" menjadi potongan yang lebih kecil. Kemudian Anda dapat memotong area. Anda mengalami dua masalah yang mungkin terjadi, satu adalah Anda sedang memproses data di belahan bumi utara dan belahan bumi selatan secara bersamaan. Dua, masalah potensial dengan -180/180 batas. Coba pisahkan batas dunia Anda menjadi 4 bongkahan kecil seperti: Kiri atas, Kanan atas, Kiri bawah, Kanan bawah, dunia.
Michael Markieta
Saya berasumsi, ketika Anda membuat poligon dunia Anda bahwa Anda memproyeksikannya ke sistem yang sama dengan data tanah?
djq

Jawaban:

6

Raster untuk menyelamatkan! Anda dapat melakukan operasi ini dengan mengubah shapefile Anda menjadi raster, melakukan operasi 'membalikkan' dan mengubahnya kembali menjadi vektor

  • Raster -> Convert -> Rasterize. Lapisan output raster1
  • Buka kalkulator bidang, masukkan ekspresi raster1 @ 1 = 0
  • Raster -> Convert -> Polygonize, Output layer ocean_polygons
  • Buka tabel Atribut, cari DN = 0, alihkan pengeditan, hapus fitur yang dipilih, dan simpan. Apa yang tersisa untuk Anda adalah poligon untuk wilayah lautan.

masukkan deskripsi gambar di sini

spatialthoughts
sumber
1

SAGA GIS (dan banyak lainnya mungkin juga) memiliki perintah yang disebut "persimpangan poligon". Buat poligon yang berisi seluruh dunia dan kurangi poligon tanah Anda darinya. Jadi metode 2 atau 3 di perpustakaan itu.

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
johanvdw
sumber
0

Raster mungkin terlalu banyak data jika Anda membutuhkan detail di garis pantai. Prinsip yang sama seperti yang disarankan oleh spatialthoughts tetapi menggunakan TIN Delaunay mungkin menjadi pilihan?

AnserGIS
sumber
0

shapefile ini mungkin bermanfaat. Mereka berasal dari Pusat Pemetaan ESRI dan berisi data fitur hidrologi dan kelautan yang cukup akurat.

Craig
sumber
0

Saya belum banyak berhasil dengan membalikkan bentuk lahan OSM karena kerumitannya, namun dimungkinkan untuk menghasilkan bentuk permukaan tanah dan lautan dari data OSM mentah. http://openstreetmapdata.com/data menawarkan unduhan yang menurut saya sangat berguna.

ajashton
sumber