Dereceli sembolojide NULL değerleri olan özellikleri nasıl sembolize edebilirim?


15

Bir çokgen özelliği veri kümesi ve öznitelikleri bir choropleth harita olarak sembolize etmek için QGIS içinde (bire bir) katıldığı farklı bir tablodan bir özniteliği var. Bununla birlikte, tüm çokgen alanlarının sayısal öznitelikler tablosunda eşleşen bir alanı yoktur, bu nedenle dereceli semboloji üretilirken bazı boş değerler vardır.

Araştırmamdan, bu durumda en yaygın tavsiye parçası, varsayılan bir sembolojiyi tanımlayan çokgen veri kümesinin (veya başka bir arka planın) bir kopyasını dahil etmektir. Bu null değerleri dereceli sembolojide sınıflandırılmadığından işe yarar, bu nedenle bunların altında "görülebilir". Tam olarak bunun bir görüntüsünü ekledim. Koyu gri özellikler birleştirme tablosunda ( mb_percentile_isochrones_all) bulunmaz , ancak sınır çokgenleri tablosunda ( mb2013_wgtn) bulunur. Bu yüzden mb2013_wgtn"veri yok" özelliklerini göstermek için tablonun iki örneğine ihtiyacım var .

resim açıklamasını buraya girin

Ancak, bu benim için zarif görünmüyor. Çok daha sezgisel bir null değer sembolü tanımlamak olacaktır. Belki de şu anda var olanla tutarlı olmak için mükemmel bir şekilde şeffaf olabilir, ya da belki kullanıcının istediği ne olursa olsun bir çeşit sessiz gri olabilir. Mesele şu ki, null değerlerin sembolojisini işlemek için içerikte iki farklı katmana ihtiyaç vardır. Bu, tüm özelliklerinizin sembolojisini aynı anda değiştirmek için (örneğin, tüm kenarlıkların genişliğini artırmak istiyorsanız ), bunun iki kez ele alınması gerektiği anlamına gelir: bir kez dereceli sembolojiye sahip özellik için null sembolünü işleyen "background" katmanı için bir kez.

QGIS'de (2.6.1) dereceli semboloji için kullanılanla aynı katmanın "kopyasını" kullanmadan bir "boş" değer sembolü tanımlamak mümkün müdür?


Aynı sembole farklı semboloji ile iki kez sahip olmanın nesi yanlış? Tanımlama veya coğrafi işlemede karışıklık yaşıyorsanız, her iki katmanda da çokgen görünmemesi için özellik filtrelemesi kullanın. Eşleşmeyen özelliklerin birleşim değerlerinde 'boş' var mı yoksa tabloda görünmeyen bir değeri var mı?
Michael Stimson

1
1. Sorun: Özelliklerin ortak özelliklerini bir değerle ve bir boş (örn. Kenarlık rengi) ile kontrol etmek istersem, iki kez gerçekleştirilmelidir. Bu, bunlardan birini değiştirmeyi veya hafif bir hata yapmayı unutmayı kolaylaştırır (örneğin, anahat için yanlış gri tonu). 2. Coğrafi işlemler için karışıklık ile ilgili sorun yok, sadece semboloji: nullAynı katmandaki özelliği sembolize etmek istiyorum . 3. Eşleşmeyen özellikler nullbirleştirme değerlerinde bulunur (birleştirme sonrası QGIS öznitelik tablosunda görüldüğü gibi).
alphabetasoup

Ayrıca, bu sembol farklı bir katmandan geleceği için bir efsane oluştururken "veri yok" örneği eklemeyi daha da zorlaştırır.
alphabetasoup

2
Haklısın. Dereceli sembol iletişim kutusunda 'bunun gibi NULL özellikleri göster' seçeneğini belirleyecek hiçbir yer yoktur, NULL değerlere sahip satırlar gösterilmez.
Michael Stimson

Yanıtlar:


17

@ MichaelMiles-Stimson'un daha önce de belirttiği gibi, NULL özellikleri sembolize etmenin bir yolu yok gibi görünüyor . Ancak, QGIS'i NULL değerleri 0 gibi bir tamsayı olarak işlemeye zorlamak için bir filtre oluşturduğunuz bir alternatif var. Her biri belirli bir değere sahip 3 basit çokgen oluşturduğum bir örnek ekledim:

3 çokgen

Özellik tablosu

İşte aşağıdaki komutla kullandığım Mezun Semboloji:

case when "Some_Value" IS NULL then 0 else "Some_Value" end

Dereceli semboloji

Bu yardımcı olur umarım!


Bu oldukça faydalı ve muhtemelen bunu uygulamaya koyacağım. Beklediğim sorun, veri setimde 0'ın anlamlı bir değer olmasıdır. Muhtemelen -1 falan kullanabilirim. Ancak her iki durumda da bu, sınıf sonlarının otomatik olarak tanımlanmasını biraz hantal hale getirir. Belki de bunun için bir özellik isteği göndermeliyim, şimdi geçici çözümlerin idealden daha az olduğu açıktır.
alphabetasoup

Evet, NULLdeğerlerin dahil edilmesi oldukça faydalı olabilir. Bu güzel bir çözüm değil, ancak her zaman bir özellik isteği gönderebilir ve bir sonraki sürümde kullanılabilir olmasını umuyoruz :)
Joseph

6

Yanıtlandığını biliyorum, ama sadece başka bir seçenek vermek için:

Alanı herhangi bir filtre veya değer olmadan bırakabilirsiniz (CATEGORIZED veya RULE BASED için çalıştığını biliyorum):

http://docs.qgis.org/2.0/uk/docs/training_manual/vector_classification/classification.html

resim açıklamasını buraya girin

QGIS 2.10 kullanıyorum ve işe yarıyor.


Bir problemi çözmek veya çözmek için daha fazla yöntem bilmek her zaman güzel! +1
Joseph

1
2.6'dan bu yana bu gelişmeyi görmeye teşvik etmek, değil mi? Boş değerler birleştirilmiş bir tablodan geldiğinde çalıştığını doğrulayabilir misiniz?
alphabetasoup

1
Bu konuda birkaç not olsa. Kural tabanlı sembolojideki boş veya NULL semboloji TÜM özelliklere uygulanır. Kurallar yukarıdan aşağıya uygulanır, bu yüzden başka bir kural tarafından kaplanabilir, ancak NULL da orada olacaktır. Güçlü bir semboloji ise önemlidir. Ayrıca, kuralları önce Kategorize veya Dereceli sembolojide oluşturarak ve sonra Kural Tabanlı /
HeikkiVesanto

@Vesanto, anladım ya da bir sorun olup olmadığını bilmiyorum. Benim durumumda, başlangıçta Z değerleri olmayan (Z = NULL) kontur çizgilerinden yapılmış bir SHP'ye Z değerleri ekliyorum. NULL değerlere sahip özellikleri kırmızıya ve herhangi bir değere sahip olanları siyaha ayarladım. Düzenlerken, bir Z değeri ayarladığımda, özellik (kontur çizgisi) kırmızıdan siyaha döner, bu şekilde Z değerini ayarladığımları biliyorum.
Marcos Saito

@Marcos sizin durumunuzda bir sorun olmayacak. Ama diyelim ki çizginin başlangıcı kırmızıydı ve artık boş olmadığında görünmez hale getirmek istediniz. Bu işe yaramaz.
HeikkiVesanto

4

Diğer kullanıcıların söylediklerine benzer şekilde, en iyi seçenek kural tabanlı sembolleri kullanmaktır. Kuralları manuel olarak oluşturmaktan kaçınmak için:

  1. Sembol türünü Dereceli olarak değiştirin .
  2. Sembol sütununu, renklerini, aralıklarını vb. Normal şekilde tanımlayın Boş değerler gösterilmeyen Dereceli Semboller
  3. Dan sembol türünü değiştirme mezun etmek Kural tabanlı . Önceki adımda tanımlanan semboller taşınır. Sembol ekle düğmesini tıklayın ve ELSE'i seçin . Stili uygun şekilde değiştirin. Bu ELSE sembol sınıfı, boş değerler de dahil olmak üzere önceden sembolize edilmemiş değerleri yakalar. ELSE tümünü yakalama simgesi ekleme
  4. Tamam'ı tıklayın. Artık boş değerler sembolize edilecektir. Boş değerler dahil derecelendirilmiş simgeler

(QGIS 3.6.0'da test edilmiştir)


basit ve kullanışlı. Teşekkürler. Dereceli sınıflandırma için QGIS'in bir hariç tutma değerleri seçeneği olmasını öneririm. -1, -999 ... vb. (QGIS 3.14 LTR kullanarak) olarak işaretlenen nodata değerleri ile sınıflandırmaya çalışırken bazı karışıklıklar yaşadım. Neyse ki, QGIS en azından Dereceli semboloji yaparken null değerleri otomatik olarak yok sayar.
Iván Santiago
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.