NC 파일이라고 하면, 사실 처음 접하는 사람도 많다.
NC 파일은 간단히 말해서, 2차원 데이터가 아닌, 3차원 이상(경도, 위도, 시간, 수온 값 등) 의 데이터를 저장하기 위한 파일 형식이다.
그래서 컴퓨터 상의 폴더 창에서 NC파일을 더블클릭한다고 해도, (컴퓨터는 열과 행으로 이루어진 2차원밖에 보여주지 못하므로,) 아무것도 안 나온다.
오늘은 그 NC 파일 내에 저장된 데이터를 다루고자 한다.
DOWNLOAD
코페르니쿠스 (CMEMS) 사이트는 앞으로 자주 사용하게 될 유용한 사이트이다.
회원가입을 먼저 해야 하니, 다운 받기 전에 미리 해두면 좋다.
Download Link : https://data.marine.copernicus.eu/product/GLOBAL_MULTIYEAR_BGC_001_029/description
과제
CMEMS에서 제공하는 수치모델 데이터를 활용하여, 한반도 주변 해역에서 서로 다른 시점의 pH를 mapping 해보고 두 그림을 비교해보자.
※ 예시 그림과 다른 시점을 사용해도 됩니다. 2000~2020년 데이터를 다운받는데 시간이 오래 걸리니까 그냥 1년 데이터 다운 받아도 됩니다.
Hint
1. NC file Reading
NC file을 읽으려면 어떻게 해야 할까?
우선 ncdisp 함수로 NC 파일 안에 어떤 데이터가 있는지 확인해본다.
filename = '실제 nc 파일명.nc' ;
ncdisp( filename );
그리고 ncread 함수를 사용하여 해당 데이터들에 액세스 해야 한다.
lon = ncread( filename , ‘longitude’ );
이번에 NC 파일에서 읽어 들어야 하는 변수는 lon, lat, ph, time 이렇게 4가지이다.
이때 ncdisp 함수로 확인해본 결과, ph는 4차원 변수이다.
나중에 pcolor를 사용할 때, ph의 이러한 특징을 반드시 고려해야 한다.
한편, time 변수도 그대로 사용하기에 문제가 있다.
ncdisp 함수로 확인해보면, time 변수는 다음과 같은 설명이 적혀 있다.
즉, time 변수에 저장된 값은 ‘정확한 날짜’가 아니라,
1950년 1월 1일 0시 0분 0초로부터 흐른 ‘시간’을 의미한다.
따라서 이를 datetime으로 사용하기 위해서는 추가적인 작업이 필요하다.
time 변수의 값을 datetime으로 바꾸기 위해서는 다음과 같은 방법들로 코드를 작성해야 한다.
(둘 중 어느 방법으로 해도 된다.)
※ 시간축과 관련된 datenum, datevec, datetime 함수는 매우 자주 사용되므로 반드시 숙지해야 한다.
2. Mapping
3. pcolor
pcolor는 색을 칠해주는 함수이다.
기본적인 문법은 아래와 같다.
pcolor( x, y, data ); colormap; colorbar;
이번 과제에 적용해보면, 다음과 같이 코드를 작성할 수 있다.
그러면 lon, lat에 대응하는 격자에 data 값이 색으로써 나타난다.
(shading interp는 네모네모한 것들을 좀 더 부드럽게 나타나게 해준다. 즉 미관상 보기 좋다. )
그리고 색조합은 우리 마음대로 선택할 수 있는데, 대표적인 색조합으로 jet를 선택하였다.
만약 추가적인 색조합이 궁금하다면, "Matlab colormap"이라고 구글링을 하면 된다.
colorbar라고 적어주는 것은 그림 옆에 컬러바가 뜨도록 실행하기 위함이다.
clim은 나타내는 색의 범위 (여기서는 ph의 범위)를 제한하는 용도이다.
c.Label.String은 컬러바에 이름을 달기 위함이다.
'초급-MATLAB 해양자료처리' 카테고리의 다른 글
MATLAB - TXT & CSV 파일 읽기 (0) | 2023.09.16 |
---|---|
MATLAB - Scatter vs Pcolor (0) | 2023.09.16 |
MATLAB - Excel 파일 읽기 : 해양 산성화 (0) | 2023.09.16 |
MATLAB - Plotting (0) | 2023.09.16 |
MATLAB - 제어문 (1) | 2023.09.16 |