Bagaimana cara memplot kontur antara dengan QGIS, GRASS GIS, atau SAGA GIS secara otomatis?

10

Saya memetakan pegunungan terjal. Interval kontur utama saya adalah 50 m dan interval kontur antara saya adalah 10 m. Di daerah curam, interval 10 m terlalu kecil, jadi saya harus meninggalkan interval 10 m dan menggunakan 20 m atau 25 m sebagai gantinya.

Apakah ada cara, untuk melakukan itu secara otomatis dalam QGIS , SAGA GIS atau GRASS GIS ?

PETA
sumber

Jawaban:

7

Anda dapat mencoba membuat overlay garis kontur Anda dengan garis miring, dan hanya menampilkan garis kontur tertentu tergantung pada nilai rata-rata lereng di bawah garis kontur itu.

johanvdw
sumber
Solusi menarik! Apakah Anda akan melakukan penggabungan spasial untuk menghubungkan nilai rata-rata lereng dengan garis kontur?
Simbamangu
@Simba Gunakan statistik zona. Ini mungkin bekerja lebih baik untuk menghapus garis kontur yang kemiringan maksimum zona terlalu curam.
Whuber
2

Sejauh yang saya tahu, tidak ada solusi otomatis di QGIS untuk masalah ini. Namun, harus dimungkinkan untuk menggunakan penyaji berbasis aturan untuk menentukan kontur mana yang akan diplot dan yang harus ditinggalkan.

underdark
sumber
2

Jika saya memahami masalahnya dengan benar, Anda sedang bekerja dengan Shapefile yang sudah memiliki semua kontur yang dihasilkan. Anda harus memiliki tabel atribut dengan nilai kontur sebagai salah satu bidang - misalnya, 'kontur':

ID      contour
 1         1000
 2         1010
 3         1020
 4         1030

Di QGIS Anda bisa melakukan beberapa hal. Salah satunya adalah dengan membuat salinan Shapefile, lalu menghapus kontur yang tidak Anda inginkan:

  1. Mulai sesi edit, buka tabel atribut, dan buka kalkulator bidang.
  2. Pilih 'buat bidang baru' dan buat bidang angka lengkap; sebut itu 'tetap'.
  3. Masukkan bidang 'ekspresi' ekspresi yang akan memberi Anda nomor 1 jika kondisi yang tepat terpenuhi - Anda ingin menyimpan semua kontur yang merupakan kelipatan 20. Jadi: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'(fungsi 'pencocokan' semacam ini tidak cukup , tapi QGIS tidak memiliki fungsi modulo matematika yang akan membuat ini lebih bagus - saya pikir).
  4. Klik 'OK' dan Anda akan memiliki kolom baru dengan 1 di mana konturnya adalah kelipatan 20, dan nol di mana tidak.
  5. Cari (pilih) semua baris tempat keep = 0 dan hapus. Shapefile baru Anda sekarang telah mengecualikan setiap kontur lainnya.

Opsi dua adalah tidak hanya menampilkan kontur yang tidak ingin Anda tampilkan. Ini sedikit lebih elegan.

  1. Buka dialog Properties dan pilih tab Style.
  2. Pilih 'Berbasis aturan' di kiri atas.
  3. Tambahkan aturan (tekan tombol 'Tambah') untuk kontur yang sesuai dengan kondisi yang Anda inginkan.
    • Dalam dialog Properti Aturan, masukkan label, seperti '20';
    • Di kotak Filter masukkan ekspresi yang cocok, seperti yang di atas: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'
    • Pilih gaya simbol yang ingin Anda gunakan, lalu klik OK dan terapkan gaya.

Pada titik ini, satu-satunya kontur yang ditampilkan adalah yang sesuai dengan ekspresi.

Hal hebat tentang opsi kedua adalah Anda dapat membuat aturan untuk skala yang berbeda - Anda dapat memiliki satu aturan saat diperbesar melewati skala tertentu yang menunjukkan, mungkin, hanya kontur 100 meter ('% 00' hanya di ekspresi), dan kemudian aturan lain yang menunjukkan kontur 20 meter saat diperbesar lebih lanjut, dll.

Jika Anda mencari metode untuk membuat kontur 25 m baru di antara kontur 100 m, maka Anda mungkin sebenarnya lebih baik membuat file kontur baru dari model elevasi digital. Saya tidak yakin apakah ada metode yang dapat diandalkan dan benar menginterpolasi kontur 25 m baru antara kontur lainnya.

Simbamangu
sumber
0

Inilah cara saya melakukan ini ketika saya memiliki contour shapefile (atau database Spatialite) yang mengandung kontur pada interval vertikal 10 meter dan saya ingin memetakan hanya kontur yang terjadi pada (katakanlah) interval 50 meter.

Muatkan shapefile dan kueri menggunakan fragmen SQL ini: '(ELEV% 50) = 0'. Di mana 'ELEV' adalah atribut yang berisi data ketinggian.

nhopton
sumber