주제: 천리안위성 2A호 Land Mask / Sea Mask 데이터 이해하기
작성: 2024-01-14
안녕하세요, 루카스입니다.
이번 포스팅에서는 대한민국 기상위성인 천리안위성 2A호(GEO-KOMPSAT-2A, 이하 GK2A)과 관련하여 LSM(Land/Sea mask) 데이터에 대해 다뤄보려고 합니다. GK2A에 상세한 내용이 궁금하신 분은 링크를 클릭하시면 확인할 수 있습니다.
**GK2A와 관련하여
GK2A는 16개 채널로 다양한 관측이 가능한 기상위성입니다. 채널에 따라 해상도가 다르지만, 2km 이하의 해상도로 매 10분 간격으로 관측이 가능한 위성입니다.
1. LSM (Land/Sea mask)
1.1. LSM란?
LSM 데이터는 지구 표면에서 육지(Land)와 바다(Sea)를 구분하는 데이터로써, 위성 이미지 및 관련 지리정보에서 육지와 해양을 식별하기 위해 사용합니다. 일반적으로 이진형식('1(육지)' 또는 '0(바다)')으로 제공됩니다. 하지만, 위성마다 각각의 Value 값이 상이할 수 있기 때문에 메타정보의 확인이 필요합니다.
1.2. LSM 다운로드
LSM 데이터는 어디서 다운로드할 수 있을까요?
LSM 데이터는 위성 운용하는 센터/기관에서 관련 데이터 제공/다운로드가 가능합니다. GK2A는 국가기상위성센터(National Meteorological Satellite Center, 이하 NMSC) 홈페이지에서 다운이 가능합니다.
- 데이터 다운로드 경로 : Home > 자료제공> 안테나 수신기> 수신자료 설명 및 샘플 > Land/Sea Mask
- 데이터 다운로드 링크 : https://nmsc.kma.go.kr/homepage/html/base/bbs/selectBbs.do?bbsCd=00135&bbsUsq=200978
2. LSM 데이터 해석
2.1. LSM 데이터 파일 열기
다운로드한 파일이 약 1.45GB입니다. 이 중에서는 해상도 2km 데이터를 사용해보도록 하겠습니다.
사실 필자의 경우에도 .bin 파일이 익숙하지 않아서 꽤나 애를 먹었습니다.
여러분의 시간을 단축시켜드리기위해 bin파일 보는 방법도 공유드립니다.
Visual Stuido에서는 다양한 확장프로그램을 사용할 수 있습니다. "Hex Editor"을 통해서 해당 bin파일 확인할 수 있습니다.
산 넘어 산이라고 했나요...?
왜 일반적이라는 '0', '1' 데이터가 아니라 '19' 심지어 'FC'라는 문자형태까지 존재하는 걸까요...? 다시 한번 더 당황하지 않을 수 없었습니다.
2.2. 컴퓨터 작동 방식에 대해 이해하기
해당 값들을 이해하기 위해서는 컴퓨터의 작동방식에 대한 이해가 필요합니다.
우리가 '10'이라는 숫자를 입력했을 땐, 컴퓨터는 이 값을 메모리 저장할 때 어떤 과정을 거치게 될까요?
컴퓨터는 값을 메모리에 저장하기 위해 이 값을 기계어로 변환하여 저장합니다. 기계어는 컴퓨터가 이해하고 처리할 수 있는 0과 1로 구성된 이진 코드입니다. 즉, 컴퓨터는 모든 정보를 0과 1의 조합으로 표현하고 저장합니다. 이러한 이진 표현은 컴퓨터의 기본적인 작동 방식입니다. 바로, 여기서 메모리에 +(양의 부호)/ -(음의 부호)를 메모리에 저장하기 위해 데이터 포맷에 따라서 그 값을 저장하게 됩니다. 이에 FC, FD, FF 등과 같은 값이 사용되곤 합니다. 자세한 내용은 추후 포스팅에서 준비하도록 하겠습니다.
(참고자료 : https://mrjester.hapisan.com/04_MC68/Sect04Part02/Index.html)
2.3. 메타정보 확인하기
사실 이 혼란을 끝내줄 답은 메타정보 안에 있었습니다.
==================== Land/sea mask ======================
Land/Sea Mask Flag made by MODIS Land cover Product
==========================================================
... 생략 ...
2km special resolution [lsmask_2km.bin]
NCOLS 5500
NROWS 5500
NBITS 8
DATA_TYPE SIGNEDINT
Land Flag 1
Sea Flag 0
FILL_VALUE -999
.bin 파일의 크기는 60,500,000 byte입니다. meta정보에서 가로, 세로의 크기는 5500 임을 확인할 수 있습니다. 즉 , 60,500,000 / (5500 * 5500) 을 계산하면, 2 byte 라는 값을 도출하게 됩니다. 이 말은 해당 파일은 2 byte 씩 끊어서 읽으면 데이터를 해석할 수 있다는 것을 의미합니다.
👋🏻 다음 포스팅에서는...?
생각보다 해당 데이터를 읽기 위해 파악해야할 정보들이 많았습니다.
그럼, 다음 포스팅에서는 해당 데이터를 우리가 원하는 방식으로 변환하는 방법에 대해 소개하도록 하겠습니다.
🛰️ GK2A Land/Sea Mask 데이터
1. 2024.01.14 - [✔ Python/3. Image Processing] - GK2A LSM(Land/Sea Mask) 데이터 이해와 활용 방법 (1/2)
2. 2024.01.14 - [✔ Python/3. Image Processing] - GK2A LSM(Land/Sea Mask) 데이터 이해와 활용 방법 (2/2)
Reference
- 천리안위성 소개 : https://nmsc.kma.go.kr/homepage/html/base/cmm/selectPage.do?page=static.satllite.introGk2a
- 국가기상위성센터(NMSC) : https://nmsc.kma.go.kr/homepage/html/base/bbs/selectBbs.do?bbsCd=00135&bbsUsq=200978
- Singed, Unsinged, 'FC' 값 : https://mrjester.hapisan.com/04_MC68/Sect04Part02/Index.html
'Python > 2️⃣ 데이터 처리' 카테고리의 다른 글
GK2A LSM(Land/Sea Mask) 데이터 이해와 활용 방법 (2/2) (18) | 2024.01.14 |
---|---|
파이썬으로 데이터 마스킹하기 - Numpy.ma (1) | 2024.01.10 |
웹크롤링으로 SST(Surface Sea Temperature) 데이터 다운로드 자동화하기 (0) | 2023.07.31 |
[머신러닝] 랜덤포레스트 예시 - Pima Indians Diabetes Database (0) | 2023.03.04 |
[머신러닝] 결정트리 실습 - Pima Indians Diabetes Database (0) | 2023.03.03 |