눈금 기호에서 NULL 값으로 기능을 상징화하는 방법은 무엇입니까?


15

폴리곤 피처 데이터 셋과 QGIS 내에서 조인하는 다른 테이블의 속성이 있습니다 (속성 맵을 속성으로 상징하기 위해). 그러나 모든 다각형 필드에 숫자 속성 테이블에 일치하는 필드가있는 것은 아니므로 점진적 기호를 생성 할 때 일부 null 값이 있습니다.

내 연구 에서이 상황에서 가장 일반적인 조언은 기본 기호를 정의하는 다각형 데이터 세트 (또는 다른 배경)의 사본을 포함시키는 것입니다. 이것은 null 값이 눈금 기호로 분류되지 않기 때문에 "아래"를 볼 수 있기 때문에 작동합니다. 나는 이것의 이미지를 정확하게 첨부했다. 어두운 회색 피처는 조인 테이블 ( mb_percentile_isochrones_all)에는 없지만 경계 다각형 테이블 ( mb2013_wgtn) 에는 존재합니다 . 따라서 mb2013_wgtn"데이터 없음"기능을 표시하려면 테이블 의 두 인스턴스가 필요 합니다.

여기에 이미지 설명을 입력하십시오

그러나 이것은 나에게 우아하지 않습니다. 훨씬 직관적 인 것은 널값 기호를 정의하는 것입니다. 아마도 이것은 현재 존재하는 것과 일치하도록 완벽하게 투명하거나 아마도 사용자가 원하는 것이 무엇이든 회색으로 표시됩니다. 요점은 현재 null 값의 기호를 처리하기 위해 내용에 두 개의 다른 레이어가 필요하다는 것입니다. 즉, 모든 지형지 물의 기호를 동시에 변경하려면 (예 : 모든 테두리 의 너비를 늘리려면 ) 두 번 처리해야합니다. null 기호를 처리하는 "배경"레이어에 대해 한 번.

QGIS (2.6.1)에서 눈금 기호에 사용 된 것과 동일한 레이어의 "복사"를 사용하지 않고 "널"값 기호를 정의 할 수 있습니까?


다른 심볼로지로 같은 레이어를 두 번 사용하는 것은 어떤 문제입니까? 식별 또는 지오 프로세싱에 혼란이있을 경우 두 레이어에 다각형이 나타나지 않도록 속성 필터링을 사용합니다. 일치하지 않는 기능이 조인 값에 '널'이거나 테이블에 나타나지 않는 값이 있습니까?
Michael Stimson

1
1. 문제 : 값과 null (예 : 테두리 색)을 가진 피처의 공통 속성을 제어하려면 두 번 수행해야합니다. 이를 통해 그중 하나를 변경하거나 약간의 실수 (예 : 윤곽선에 잘못된 회색 음영)를 잊어 버리는 것을 훨씬 쉽게 할 수 있습니다. 2. 지오 프로세싱에 대한 혼동과 관련된 문제가 아니라 단지 심볼로지 : null동일한 레이어에서 기능 을 상징하고 싶습니다 . 3. 일치하지 않는 기능은 null조인 값에 있습니다 (가입 후 QGIS 속성 테이블에 표시).
alphabetasoup

또한이 심볼은 다른 레이어에서 나올 것이기 때문에 "데이터 없음"샘플을 포함하도록 범례를 작성할 때 더 어려워집니다.
alphabetasoup

2
네가 옳아. 눈금 기호 대화 상자에서 '이와 같은 NULL 기능 표시'를 선택할 수있는 곳이 없습니다. NULL 값이있는 행은 표시되지 않습니다.
Michael Stimson

답변:


17

@ MichaelMiles-Stimson이 이미 언급했듯이 NULL 기능 을 상징하는 방법이없는 것 같습니다 . 그러나 QGIS가 NULL 값을 0과 같은 정수로 처리하도록 필터를 만들 수있는 대안이 있습니다. 각각 특정 값을 가진 3 개의 간단한 다각형을 만든 예제를 포함 시켰습니다.

3 개의 다각형

속성 테이블

다음 명령과 함께 사용한 점진적 기호는 다음과 같습니다.

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

졸업 된 상징

도움이 되었기를 바랍니다!


이것은 매우 도움이되며 아마도 이것을 실제로 적용 할 것입니다. 내가 예상하는 문제는 0이 내 데이터 세트에서 의미있는 값이라는 것입니다. 아마도 -1 또는 무언가를 사용할 수 있습니다. 그러나 두 경우 모두 클래스 휴식을 자동으로 식별하기가 다소 어려워집니다. 아마도 해결 방법이 이상적이지 않다는 것이 분명 해지면 기능 요청을 제출해야 할 것입니다.
alphabetasoup

예, NULL값을 포함 하면 매우 유용 할 수 있습니다. 이 해결 방법은 아니지만 항상 기능 요청을 제출하고 다음 버전에서 제공 될 수 있기를 바랍니다.)
Joseph

6

나는 그것이 답변되었지만 다른 옵션을 제공하는 것을 알고 있습니다.

필터 또는 값없이 필드를 그대로 둘 수 있습니다 (CATEGORIZED 또는 RULE BASED에서 작동한다는 것을 알고 있습니다).

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

여기에 이미지 설명을 입력하십시오

QGIS 2.10을 사용하고 있으며 작동합니다.


항상 문제를 해결하거나 해결하는 데 더 많은 방법을 알고 있으면 좋습니다. +1
조셉

1
2.6 이후로 이러한 개선이 이루어 지도록 격려하는 것이 맞습니까? 널값이 결합 된 테이블에서 올 때 작동하는지 확인할 수 있습니까?
alphabetasoup

1
그러나 이것에 대한 몇 가지 메모. 규칙 기반 심볼의 공백 또는 NULL 심볼은 모든 기능에 적용됩니다. 규칙은 위에서 아래로 적용되므로 다른 규칙에 의해 오버레이 될 수 있지만 NULL도 있습니다. 그것이 강한 상징이라면 중요하다. 당신은 또한 당신이 분류 된 그들을 만드는 첫 번째 또는 졸업 기호에 의해 지배하고 / 규칙 기반으로 전환 "생성"수
HeikkiVesanto

@ Vesanto, 나는 그것을 얻었는지 또는 문제인지 모르겠습니다. 필자의 경우 원래 Z 값이없는 등고선으로 만든 SHP에 Z 값을 추가하고 있습니다 (Z = NULL). NULL 값이있는 기능을 빨간색으로 설정하고 값이있는 기능을 검은 색으로 설정했습니다. 편집 할 때 Z 값을 설정하자마자 형상 (윤곽선)이 빨간색에서 검은 색으로 바뀌면서 아직 Z 값을 설정하지 않은 기능을 알 수 있습니다.
Marcos Saito

@Marcos 귀하의 경우에는 문제가되지 않습니다. 그러나 라인이 빨간색으로 시작했다고 가정하고 더 이상 null이 아닌 경우 보이지 않게 설정하려고했습니다. 작동하지 않습니다.
HeikkiVesanto

4

다른 사용자의 말과 유사하게 가장 좋은 방법은 규칙 기반 심볼을 사용하는 것입니다. 규칙을 수동으로 작성하지 않으려면 다음을 수행하십시오.

  1. 기호 유형을 점진적으로 변경하십시오 .
  2. 평소에 따라 기호 열, 색상, 간격 등을 정의하십시오. null 값이 표시되지 않은 눈금 기호
  3. 기호 유형을 눈금 에서 규칙 기반으로 변경하십시오 . 이전 단계에서 정의한 기호가 이어집니다. 기호 추가 버튼을 클릭하고 ELSE를 선택하십시오 . 스타일을 적절하게 변경하십시오. 이 ELSE 심볼 클래스는 null 값을 포함하여 아직 심볼 화되지 않은 값을 포착합니다. ELSE 포괄 기호 추가
  4. 확인을 클릭하십시오. 이제 널값이 기호화됩니다. 널값을 포함한 눈금 기호

(QGIS 3.6.0에서 테스트)


간단하고 유용합니다. 감사. QGIS에 등급 분류에 대한 값 제외 옵션이 있어야한다고 제안합니다. -1, -999 등으로 플래그가 지정된 nodata 값으로 분류하려고 할 때 약간의 혼란에 빠졌습니다 (QGIS 3.14 LTR 사용). 다행히도 QGIS는 점진적 기호를 수행 할 때 null 값을 자동으로 무시합니다.
이반 산티아고
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.