QGis에서 다각형을 사용하는 열 또는 Choropleth 맵을 만들려면 어떻게해야합니까?


12

QGIS 용 히트 맵 플러그인을 가지고 놀았는데 다각형뿐만 아니라 점을 사용하는 비슷한 플러그인 / 툴을 사용하여 히트 맵을 만들 수 있는지 궁금합니다.

히트 맵 플러그인이 포인트를 사용하는 것과 거의 같은 방식으로 데이터 밀도를 표현하고 싶습니다.

다음 이미지는 내가 원하는 결과를 대략적으로 보여줍니다.

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


3
다각형의 중심을 생성하고 그로부터 히트 맵을 작성하는 것에 대해 생각해 보셨습니까?
andytilia

1
데이터에 대한 자세한 내용이 도움이 될 것입니다. 다각형은 무엇을 나타내며 어떻게 분포됩니까? 샘플 사진을 게시 할 수 있습니까?
andytilia

@andytilia : 중심은 다각형의 범위를 정확하게 나타내지 않습니다. 다각형은 1200m2 영역 내의 리소스 사용을 나타냅니다. 일부 다각형은 아주 좋은 베리 패치를 나타내며 다른 다각형은 순록과 무스의 서식지를 덮고 있습니다. 6 각형 그리드를 비닝 한 다음 겹침을 세는 중입니다 ...하지만 나는 꽤 멍청하므로 그 주제에 대해 이해할 수있는 좋은 자습서를 찾을 수 없었습니다.
NWT Adam

1
QGIS 히트 맵 플러그인 qgis.spatialthoughts.com/2012/07/…
rkm

숫자 값이 당신에게 의미가 있습니까, 아니면 예쁘고 명확한 시각화를 찾고 있습니까?
underdark

답변:


5

어쩌면 다각형에 임의의 점을 생성 할 수 있습니다 .QGIS 도구가 있습니까? 다각형이 겹치는 경우이 영역에서 다각형의 밀도가 높아집니다. 그런 다음 포인트에 히트 맵을 사용하십시오. 그 결과에 따라 최적의 포인트 수를 찾으려면 여러 라운드를 실행해야합니다.

데이터가 일부 서식지의 분포를 나타내면 어쨌든 희미한 경우 이는 한 지점이 대략 하나의 표본을 반영하는 실제 상황에 가장 가깝습니다.


1
+1 좋은 생각입니다. 내가 추가 할 것은 포인트 데이터 및 육각 폴리와 함께 위치에서 결합하고 일치하지 않는 기능을 제거한 다음 점을 생성하는 것입니다. 따라서 단일 점이 다른 모든 점에서 익사하지 않습니다.
RomaH

이것은 가장 잘 보이는 결과를주는 것으로 보입니다. 솔루션을 제공 한 모든 사람들에게 감사합니다. 나는 많은 좋은 해결책이있는 것처럼 한 사람에게 현상금을주는 것이 기분이 좋지 않습니다!
NWT 아담

6

귀하의 질문을 올바르게 이해하면 이전에 비슷한 일을했습니다. 내가 한 일을 기억해야 했어

폴리가 겹치거나 동일한 레이어가 아닌 경우 작동합니다. 동일한 레이어에 있고 가능한 경우 대상 레이어가 값 중 하나만 상속하지 않으면 별도의 레이어로 이동하십시오.

사용하는 주요 프로세스 는 벡터> 데이터 관리 메뉴 아래 위치 별 결합 속성 입니다. 여기서 육각형 필드를 대상 레이어로 지정하고 결합 레이어를 다각형 중 하나로 지정하십시오. 결과 레이어의 이름을 지정하고 모든 레코드 유지 라디오 버튼을 선택 합니다.

결과 레이어는 다각형 레이어와 교차 한 모든 셀이있는 육각 레이어의 복사본이어야합니다. 이제 상호 작용을 위해 마지막 결과 레이어를 대상 레이어로 사용하고 다음 다각형 레이어를 결합하십시오. 결과 레이어를 가져와 모든 레이어에 참여할 때까지 다음 레이어에 참여하십시오.

최종 레이어는 이전 레이어의 모든 속성 필드를 상속 받았으며 대부분은 NULL이라고 말할 수 있습니다.

여기서 셰이프 파일의 일부를 연주해야하므로 레이어를 셰이프 파일로 저장하지 않았다면 지금 수행하십시오. QGIS의 작업 공간에서 레이어를 제거하십시오.

OpenOffice Calc에서 shapefile의 * .dbf 파일을 엽니 다 . Excel을 사용 하지 마십시오 . 파일을 엉망으로 만들고 쓸모가 없으며 어려운 방법을 배웠습니다. 그리고 데이터를 재정렬하지 마십시오. 파일의 행 순서도 매우 구체적입니다. NULL이 아닌 경우 NULL이 아닌지 확인하고 조심스럽게 교체하십시오.

이제 shapefile을 QGIS에 삽입하고 속성 테이블을 엽니 다 . 이제 NULL 대신 0을 표시해야합니다. 필드 계산기를 사용 하여 작업에 실현 된 필드를 새 열에 합산하십시오.

이제 대상 필드와 겹치는 모든 기능 모음의 값을 정확하게 표시해야하는 합산 된 필드가 있습니다. Symbology 함수를 사용하여 합친 필드의 값을 기반으로 다각형을 채색하여 멋진 choropleth 맵을 만들 수 있습니다.

파일에서 사용되지 않은 모든 필드를 제거하려는 경우. Calc에서 dbf 파일을 다시 열고 원하지 않는 열을 마음대로 삭제하십시오. 개인적으로, 나는 자주 그렇게하는 것처럼 모양 파일로 편안하게 들어가는 법을 배우는 것이 좋습니다.


불행히도 같은 레이어에 수백 개의 다각형이 겹칩니다. 몇 백 층으로 분리하지 않고이 문제를 해결할 방법이 있습니까?
NWT Adam 5

1
PostGIS (사용하는 경우)를 사용하여 겹치는 폴리곤을 분해하는 폴리곤 오버레이를 만들 수 있습니다. gis.stackexchange.com/questions/83/… 아마도 더 나은 SQL-fu를 가진 사람이 여기에서 우리를 도울 수 있고 결과 폴리가 값을 상속받는 방법을 알 수있을 것입니다.
RomaH

1
내가 강력하게 제안하는 또 다른 옵션은 문제에 대한 정확한 접근 방식을 다시 생각할 때입니다. 어떤 데이터를 매핑하려고합니까? 다각형 전체에서 값이 균일하다고 가정 할 이유가 있습니까? 겹치는 다각형이 실제로 누적 효과가 있습니까? 이러한 것들을 제안 할만한 좋은 증거가 없다면, 어떤 종류의 예측 모델링에도이 맵을 사용하는 것이 흔들릴 수 있습니다. 당신이 올바른 해결책을 가지고있을 수도 있지만, 그것을 모델링하거나 매핑하는 더 좋은 방법을 발견 할 수도 있습니다.
RomaH

1
PostGIS 제안에 감사드립니다. 살펴 보 겠지만 PostGIS 사용법을 알게되었습니다. 질문을 다시 평가하는 것에 관해서는 ... 나는 당신이 무엇을 의미하는지 알지만, 우리가 표현하려는 것을 어떻게 시각화 할 수 있는지 잘 모르겠습니다. 우리의 데이터는 지역 사회 장로와 자원 사용자가 문화적 관점에서 생산적이거나 중요한 것으로 매핑하는 모든 영역을 나타냅니다. 우리는 값 맵이 다각형 전체에서 균질하지는 않지만 맵으로 표현하려는 점에 충분히 가깝다는 것을 이해합니다.
NWT 아담

1
qgis에서 수동으로 처리하십시오. 특히 // tons //의 shapefile을 처리하기 시작하면 정말 실망스러운 위치에있을 수 있습니다. postGIS 플러그인 또는 GRASS 플러그인과 함께 SQL fu를 사용하는 것을 후회하지 않을 것입니다 (아래 내 답변 참조 : gis.stackexchange.com/a/42188/7689 ).
egbutter

4

이것은 래스터를 사용하는 일반적인 워크 플로입니다. QGIS에서 달성 할 구체적인 내용을 모르겠습니다.

  1. 교차점 도구를 사용하여 다각형 겹치는 영역의 새 벡터 레이어 만들기
  2. 오버랩 레이어를 포함한 벡터 레이어를 래스터로 변환
  3. 래스터 산술 (아마도 추가)을 사용하여 래스터를 결합
  4. 히트 맵처럼 보이는 래스터 여야합니다.

알파 / 널 값 및 / 또는 레이어 투명도를 사용하면 모든베이스 맵에서 래스터를 오버레이 할 수 있습니다.


이 작업 흐름을 거친 후 새 래스터의 범위를 덮는 큰 회색 블록이 남았습니다. 히트 맵처럼 보이게하려면 어떻게해야합니까?
NWT 아담

1
최종 래스터의 픽셀에 다른 값이 할당되어 있습니까? 몇 가지 생각 : 래스터를 만들 때 더 높은 해상도 (더 많은 픽셀)를 지정해야 할 수도 있습니다. 래스터는 크기와 해상도가 같아야합니다. 값이 클수록 더 밝은 색상을 표시하기 위해 결과 래스터의 컬러 맵을 늘리거나 수정해야 할 수도 있습니다.

색상 맵을 설정했지만 파란색 (값 0)과 빨간색 값 (2)의 두 가지 색상 만 얻습니다. 빨간색 값은 벡터 원본 레이어와 중첩 레이어의 영역을 덮습니다. 래스터 화 될 때 각 다각형이 아닌 각 레이어에 1의 값이 부여 된 것 같습니다. 그런 다음 래스터를 추가 할 때 총 값이 2가되었습니다. 값을 레이어 수준이 아닌 다각형 수준에서 유지 / 추가하려면 어떻게해야합니까?
NWT 아담

미세한 해상도 래스터는 도움이 될 것입니다

더 나은 해상도 래스터를 만들려면 어떻게합니까?
NWT 아담

4

요구 사항에 맞는 경우 데이터 세트에 대한 계산 솔루션은 아니지만 단순히 infographic 솔루션을 찾고 있다면 대신 시도해보십시오.

육각형 셀을 대상으로하고 포인트 데이터를 조인으로하여 위치별로 속성을 조인합니다. 모든 기능을 유지하도록 선택하십시오. 상속 된 값을 원하는 색상으로 셀에 심볼로지를 설정하고 투명도를 50 %로 설정하십시오.

그런 다음 원 폴리곤이있는 레이어에서 심볼을 동일한 색상과 투명도로 설정합니다. 원 폴리를 셀 폴리 앞에 놓습니다. 값이 증가함에 따라 채도가 높아지는 착시 현상이 나타납니다.

원하는 경우 모든 폴리선의 선을 추출하고 맨 위에 오버레이하여 하위 레이어 외곽선이 다른 레이어에 의해 착색되지 않는 것처럼 보일 수 있습니다.

최상의 솔루션을 찾으려면 색상과 투명도를 사용해야합니다. 나는 같은 색이 가장 좋지만 실험적이라는 것을 알았습니다.


4

GRASS 플러그인을 사용하는 것이 좋습니다. QGIS는 기능이 상당히 제한되어 있습니다 (그리고 GRASS와 같은 소프트웨어가 이미 존재하는 경우 파이썬에서 휠을 재발 명하는 이유는 무엇입니까?).

v.in.ogr.qgis

[다각형에 이미 값이 있는지에 따라 다음 두 줄이 필요할 수 있습니다]

v.db.addcol 
v.db.update_const 

여기 에서 다각형의 겹침을 합한 다음 해당 열을 기반으로 래스터만듭니다.

v.to.db ... qcolumns=sum(col_with_polygon_value)
v.to.rast.attr

v.out.ogr [r.out.ogr]

3

일반 QGIS를 사용하면 까다로울 수 있으며, 사용자 지정 스크립팅이 필요하거나 PostGIS 또는 Spatialite와 같은 공간 데이터베이스를 사용해야합니다. PostGIS 로 점 그리드를 생성하거나 CSV 텍스트 파일로 생성하여 가져옵니다. 그런 다음 st_buffer를 사용하여 각 점 주위에 원을 그리거나 ST_MakeEnvelope를 사용하여 사각형을 그리고 각 버퍼의 모든 겹치는 영역을 계산하십시오. 그런 다음 "데이터 없음"을 의미하는 경우 0 값을 모두 제거하려고합니다. 마지막으로 카운터를 무게 필드로 사용하여 그리드에 대한 히트 맵을 수행 할 수 있습니다.

최적의 그리드 해상도를 찾으려면 다른 그리드 해상도를 실험해야합니다. 본질적으로 그것은 벡터 세계에 머무르면서 Kevin이 제안한 래스터 접근법과 매우 유사합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.