2024/08 10

국민대학교 기후변화대응사업단 구글어스엔진 & QGIS 실습 교재

안녕하세요? 국민대학교 기후변화대응사업단 2024년 「QGIS 스킬업 프로그램」 과정에서 '구글어스엔진 & QGIS' 주제로 6시간 강의를 맡게 되어 실습 교재를 제작했습니다. QGIS: 실습용 Vworld 배경지도 API 파일 공유안녕하세요? QGIS용 Vworld 배경지도 API 파일을 공유 드립니다. Vworld 배경지도 API를 이용하려면, 아래 공식 홈페이지에 회원가입 후 오픈API 인증키를 발급받으셔야 합니다. 브이월드지도조회 공간foss4g.tistory.com

카테고리 없음 2024.08.27

Google Earth Engine: 1m급 전세계 캐노피 높이 지도 사용법 소개

안녕하세요? 이번 글은 Google Earth Engine에서 1m급 전세계 캐노피 높이 지도(Global Canopy Height Maps) 사용법을 소개해 보겠습니다. 해당 데이터셋은 Meta와 세계자원연구소(WRI) 간의 협력을 통해 개발되었으며, 아래 링크를 통해 세부 정보를 확인하실 수 있습니다. 이 글에서는 해당 데이터셋의 사용법을 코드로 제공해 봅니다. Using Artificial Intelligence to Map the Earth’s Forests - Meta SustainabilityAn open source, global canopy height dataset and a foundational AI model for a more accountable carbon market.sust..

REMOTE SENSING 2024.08.21

Google Earth Engine: 백두대간보호지역의 NPP(순일차생산량) 계산하기

안녕하세요? 이번 글은 Google Earth Engine을 사용하여 백두대간보호지역의 NPP(순일차생산량)을 계산해 보겠습니다. 백두대간보호지역은 하나의 예시이고, 다른 지역에 대해서도 NPP를 계산할 수 있는 방법을 소개해 봅니다. 사용할 MOD17A3HGF V6.1 이미지 컬렉션은 500m 픽셀 해상도로 연간 총일차생산량(GPP: Gross Primary Productivity)과 순일차생산량(NPP: Net Primary Productivity)에 대한 정보를 제공합니다.연간 NPP는 해당 연도의 8일 주기 PSN(Net Photosynthesis) 데이터(MOD17A2H)의 합에서 도출됩니다. PSN 값은 총일차생산량에서 유지 호흡(MR: Maintenance Respiration)을 뺀 값(G..

REMOTE SENSING 2024.08.18

Google Earth Engine: Sentinel-2 위성영상의 분광지수 이미지 생성방법 소개

안녕하세요? 이번 글은 Google Earth Engine에서 Sentinel-2 위성영상의 분광지수 이미지 생성방법을 소개해 보겠습니다. 여기서는 NDBI, NDVI, NDWI 이미지를 생성해 보겠습니다. Sentinel-2 위성영상의 분광지수 관련해서는 다음 링크를 참고하시면 좋겠습니다. Sentinel-2A repository of custom scripts that can be used with Sentinel-Hub services.custom-scripts.sentinel-hub.comSentinel-2 위성영상은 아래와 같은 밴드 구성을 가지고 있습니다. NDBI(정규시가화지수)는 SWIR(Band11) - NIR(Band8) / SWIR(Band11) + NIR(Band8)로 계산됩니다. ..

REMOTE SENSING 2024.08.14

Google Earth Engine: 이미지를 Google Drive로 내보내는 방법 소개

안녕하세요? 이번 글은 Google Earth Engine 이미지를 Google Drive로 내보내는 방법을 소개해 보겠습니다. 이어서 내보낸 이미지를 다시 읽어와 플롯도 그려보겠습니다. 먼저, Earth Engine을 인증 및 초기화합니다.import ee# Earth Engine 인증ee.Authenticate()# Earth Engine 초기화ee.Initialize(project='ee-foss4g') 저는 Google Colab을 사용하고 있는데요, 이번 실습은 일부는 rasterio를 사용하고 있어서 해당 패키지를 설치해주도록 하겠습니다.!pip install -q -U rasterio 이어서 실습에 필요한 패키지들을 불러옵니다.import geemapimport geemap.colormaps..

REMOTE SENSING 2024.08.13

QGIS: 강한 압축을 통한 데이터 용량 줄이기 기능 소개

안녕하세요? 이번 글은 QGIS에서 강한 압축을 통해 데이터 크기를 줄이는 기능을 간략히 학습해 보겠습니다. 저는 최근에 대한민국 영역의 Dynamic World 토지피복지도를 다운로드 받았는데요, 현재 용량이 4.19GB인데 해당 기능을 통해 줄여보려고 합니다. 먼저 해당 레이어를 추가한 후, 레이어 이름을 오른쪽 마우스 클릭하고 "내보내기 > 다른 이름으로 저장"을 클릭합니다. 생성 옵션을 체크하고 프로파일에서 "강한 압축"을 선택합니다. 생성 옵션이 아래와 같이 표출됩니다. 여기서 DEFLATE(디플레이트)는 파일 크기를 줄이면서도 원본 데이터를 정확하게 보존할 수 있는 무손실 데이터 압축 알고리즘입니다. ZLEVEL은 압축 레벨로 숫자가 높을수록 더 높은 압축률이 적용되지만, 압축 및 해제 속도가..

GIS 2024.08.13

QGIS: 폴리곤 내부에 랜덤 포인트 생성 기능 소개

안녕하세요? 이번 글은 QGIS의 폴리곤 내부에 랜덤 포인트 생성 기능을 간략히 소개해 보겠습니다. 실습을 위한 마스크 레이어(폴리곤)는 다음과 같습니다. "폴리곤 내부에 랜덤 포인트 생성" 기능을 실행합니다. QGIS는 랜덤 포인트를 생성하는 다양한 기능을 제공하고 있기 때문에 목적에 따라 사용해 주시면 되겠습니다. 이 기능의 장점은 내가 원하는 포인트 수를 만드는데 동시에 포인트들이 너무 근접하지 않도록 최단 거리를 지정할 수 있다는 점입니다. 예를 들면 포인트 수는 100, 포인트들 사이의 최단 거리는 30미터로 설정할 수 있습니다. 결과는 다음과 같습니다. 확대해 보면 내가 지정한 마스크 레이어 내부에서 랜덤 포인트를 생성한 것을 확인하실 수 있습니다.

GIS 2024.08.13

PyQGIS: 종 출현 위치의 공간적 간격 조정(spatial thinning) 구현하기

안녕하세요? 이번 글은 종 분포 모델링에서 종 출현 위치의 "공간적 간격 조정(spatial thinning)"을 QGIS에서 구현해 보도록 하겠습니다. 종 분포 모델링에서 중요한 단계 중 하나는 인근 관측치들이 다수 존재할 경우, 데이터 집합으로 인해 모델 결과에 영향을 미칠 수 있는 지리적 샘플링 편향(geographic sampling bias)의 잠재적 효과를 제한하는 것입니다. 분석가는 선택된 공간해상도에 따라 각 픽셀 당 하나의 출현 기록만 임의로 선택하여 위치 데이터 간격을 넓혀 밀도를 낮추는 작업을 하는데 이것을 공간적 간격 조정이라고 합니다. 먼저 QGIS에서 특정 생물종의 출현 좌표를 열어보겠습니다. 출처는 GBIF입니다. 먼저, 종 분포 모델링의 공간해상도를 기준으로 한 랜덤 래스터 ..

GIS 2024.08.12

QGIS: 행정경계를 단일 경계로 병합하기

안녕하세요? 이번 글은 QGIS를 이용하여 다수 피처로 구성된 행정경계를 단일 경계로 병합하는 방법을 정리해 보겠습니다. 해당 방법은 융해(Dissolve) 기능을 통해 처리할 수 있는데요, 그 외에 고려할 부분들을 함께 담아봤습니다. 먼저 브이월드에 접속해서 행정경계를 다운로드 받겠습니다. 아래와 같이 "행정경계(시도)"를 검색해 봅니다. "다운로드" 버튼을 클릭해서 해당 파일을 내려받겠습니다. QGIS를 실행하고 행정경계(시도) 레이어를 추가합니다. 해당 레이어의 속성 테이블은 다음과 같습니다. "융해" 기능에서는 다수의 피처를 병합할 기준 필드를 설정합니다. 아래 속성 테이블을 보면, "SCLS"라는 필드가 17개 피처에 동일한 값을 가지고 있어 이 필드를 이용하면 될 것 같습니다. 참고로 "SCL..

GIS 2024.08.11