콘텐츠로 이동

AMOC Trend 분석

CMIP6 모델 기반 대서양 열염순환(AMOC) 추세 분석 프로젝트


개요

해양 데이터 분석 프로젝트로, CMIP6 기후 모델 37개를 활용하여 AMOC(대서양 열염순환)의 장기 추세를 분석하고, 감소 원인을 규명하고자 한 학부 연구 프로젝트.

  • 수행 기간: 학부 과정
  • 데이터 출처: WCRP CMIP6, CTD 관측 데이터
  • 분석 도구: MATLAB
  • 블로그: AMOC Trend 분석

문제정의

AMOC이란?

AMOC(Atlantic Meridional Overturning Circulation)은 대서양을 순환하는 거대한 해류 시스템으로, 지구의 열을 북쪽 고위도로 수송하며 기후를 조절하는 중요한 역할을 한다.

연구 배경

  • 지구온난화로 인해 열염순환이 약 2000년대부터 점진적으로 약화
  • 최근 10년간 AMOC은 0.4 Sv/yr의 빠른 속도로 감소
  • CO2 배출량 기반 기후변화 시나리오에서 열염순환 약화 예측 일관
  • AMOC 약화의 원인은 아직 뚜렷하게 밝혀지지 않음

연구 목표

WCRP에서 제공하는 37개 CMIP6 모델을 통해 AMOC 관측자료와 비교/분석하고, AMOC 감소 패턴의 원인을 분석


가설설정

가설 1: 초기 AMOC 강도와 미래 감소율 상관

  • 현재 강도가 강한 모형일수록 미래 기후변화 감소율이 클 것

가설 2: 해빙 변화와 AMOC 연관성

  • 스발바르 해역의 해빙 변화가 AMOC 변화와 상관관계 존재

가설 3: 미분방정식으로 감소 양상 모델링 가능

  • AMOC의 감소 양상을 지수함수 형태의 미분방정식으로 표현 가능

데이터

CMIP6 모델 데이터

항목 내용
모델 수 37개
시나리오 SSP245 (중간 정도 온실가스 배출)
기간 1850-2100년
변수 AMOC 강도, 해빙 면적(icex)
파일명 예시:
- AMOC_CMIP6_ACCESS-CM2_ssp245_1850-2100_J_D_MYM.txt
- icex_CMIP6_ACCESS-CM2_ssp245_1850-2100_J_D_MYM.txt

CTD 관측 데이터

컬럼 설명
CAST 측정 선박 구분
Year, Month, Day 측정 일자
Latitude, Longitude 위경도
Depth 수심
Temperature 수온
Salinity 염분

데이터 전처리

% 1. CTD 데이터 병합
list = dir('CTD_simple*.csv');
data_all = [];
for i = 3:length(list)
    file_name = fullfile(list(i).folder, list(i).name);
    data0 = readtable(file_name);
    data = table2array(data0);
    data_all = [data_all; data];
end

% 2. 결측치 처리
data_1 = rmmissing(data_all);
data_1(data_1 == -999) = NaN;

% 3. 연간 일자 변환 (윤년 고려)
days_in_month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
for i = 1:length(month_data)
    days(i) = sum(days_in_month(1:month_data(i))) + day_data(i);
end

4차원 Grid 매핑

CTD 데이터를 분석에 적합한 격자 형태로 변환.

% 4차원 grid 생성: 경도 x 위도 x 수심 x 일자
lat_grid = 50:0.5:80;
lon_grid = -180:0.5:180;
depth_grid = depth(1:57);  % 57m까지

grid = zeros(length(lat), length(lon), length(depth0), 365);

for year = 1980:2022
    for i = 1:size(lagrange_data, 1)
        % 가장 가까운 그리드 찾기 (최소 제곱 오차)
        [~, lat_index] = min((data_lat(i)-lat).^2);
        [~, lon_index] = min((data_lon(i)-lon).^2);
        [~, depth_index] = min((data_depth(i)-depth).^2);

        grid(lon_index, lat_index, depth_index, days(i)) = data_value;
    end
    save([num2str(year) '.mat'], '-v7.3', 'grid');
end

주의사항: for 루프 3중 중첩 시 메모리/성능 문제 발생. 순차적으로 처리.


분석/모델링

37개 모델 시각화

folderPath = '/ssp245';
year = 1850:2100;

amocFiles = dir(fullfile(folderPath, 'AMOC*.txt'));
amoc_mean = zeros(251, length(amocFiles));

for i = 1:length(amocFiles)
    currentFile = amocFiles(i).name;
    amoc_data = load(fullfile(folderPath, currentFile));
    amoc_mean(:,i) = mean(amoc_data, 2);
end

% 앙상블 평균 계산
amoc_ensemble_mean = mean(amoc_mean, 2);

초기 강도 vs 미래 감소율 상관분석

index_1980 = find(year == 1980);
index_2000 = find(year == 2000);
index_2100 = find(year == 2100);

% 1980-2000 평균 강도
amoc_strength = mean(amoc_mean(index_1980:index_2000, :), 1);

% 2000-2100 감소율
dAMOC_dt = (amoc_mean(index_2100, :) - amoc_mean(index_2000, :)) / 100;

% 상관계수 계산
correlation_coefficient = corrcoef(amoc_strength, dAMOC_dt);
% 결과: r = -0.46
% "초기 AMOC 강도가 클수록 미래 감소율이 크다"

미분방정식 모델링

AMOC 변화 양상을 나타내는 미분방정식 수립.

dA/dt = a * A(t)

여기서:
- A(t): 시점 t에서의 AMOC 강도
- a: 감소 계수

경계조건 설정: - 초기값: A(2000) = 앙상블 평균값 - 미래값: A(2100) = 앙상블 평균값

특이해(Particular Solution):

A(t) = A(2000) * exp(a * (t - 2000))

변화율 분석 (이중 이동 평균)

% 20년 lag로 변화율 계산
lag = 20;
change_rate = zeros(length(amoc_ensemble_mean) - lag, 1);

for i = 1:length(change_rate)
    change_rate(i) = (amoc_ensemble_mean(i+lag) - amoc_ensemble_mean(i)) / lag;
end

% 결과: 초기 감소 시기의 감소율 > 미래(2100년)의 감소율
% 지수함수 감소 양상 확인

관측 데이터와 모델 비교

% 27년치 데이터의 선형 회귀 기울기 비교
AMOC_ann_1 = AMOC_ann(:, 1:131);
gradient_m = zeros([37, 105]);

for k = 1:37
    for j = 1:105
        p = polyfit(x, AMOC_ann_1(k, j:j+26), 1);
        gradient_m(k, j) = p(1);
    end
end

% Boxplot으로 시각화
% 일부 모델(CMCC-ESM2 등)만 관측치 변동성 범주 내 포함

결과

주요 발견

  1. 장기 추세: 약 2000년부터 AMOC 급격한 감소 시작
  2. 모델 간 차이: 초기 AMOC을 강하게 모의하는 모델일수록 미래 감소율 급격
  3. 상관계수: 초기 강도와 미래 감소율 간 r = -0.46
  4. 감소 양상: 지수함수 형태의 감소 패턴 확인

모델 신뢰성 평가

  • 대부분 모델: 관측치 기울기 범위 밖
  • 일부 모델(CMCC-ESM2): 관측치 변동성 잘 모의
  • AMOC 변화 양상을 잘 모의하는 모델 선별 필요

한계점

  • Time-lag 문제: 현재 미분방정식은 동일 시간의 관계만 표현
  • DDE(Delayed Differential Equation) 개념 활용 필요
  • 적절한 time lag 값 결정 추가 연구 필요

배운 점

  1. 고차원 데이터 처리: 4차원 grid 매핑의 개념과 구현
  2. 라그랑주 데이터: 불규칙 측정 데이터를 격자 형태로 변환
  3. 앙상블 분석: 다수 모델의 불확실성 정량화
  4. 미분방정식 모델링: 물리적 현상의 수학적 표현
  5. 자료 부족 극복: 해양 분야 자료 부족 시 모델 데이터 활용

기술 스택

분류 도구
언어 MATLAB
데이터 CMIP6 NetCDF, CTD CSV
분석 상관분석, 회귀분석, ODE
시각화 MATLAB Plot, Boxplot
파일 형식 .mat (v7.3), .txt, .nc

관련 문서


참고자료