Pertanyaan OSM untuk semua pantai yang menghadap ke barat? - QGIS lebih disukai

17

Saya ingin mengidentifikasi semua pantai di planet ini (atau subset tertentu) yang menghadap ke barat (+/- 20-30 derajat).

Ide saya adalah menggunakan OSM sebagai sumber data. Mengekstrak semua poligon yang memiliki tag "natural = beach" memberi saya dataset / shapefile dari semua area yang ditandai sebagai pantai. Sejauh ini baik.

Saya juga tahu bahwa saya dapat menggunakan data garis pantai (baik dari OSM atau Natural Earth misalnya) untuk mengidentifikasi permukaan pantai.

Menyangga bentuk pantai untuk mengoreksi ketidakcocokan kecil dan memotongnya dengan garis pantai harus memberi saya data di sisi mana bentuk menghadap ke air. Menggunakan nilai maks / mnt dari semua titik berpotongan harus memberi saya gambaran tentang bantalan. (90 derajat +/- 20-30 derajat akan baik-baik saja ...)

Dan di situlah saya tersesat ...

Alat pilihan saya adalah QGIS, tetapi PostGIS juga akan baik-baik saja.

Apakah ada orang di sekitar dengan ide cerdas bagaimana memecahkan teka-teki ini?

jdoe
sumber
4
Alih-alih menggunakan buffer .. Bukankah lebih mudah untuk mencari cara memindahkan semua item di shapefile Anda sedikit ke arah timur, kemudian menjalankan Intersect antara garis pantai shapefile dan pantai shapefile? Mereka hanya akan tumpang tindih di mana pantai menghadap ke barat.
Tim Couwelier
Tim - ide yang bagus. Tidak yakin itu akan bekerja untuk geometri "aneh". Saya menerima ide lain: ambil garis pantai sebagai garis dan centroid poligon pantai menggunakan v.net di rumput, snap centroid ke garis terdekat (atau dalam postgis). sekarang Anda memiliki garis yang mewakili arah. menghitung bantalan dari titik awal centroid ke titik akhir garis menggunakan trigonometri. Meskipun bagus, itu tidak sepenuhnya "dalam" QGIS. Adakah ide yang lebih pintar?
jdoe
Jika Anda dapat menemukan cara untuk mengubah garis pantai menjadi serangkaian data titik dan centroid pantai juga, Anda dapat mencoba Analisis Tetangga Terdekat seperti yang dijelaskan di sini: tautan Alih-alih menggabungkan atribut seperti yang ditunjukkan dalam contoh, pastikan untuk memiliki x, nilai y untuk kedua dataset cocok. menggunakan kalkulator bidang Anda dapat menemukan perbedaan relatif antara nilai x dan y untuk titik pusat dan titik terdekat. Berdasarkan tanda perbedaan-x Anda tahu apakah itu barat atau timur, dan berdasarkan rasio diff (y) / diff (x) seberapa barat.
Tim Couwelier
Mengingat saya kehabisan charachters, begini: jika centroid nilai x> titik x nilai garis pantai, pantai menghadap ke barat. koordinat x dan y dari keduanya akan memungkinkan Anda menghitung sudut ke arah sumbu y: (y2-y1) / (x2-x1) memberi Anda kecenderungan garis, yang dapat dikonversi menjadi derajat
Tim Couwelier
5
Anda dapat meraster data Anda, menetapkan nilai air terbuka menjadi nol, dan pantai menjadi 1, kemudian menjalankan alat Analisis Medan-> Aspect. Anda akan mendapatkan raster dari arah kemiringan ke bawah dan dapat memilih sel yang "barat" cukup.
WxMacMan

Jawaban:

1

Layanan elevasi pada ArcGIS Online mencakup data seluruh dunia yang siap digunakan, dan juga fungsi raster bawaan untuk menghasilkan aspek. Cukup sederhana untuk menyaring secara bersamaan untuk berbagai nilai aspek (290-250 derajat) serta ketinggian (misalnya 0 hingga 10 meter, tergantung pada bagaimana Anda mendefinisikan pantai - atau mungkin Anda sudah memiliki pantai yang digambarkan?). Saya tidak tahu apakah Anda terbuka untuk menggunakan teknologi ArcGIS - jika ya, saya dapat mengirimkan beberapa contoh permintaan REST.

Png terlampir tidak difilter dengan benar untuk ketinggian, tetapi menunjukkan konsep ...masukkan deskripsi gambar di sini

Cody B.

Benkelman
sumber