Cara mendesain poin di QGIS berdasarkan beberapa atribut

13

Ketika mencoba menemukan cara yang bermanfaat untuk menampilkan gempa bumi, saya perhatikan bahwa itu tidak mudah untuk dikelola.

Saya ingin bisa mengenali "Magnitude", "Date", dan "Depth" dari gaya intinya. Sesuatu seperti:

  • ukuran: berdasarkan besarnya
  • kedalaman: warna dasar (mis. <15 merah, 15-30 kuning,> 30 biru)
  • tanggal: intensitas warna sebagai bayangan dari 100% warna ke putih / ...

Apakah ada cara untuk melakukannya tanpa mendefinisikan lusinan aturan?

Chris Pallasch
sumber

Jawaban:

14

Mengapa tidak menggunakan label berdasarkan aturan? Anda bisa meringankan banyak tugas, jika Anda menggunakan kategori untuk beberapa gradien berdasarkan data atribut Anda. Dari sudut pandang saya menggunakan kategori dalam pelabelan berbasis aturan adalah salah satu keunggulan walikota QGIS.

Untuk data Anda (tanpa mengetahui strukturnya) saya akan merekomendasikan alur kerja berikut:

  • Membuat berbasis aturan gradien sederhana untuk Anda tanggal -values melalui titik styler dikategorikan atau lulus (gaya putih atau keabu-abuan).
  • Sesuaikan ukuran titik dengan mengklik "lanjutan" dan "bidang ukuran skala". Di sini pilih besarnya poin Anda. Simpan gaya yang dihasilkan sebagai gaya SLD!
  • Pergi ke pelabelan berbasis aturan, muat di SLD Anda dan tambahkan untuk setiap titik data per klik kanan kategori (atau rentang) dengan gradien warna yang Anda sukai untuk kedalaman Anda dan menerapkannya ke setiap aturan.

Seperti ini (Anda juga bisa membuat kategori tentang aturan dalam kategori ;-)): masukkan deskripsi gambar di sini

  • Setelah itu jangan lupa untuk menyesuaikan urutan render dan mungkin mengontrol ukuran poin.

Saya mengerti bahwa solusi ini tergantung pada beberapa upaya (mouseclicks) di situs Anda, tetapi pada akhirnya peta yang indah selalu sepadan dengan usaha.

Curlew
sumber
4

Diperbarui untuk QGIS 2.8

Dengan asumsi data seperti ini:

id | magnitude | date | depth
 1 |     4     | 1912 |  100
 2 |     3     | 1932 |   85

Dengan menggunakan penataan yang ditentukan data, atur ukuran yang akan dikontrol oleh bidang besarnya.

Untuk warna, yang ditentukan oleh tanggal dan kedalaman, Anda dapat menggunakan ekspresi berikut

CASE 
  WHEN depth < 15 
       THEN color_hsl(1, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 15 AND depth < 30 
       THEN color_hsl(60, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 30 
       THEN color_hsl(240, 100, scale_linear(date, 1900, 2015, 100, 50)
END

Poin "Lama" dari tahun 1900 akan menjadi hsl putih (x, x, 100) sementara poin baru lebih berwarna hingga hsl (x, x, 50).

underdark
sumber
3

Opsi lainnya adalah menggunakan asisten ukuran yang tersedia untuk masing-masing gaya lapisan data. Katakanlah Anda mengelompokkan data titik Anda berdasarkan warna menggunakan atribut tertentu. Cukup klik kanan setiap kategori dan pilih Ubah Ukuran. Seharusnya menampilkan kotak dialog ukuran. Kemudian klik pada filter ekspresi dan kemudian pilih Ukuran Asisten.

masukkan deskripsi gambar di sini

Kotak dialog size assistant memiliki opsi untuk memilih kolom menurut ukuran. Anda juga dapat memilih metode skala yang ingin Anda skala simbol Anda dengan dan kemudian memberikan kisaran ukuran dan rentang nilai data yang sesuai. masukkan deskripsi gambar di sini Perhatikan bahwa Anda perlu melakukan ini untuk setiap kategori data Anda.

sherpa
sumber
Saya tidak tahu mengapa jawaban ini tidak lebih dipilih - ini yang saya inginkan, dan ini yang paling cepat
Scott Staniewicz
0

@spatialthoughts menjalankan situs tutorial yang sangat bagus untuk qgis. Dia mengubah alamat sejak dia memposting beberapa tahun yang lalu, dan jawaban untuk pertanyaan ini sekarang dapat ditemukan di http://www.qgistutorials.com/en/docs/3/basic_vector_styling.html . Dia menunjukkan solusi yang sama dengan @sherpa lakukan di sini.

vtnate
sumber