인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

aerolbn님의 프로필 이미지

작성한 질문수

QGIS 입문자 올인원 스타터팩 (이론/실습형)

래스터 자르기 / 마스크 레이어로 자르기

마스크로 래스터 자르기 하면 에러가 나옵니다.

해결된 질문

작성

·

159

1

안녕하세요 좋은강의 항상 감사드립니다. ^^

이번에 실습하다가 범위로 래스터 자르기 하면

문제가 없는데 마스크로 자르기 하면 아래와 같이 에러가 나옵니다.

"GDAL 명령어 산출물:

ERROR 1: TopologyException: side location conflict at 234.113927176831 310.44210877210901. This can occur if the input geometry is invalid."

그러면서 범위로 래스터 자르기 처럼 값이 나옵니다.(마스크 외 지역이 검게 나오는게 아니라 기존 레스터 데이터가 나오는데 범위로 레스터 자르기 때보다 약간 사각형이 적게 나옵니다.)

프로젝트 좌표계 파일 좌표계 다 동일하게 5186으로 맞췄고요

이유를 모르겠습니다. TT

그럼 오늘도 좋은하루 되십시요 ^^

답변 4

2

UPWISE님의 프로필 이미지
UPWISE
지식공유자

aerolbn님 안녕하세요 UPWISE 입니다. 항상 제 강의에 좋은 평가 해주셔서 감사합니다 :)

말씀해주신 에러는 마스크로 사용하는 벡터 레이어의 도형이 유효하지 않을 떄 발생할 수 있는 에러입니다.

유효하지 않은 도형들은 아래 이미지의 예시처럼 도형 둘레, 내부에 오류를 포함하고 있는 경우입니다.

image.png

(https://community.sap.com/t5/technology-blogs-by-sap/importing-shapefiles-in-sap-hana-and-the-validity-of-geometries/ba-p/13213834)

 

이처럼 유효하지 않은 도형을 없애기 위해선 도형 수정 기능 (fix geometries) 을 사용해서 수정하거나, 옵션의 "무결하지 않은 피처 필터링" 을 "필터링 안함" 으로 설정하여 무시하는 방법 등이 있습니다 (아래 화면 캡처 참고).

image.png

 

말씀드린 방법대로 시도해보시고, 그래도 해결되지 않는다면 다시 질문을 부탁드립니다.

그리고, 5186 좌표계를 사용하셨는데, 에러에 나온 좌표 (234.113927176831 310.44210877210901) 는 제주도 서남쪽의 바다입니다.

만약 해당 부분에 폴리곤이 존재하는 게 아니라면, 도형이 올바른 위치에서 5186 좌표계로 재투영을 한 번 더 하고 사용해보시길 바랍니다.

답변이 도움이 되었길 바랍니다.

감사합니다.

-UPWISE 답변-

aerolbn님의 프로필 이미지
aerolbn
질문자

빠른답변 너무 감사드립니다.

아직 해결이 안됬는데(폴리곤이 제주도에는 안보입니다. 정상적인거 같습니다. TT)

 

먼저 세팅한 내용을 보여드리면

 

image.png

위에 처럼 옵션하고

image.png

에러는 위에 처럼 뜨고

image.png

결과는 위에 처럼 나옵니다.

마치 범위로 레스터 자르기 같죠
파일은 실습 파일로 했습니다.

image.png

레스터 데이터 좌표계고

image.png

벡터레이어 좌표계 입니다.

(기존에 올려주신 실습 파일로 작업했습니다. TT)

image.png

옵션입니다.

(필터링 안함 으로 완료)

도형 수정도 해봤는데 안되네요 TT

실습데이터 말고 다른데이터 받아서 해봐야 겟습니다.

감사합니다. ^^

 

 

aerolbn님의 프로필 이미지
aerolbn
질문자

다른 고도 레스터 파일과 벡터 파일로 하니깐 오류없이 잘 짤립니다.

(다른데서 받은 다른지역 레스터와 벡터 파일 입니다.)

감사합니다. ^^

1

UPWISE님의 프로필 이미지
UPWISE
지식공유자

안녕하세요. 저도 지난번 aerolbn 님의 질문 이후, 실습 파일로 테스트를 해보았습니다.

우선 "ERROR 1: TopologyException: side location conflict at 234.113927176831 310.44210877210901. This can occur if the input geometry is invalid." 라고 에러가 발생했던 부분은, 도구 파라미터 중 "잘라낸 래스터의 범위를 마스크 레이어의 범위와 일치" 를 체크 해제 해주시면 발생하지 않습니다. 또한 이를 체크 해제 시, DEM이 시경계 shp 에 맞는 모양으로 잘리게 됩니다.

다만, 경계 밖으로 0값을 갖는 래스터픽셀이 까맣게 보이게 되는데, 이는 파라미터 중 "산출 알파 밴드 생성"을 체크 하시면 사라지게 됩니다. 하지만, 눈에 보이지 않아도 피처 식별을 통해 데이터를 확인하면 0 값은 그대로 남아 있는데요.

이 때에는 "산출 밴드에 지정한 NODATA 값을 할당" 부분에 0을 입력해주시면, shp 경계 밖의 0값을 갖는 픽셀은 NODATA 로 변환되어 값도 사라지게 됩니다.

모든 설정을 적용 시 아래와 같이 파라미터를 설정하시면 됩니다.

image.png

 

혹시 이와 동일하게 했는데도 에러가 발생하거나, 혹은 시경계 shp 밖에도 래스터 픽셀이 남아있다면 말씀 부탁드립니다.

 

감사합니다.

-UPWISE 답변-

 

aerolbn님의 프로필 이미지
aerolbn
질문자

감사합니다 Upwise님

잘 됩니다. ^^

1

gspark님의 프로필 이미지

저도 aerolbn님과 같은 에러가 납니다. ㅠ

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

aerolbn님이 QGIS에서 마스크로 래스터를 자를 때 발생하는 “TopologyException: side location conflict” 에러에 대해 문의해 주셨네요. 이 문제는 입력 기하 구조의 유효성에 문제가 있을 때 발생할 수 있습니다. 이러한 오류는 종종 기하 구조가 겹치거나 self-intersected인 경우에 나타날 수 있습니다.

몇 가지 해결책을 제안해드리겠습니다:

  1. 기하 구조 유효성 검사 및 수정:

    • QGIS에서 벡터 레이어의 유효성을 체크하고 필요하면 수정을 해야 합니다. 레이어를 선택한 후 벡터도구기하 구조 검사를 사용하여 문제를 확인할 수 있습니다.
    • 기하 구조의 오류를 자동으로 고치는 플러그인이나 QGIS의 자체 기능(예: 기하 구조 정리)을 활용할 수 있습니다.
  2. 벡터의 단순화:

    • 복잡한 폴리곤 때문에 발생할 수 있는 문제를 해결하기 위해 벡터의 세부 수준을 줄일 수 있습니다. 이때 벡터도구단순화를 사용해보실 수 있습니다.
  3. 데이터의 재투영:

    • 이미 좌표계를 맞추셨다고 하셨지만, 레이어를 재투영하여 문제를 해결할 수도 있습니다. 이때 데이터 소스와의 매칭이 잘 되는지 확인해야 합니다.

이와 관련하여 기존에 다뤄진 유사한 질문이 있습니다:
- 주제도4:강남구 건물높이도 제작 조판 관련 질문드립니다.

이 질문에서 제공되는 지식과 팁들이 문제를 해결하는 데 도움이 될 수 있으니 확인해 보시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

aerolbn님의 프로필 이미지

작성한 질문수

질문하기