개요지인이 정밀 지도(건물, 길)데이터를 쓰고 싶은데, EPSG:5179로 되어있는 데이터는 대체 뭐냐고 자문을 구해왔습니다. 저도 EPSG:5187은 자주 쓰는데 EPSG:5179는 처음 다뤄봐서 그 내용을 정리하고자 합니다.개념우리가 대표적으로 많이 쓰는 좌표계는 EPSG:4326이랑 EPSG:3857입니다. EPSG:4326은 우리에게 익숙한 위경도 좌표계라서 통일해서 쓰기 편하고, EPSG:3857은 지도 데이터를 보는 것 + 지도에 필요한 부가 기능(길찾기, 영역 계산 등의 공간 연산)을 구현하기 위해 많이 쓰입니다. 두 좌표계는 정의 범위가 전 세계입니다. 그렇다 보니 지역의 정밀 데이터를 표현하기에는 정확도가 비교적 떨어집니다. 이를 방지하기 위해 특정 구역 내에서 정의된 좌표계들이 생겨나는..
개요오늘도 그렇듯 python이랑 gdal을 쓰면서 일을 하고 있었습니다.제가 구현하려는 기능 중에 '생성된 geotiff 파일의 extent가 좌표계의 유효 범위를 넘어가면 geotiff를 유효 범위에 맞춰 자르기' 가 있었는데요,평소와 같이 아~ GeoTransform을 이용해서 계산하면 되겠지? 하고 안일하게 생각하다가 생각과 다른 결과물을 얻었습니다.왜일까요?오늘 이렇게 쉬워보이는 주제를 들고 왔는데 무심코 쓰다 보면 저처럼 당황하실 수 있습니다.오늘 다룰 주제는 ApplyGeoTransform입니다.개념gdal에서 다루는 GeoTransform의 개념은 다음과 같습니다. gdal geotransform 문서여기를 보면 이렇게 나옵니다.GT(0) x-coordinate of the upper-le..
개요이 포스팅의 원문이 되는 글은 사실 3년 전에 쓰여졌습니다. 당시에는 원래 쓰던 언어도 바꾸고(C++ -> Python) 일하는 환경도 바꾸고 다루는 데이터도 바뀌는 등 큰 변화를 겪고 있었어요. 근 1년 간은 Raster를 집중적으로 다뤘습니다만 원래는 Vector를 중점적으로 다뤘습니다. 그 때의 추억도 소환할 겸, 복기도 하고, 다시 공부하는 느낌으로 포스팅을 쓰게 되었습니다.오늘 포스팅은 좀 어려운 내용들을 다룹니다. 여러분들은 포스팅을 보면서 아래의 표정을 짓게 될 겁니다.네, 이해합니다. 석사 과정 당시에 공부한 내용들이 이 포스팅을 통해 빛을 발하는군요.(+) 2024.08.05 기준 원문을 기반으로 작성한 글입니다. 추후 python 코드로 좀 더 쉽게 이해할 수 있게 예시를 덧붙이겠습..
GIS 엔지니어로 수많은 좌표계를 다루지만, 보통은 Mercator projection이 기반인 좌표계를 주로 다룹니다.그런데 말입니다,어느날 혜성과도 같이 이 GEOS projection이라는 녀석이 절 찾아왔습니다.악몽의 시작이었죠.1년은 시달린 것 같습니다.얘는 이전에 썼던 글인 GeoTransform과 GeoReference에서georeference를 처리하는 방법에 추가로 필요한 요소가 있습니다.그리고 얼마 전에 제가 드디어 방법을 찾았습니다.오늘 글의 숨은 주제는 정답이 없는 문제를 푸는 과정이기도 합니다.작은 실마리 찾기다른 사례를 보면서 역엔지니어링하기메뉴얼이 부족한 경우 배경 지식을 활용해서 값들을 계산해서 구하기역엔지니어링한 경우와 내 해결방법을 교차 검증하기개요포스팅의 목적GEOS p..
GIS 데이터를 다루다 보면 이 두 단어는 상당히 많이 보실 겁니다.특히 제일 머리 아플 때는 이미지 좌표계와 공간 좌표계 간 원점 위치의 차이일 겁니다. 오늘은 이 헷갈리는 점을 짚고 넘어가려 합니다.개요포스팅의 목적gdal의 geotransform의 개념과 구성 요소를 알아보자gdal에서는 어던 좌표계 체계를 채택하고 있는지 알아보자이미지를 georeference하려면 어떻게 해야할까? 이미지 좌표계와 공간 좌표계 간의 차이에 주의하자.개념이미지 좌표계? 공간 좌표계?이미지 좌표계위 그림은 우리가 알고리즘 문제를 풀 때 많이 접하는 배열의 형태입니다. 가로(width)를 column, 세로(height)를 row로 대응합니다.원점은 좌상단부터 시작합니다.이미지 좌표계에서도 위와 같은 형태로 배열을 취..
python으로 공간 데이터 시각화를 하는 방법은 두 가지가 있습니다.matplotlibplotly과학자들은 matplotlib으로 그래프를 그리는 것이 익숙합니다.공간 데이터 시각화에도 matplotlib 기반으로 많이 접근합니다.plotly는 지도를 그려놓고 그 위에서 공간 데이터를 시각화합니다.오늘 할 이야기는 matplotlib을 기반으로 공간 데이터를 시각화하는 얘기, 그 중에서도 Basemap을 사용하는 방법에 대해 알아보고자 합니다.왜 Basemap이냐?matplotlib기반 공간 정보 시각화 방법에는 cartopy와 basemap이 있습니다.이때까지는 cartopy를 많이 썼습니다.제가 matplotlib 기반으로 그래프는 많이 그려봤지만 cartopy는 그 명성은 익히 들었지만 거의 사용..
목적 배경 공간 정보 데이터는 맞는데, 그렇다고 이를 바로 지도에 표출하려니 데이터가 다른 분야에서 다루는 데이터라서 공간 정보 데이터의 형식에 맞춰줘야 할때 기상 데이터들은 공간에서 일어나는 현상을 다룬 데이터라 위치 정보들이 있지만, 우리가 생각하는 EPSG:4326 혹은 EPSG:3857 같은 GIS 계에서 흔히 쓰는 좌표계를 쓰지 않는다 lambert conformal coordinate 각 픽셀마다 좌표 정보가 있다지만, 다음의 두 가지 형식으로 저장된다 픽셀 마다 좌표 정보가 있다. 각 픽셀들은 lcc 좌표계 내에서 등간격으로 존재하고 표기는 위경도로 표기된다 상대적인 범위 내에 격자 형식으로 좌표를 기술할 수도 있다. 아래 그림은 기상청에서 쓰는 격자 좌표계를 기술한 문서의 일부 기상 데이터..
개요 해당 문서의 대상 독자(이하 서술 조건의 대부분에 속하신다면 대상이십니다) 급하게 ArcGIS로 데이터를 처리해야 함 javascript보다는 python이 편함 ArcGIS에 데이터는 올렸는데 편집이 필요하다. 근데 나 맥 써서...ArcGIS Pro로 대응을 할 수 없다. conda에서 offline 설치 가능하게 환경 설정 > 명령어 공식 문서에는 The conda utility will pull all the arcgis package dependencies from the installed set of Anaconda libraries instead of searching the internet. 라고 되어있지만 cli로 테스트해보니까 제대로 import 되지 않아 포기 docker ins..
개요 qgis 3.22버전에서 새롭게 annotation layer라는 layer가 새로 생겼다. qgis에서 annotation layer가 포함된 qgs를 열면 다음과 같이 보인다. raster와 qgs가 한 쌍으로 움직인다. 이 layer는 벡터 데이터가 아니며, qgis project file(qgs)에 xml로 도형을 기록한다 어떻게 annotation의 geometry를 추출할 수 있는가? 참고 자료 qgis annotation layer란? 3.22에는 annotation layer을 대응할 수 있는 tool bar가 있는 것으로 보이나, 내가 쓰는 QGIS 3.26 버전에서는 찾을 수 없었다. (수정 : 22.11.18) macos QGIS 3.28 버전 기준, View > Toolbar ..
전제 및 가정 지오레퍼런싱(georeference)을 하기 위해서는 다음 세 가지 정보가 꼭 필요하다. 좌표계 정보(EPSG 코드가 명시되어 있으면 가장 좋다.) 한국에서 쓰는 좌표계는 몇 가지가 있는데, 중부 원점(5186)을 가장 많이 쓰고 조선소의 경우 동부 원점으로 기술된 경우가 있다. 한국 내에서 영상의 지리 정보를 기술할 때 표준과 상관없이 기술하는 경우가 대다수이므로, 이럴 때는 다음을 확인해 보자. 한국에서 정의된 좌표계는 좌표계의 원점을 (0,0)으로 뒀을 때, 이를 좌표계 상에서 동쪽으로 얼마, 북쪽으로 얼마 이동한 가상 원점을 사용한다. 예를 들어 동쪽으로 200,000m 북쪽으로 600,000m 이동했다고 적혀있으면 epsg:5186에 해당하는 중부 원점이다. 좌표계에서의 영상의 좌..