개발실/GIS
-
Qgis 로 3DTiles 보기개발실/GIS 2023. 11. 22. 13:44
최신 qgis 버전 3.34 에서 추가된 기능인데, 3dtiles 파일을 볼 수 있음. 근데, 로컬에 있는 파일을 그냥 open 해서 보는 기능은 없는것 같고. 웹서버를 통해서만 볼 수 있는것 같음. 3dtiles 파일들을 웹서버 밑에 복사함. qgis 탐색기에서 Scenes에 오른쪽 마우스클릭해서 3dtiles connection을 추가함. 그러면, 오른쪽 메인 화면에 나오는데 해당 화면은 2D임. 3D로 볼려면. 메뉴의 [보기][3D 맵뷰][새 3D 지도 뷰] 를 실행하면 3D로 볼 수 있음.
-
QGIS로 영상 [오려내기] [구멍뚫기]개발실/GIS 2023. 11. 22. 10:16
gdal warp command 프로그램을 이용해서 아래와 같은 작업을 수행할 수 있음. Qgis를 통해서 아래와 같은 작업을 수행할 수 있음. 자르거나, 구멍내려고 하는 모양을 가진 shp 파일이 기존에 있으면, 해당 shp을 그대로 활용하면 됨. shp이 없으면, 직접 레이어를 만들고 그려야함. 잘라내기나, 구멍내기는 원리는 같음 저런 모양의 폴리곤이 필요할 뿐임. 잘라내기 자르고자 하는 영상을 레이어에 올림 새 shape file 레이어를 생성함. ( 가지고 있는 shp이 있으면, 그대로 사용하면됨 ) 추가한 shape file레이어를 편집모드로 변경후, 객체를 추가함. 메뉴 [레스터][추출][마스크 레이어로 래스터 자르기] 선택. 입력 레이어에 영상을 선택 마스크 레이어에 잘릴 모양을 가지고 있는..
-
C# 에서 Gdal 사용하기.개발실/GIS 2023. 4. 25. 14:37
Gdal은 기본적으로 C++라이브러리 이기 때문에 c#에서 사용하려면 상당히 어렵슴. 특히, C++ 컴파일 부분이 그렇죠. 다행 스럽게도, 친절하신 분들이 nuget에 올려 놓은것이 있어서 우리는 그걸 사용하기만 하면 됨. 그럼, nuget에서 gdal을 검색함. 대표적으로 3가지가 눈에 띕. GDAL MaxRev.Gdal.Core ThinGeo.Gdal MaxRev.Gdal.Core + MaxRev.Gdal.WindowsRuntime.Minimal을 사용하시면 코드에서 초기화만 호출해 주면 무난하게 사용이 가능함 저도 저렇게 사용하다가, 최근에 ECW plugin을 연계하려고 하다가 잘 안되서 지금은 GDAL + GDAL.Native + GDAL.Plugins 조합으로 사용하고 있음. ecw까지 잘됨...
-
QGIS 좌표변환개발실/GIS 2023. 2. 23. 10:33
QGIS Version 3.22.14 우선 원하는 데이터를 아래 그림의 Layers 창에 떨굽니다. 일단 현재 데이터의 좌표정보를 알아야 변환을 수행할 수 있습니다. 추가된 레이어를 마우스로 떠블클릭하면 속성창이 뜹니다. Information에서 보시면, 아래처럼 현재 좌표시스템을 알수 없다고 뜨면, 좌표를 설정해 줘야합니다. Source에 보셔도 잘못됐다고 나오죠? 거기서 셋팅해 주면 됩니다. 이제, 내가 원하는 좌표로 변환하면 되는데 접근 방법은 여러가지가 있더군요. 가장 쉬운 접근은, 화면의 우측하단의 아래를 클릭하면 아래와 같은 창이 뜨는데, 여기서 타깃으로 삼을 좌표를 설정해 주면 됩니다. EPSG코드를 아시면 Filter에 넣어서 바로 검색 가능함. 여기까지 하시면 화면상에서 변환된 내용을 확..
-
구글 좌표계의 오해.개발실/GIS 2023. 1. 20. 14:08
구글좌표계라고 EPSG:3857 옛날에는 900913 로 알려지기도 했는데, 혹은 Web Mercator, 웹지도좌표 등등. 전세계를 단일좌표로 표현하는 평면좌표계라는 막강한 능력덕에 전세계 Web지도에서는 널리 사용되고 있다. 수치를 미터로 생각하고 계산하면 안됨. 근데, 간혹 해당좌표에서 나오는 수치들이 미터라고 오해하는 경우가 있다. 실제로 미터로 정의가 되어 있더라고 적도부근에서만 미터이지 극지방으로 갈수록 오차가 생기기때문에 대한민국부근에서는 누적오차로 인해서 실제로 미터단위라고 볼 수 없다. 쉽게 이해하려면, 경위도 좌표의 경도값이 위도에 따라서 거리가 다를수 밖에 없듯이. 구글좌표계도, 좌우방향으로 외곡이 생기게 된다. 어찌보면, 외곡때문에 미터로 처리해서 연산을 수행하면 안된다고 생각해도 ..
-
UTM 과 UTM-K 는 왜 그렇게 만들어 졌나?개발실/GIS 2023. 1. 20. 13:15
UTM좌표를 알고 UTM-K좌표는 아는데, 왜 UTM은 6도 단위로 분할이 되어 있고 UTM-K는 왜 만들어 졌는지 참고 하시라는 뜻에서 글 남김. ** 해당 내용은, 어디 백과 사전에 있는 내용이 아니라 제 경험상 그렇게 될 수 밖에 없는 당연한 순리라고 생각되는 내용임. ** 관련되어서, 정확한 내용을 알고 계시는 분이 있으시면 댓글 부탁드립니다. TM 프로젝션을 이해하고 있는 분이라면 기준경도선으로 부터 멀어 질수록 오차가 늘어난다는걸 알고 있습니다. 그렇다고, 너무 기준선을 촘촘하게 하면 지도관리가 어려워지므로 현실에서 타협을 해야 합니다. 그래서, 우리나라 TM은 서부, 중부, 동부 2도 간격을 갖고 있죠. UTM을 만든 누군가도 동일한 고민을 한겁니다. 단지 그 타협점이 전세계를 대상으로 하다..
-
지리 좌표 개념 이해하기개발실/GIS 2023. 1. 20. 12:54
GIS를 전공하거나, 따로 공부하지 않으면 좌표계를 이해하기 쉽지 않습니다. 사실. GIS업계에 있는 분들도 다른이에게 설명을 해줄정도로 이해하고 있는 사람이 많지 않은게 현실이죠. 한번에, 그것도 글로 이해하기 어렵기에 이정도는 이해해야 한다는 정도를 적어 봅니다. 지리좌표는 실세계를 표현하기 위한 방법입니다. 첫번째가, 그럼 어떻게 지구를 수학적으로 표현할것인가 인데. 그럴 수 있는 방법은 없습니다. 왜냐면, 지구는 타원체가 아니니까요. 아시겠지만, 산도 있고 바다도 있고. 이쁘게 수학적으로 표현되지 않죠. 그래서, 지오이드라는 개념이 등장합니다. 바다는 그래도 어느정도 평평함을 유지하니. 육지는 없다고 치고 평균 해수면으로 곡선을 그리기 시작한거죠 지표면을 제거했으니, 많이 맨들맨들해 지긴 했지만 ..
-
MapBox Vector Tile개발실/GIS 2023. 1. 20. 12:04
다른 방법이 있는지 모르겠지만, Geographic(경위도)만 되는것 같음. 그러므로, 최종적으로 객체를 경위도로 바꿔서 mvt write 를 해야함. 사이트에는 4326, 3857 둘다 된다고는 하는데, 내가 사용한 writer는 4326만 설계가 되어 있어서 그렇게 이해함. 기본적으로, Quantization 기법을 사용하기 때문에. 손실 포맷이라고 이해하면됨. 손실을 최소화 하려고 기본 extent 수치(4096)을 사용하는데. 정밀도가 부족하여 개인적으로 8192로 사용함. 객체의 좌표는 local로 기록이 되며, 타일의 index 정보를 이용해 절대좌표로 해석하는 구조임. 타일index를 파일경로로 알수도 있지만, 포맷 안에 유닉한 키값으로 변환해서 저장하고 있음. 제대로만 만들었다면 위 그림처..