Eco Life & Bioteco

biology and technology in MY LIFE

공부/Qgis

[Qgis]포인트 벡터에 버퍼(Buffer) 생성하고 면적계산 방법_오류 해결 방법

bioteco 2020. 12. 28. 22:46

포인트 벡터를 가지고 buffer를 만드는 방법에 대해서는

많은 분들이 작성해 주셨다.

하지만

내가 필요했던 것은

버퍼 내 하천 또는 기타 등등의

면적을 구하고 싶었다.

여러 방법을 구글링을 통해 방법을 찾아내었다.


자료 불러오기

먼저 자신에게 필요한 자료들을 불러오자

buffer를 만들기 위해서는

포인트 벡터, 라인벡터 상관없다.

나는 포인트 벡터에 버퍼를 주기로 했다.

 

 

공간 처리 툴박스

오른쪽에 있는 공간처리 툴박스에서

buffer(버퍼)

를 검색하면 다양한 것들이 나온다.

그중에서 제일 위에 있는 버퍼를 눌러준다.

 

 

버퍼 tab

버퍼에 들어오면 다음과 같은 화면을 볼 수 있다.

입력레이어 = buffer를 만들어줄 벡터

거리 = 포인트 또는 라인을 기준으로 얼마만큼의 buffer를 줄 것인지 결정

세그먼트 = 10~20 정도를 주는 것을 추천(너무 적게 주면 buffer가 원형이 아니라 다각형이 됨...)

이렇게 설정해 주고 실행을 눌러준다.

 

 

buffer 생성

그림에서 보듯이 포인트를 기준으로

buffer가 생성된 것을 볼 수 있다.

 

이제 버퍼를 기준으로 buffer 내 하천의 면적이

얼마나 있는지 계산해 보자.

 

 

교차영역

벡터 탭 -> 공간 처리 도구 -> 교차 영역

Qgis 3.10.11 ver 기준...

 

 

교차 영역 tab

교차 영역 tab의 모습이다.

입력 레이어 = buffer 벡터를 넣어준다.

중첩 레이어 = 중첩될 벡터를 넣어준다.

 

 

여기서

가장 중요한

POINT!!!!!!!!!!!

 

 

오류 발생

뭐... 분석이 되는 경우도 있지만,

여러 사이트에서 찾아보면서 이런 질문들을 많이 보았다.

유효하지 않은 도형을 가지고 있다는데 어떻게 하죠...?

이 문제를 해결할 수 있는 방법은 바로....

 

 

 

도형 수정

도형을 수정하는 것이다.

대부분은 도형 수정을 통해 문제가 해결 될 것이라 믿는다...

 

 

 

도형 수정 방법

방법은 간단하다.

입력레이어에 수정할 벡터 파일을 넣어주고

실행을 누르면

 

 

수정된 모형

수정된 모형

이라는 새로운 벡터 파일이 생성될 것이다.

나는 buffer_reshape와 stream_reshape라고 이름을 지정해 주었다.

도형 수정을 한다고 해도

도형이 다르게 변하는게 아니니 안심해도 된다.. ^^;

 

 

 

다시 교차 영역 tab으로 돌아가자

다시 교차 영역 탭으로 돌아와서

입력레이어에는 buffer 벡터,

중첩 레이어에는 면적을 구할 벡터를 넣어주자.

 

 

 

교차 영역이라는 벡터 생성

오류가 생기지 않고

교차영역이라는 벡터가 생성된 것을 볼 수 있다.

버퍼와 교차되는 stream_reshape 벡터부분만

추출된 것을 볼 수 있다.

 

 

교차 영역의 속성 테이블 열기

왼쪽의 교차 영역을 눌러주고,

오른쪽 상단의 속성 테이블 열기 탭을 눌러준다.

 

 

필드계산기 클릭

속성 테이블에서 필드계산기를 눌러준다.

 

 

필드 계산기 tab에서 area 검색

필드 계산기 탭이다.

출력 필드 이름 = 속성 테이블에 새로 생성할 이름 지정

출력 필드 유형 = 자신이 원하는 유형으로 선택(면적에서는 실수를 선택하는 것을 추천)

중앙 부분에

area

를 검색하고 그림에 보이는 것과 같은 것을 선택하고 확인을 누른다.

 

 

 

마지막 부분에 생성된 area

오른쪽 부분에 area라는 탭이 생긴 것을 확인 할 수 있고,

그에 대한 면적이 계산되어 나타난 것을 볼 수 있다.

 

 

 

오늘도 누군가에게 도움이 되었길 바라며...