발간등록번호 11-1360620-000028-01 국립기상과학원기후연구과기술노트 NIMS-TN-2015-022 편상관관계를이용한자료분석방법 작성자 : 선민아, 임동희, 이윤복, 변영화
- i -
-----------------------------------------------------------10 ----------------------------------------------- ------------------------------------------------------- ------------------------------------------------------- ------------------------------------------------------- ------------------------------------------------- --------------------------------------------------- ---------------------------------------------------- ---------------------------------------------------- ----------------------------------------------- -- -- ----------------------------------------------------------- --------------------------------------- - ii -
--------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------- --------------------------------- ------------------------------- ------------------------------------- ------------------------------------- ------------------------------------- ------------------------------------- ------------------------------------- ------------------------------------- ------------------------------- - iii -
------------------------------- ------------------------------- - iv -
-------------------------------------- ---------- ---------------- -------------- -------------- -------------3 ------------- - v -
- 1 -
- 2 -
- 3 -
- 4 -
± ± 상관계수 상관관계강도해석 0 0.25 작거나또는아무관계가없음. 0.3 0.45 fair 관계 0.5 0.75 moderate 에서 good 관계 0.8-1 strong 에서 perfect 관계 - 5 -
- 6 -
CO 2 flux (x) Temperature (y) Precipitation (z) CO 2 flux (x) 1.00 0.43 0.87 Temperature (y) 0.43 1.00 0.54 Precipitation (z) 0.87 0.54 1.00-7 -
- 8 -
- 9 -
a) b) - 10 -
- 11 -
- 12 -
- 13 -
- 14 -
- 15 -
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" ; Read data ======================================================== NEE_data = addfile(nee_dir + NEE_file, "r") Mask_data = addfile(area_dir + Area_file, "r") PRCP_data = addfile(prcp_dir + PRCP_file, "r") T2m_data = addfile(temp_dir + Temp_file, "r") SSRD_data = addfile(ssrd_dir + SSRD_file, "r") NEE = NEE_data->bio(1:,:,:,:) Mask = Mask_data->landmask PRCP = PRCP_data->precip(20:,:,:,:) PRCP = PRCP*86400 T2m T2m = T2m_data->t2m(1:,:,:,:) = T2m-273.15 SSRD = SSRD_data->ssrd(1:,:,:,:) xt2m = mask(t2m, (Mask.ge.0), True) copy_varcoords(t2m, xt2m) xprcp = mask(prcp, (Mask.ge.0), True) copy_varcoords(prcp, xprcp) xssrd = mask(ssrd, (Mask.ge.0), True) copy_varcoords(ssrd, xssrd) new_nee1 new_nep = ndtooned(nee) = -1.*new_NEE1-16 -
new_nee = onedtond(new_nep, (/datasizes(0)*datasizes(1), datasizes(2), datasizes(3)/)) new_nee = new_nee*86400*365*12 new_nee!0 = "time" new_nee!1 = "lat" new_nee!2 = "lon" new_nee&time = YYYYMM new_nee&lat = N_lat new_nee&lon = N_lon new_prcp1 = ndtooned(xprcp) new_prcp = onedtond(new_prcp1, (/datasizes1(0)*datasizes1(1), datasizes1(2), datasizes1(3)/)) new_prcp!0 = "time" new_prcp!1 = "lat" new_prcp!2 = "lon" new_prcp&time = YYYYMM new_prcp&lat = P_lat new_prcp&lon = P_lon new_t2m1 = ndtooned(xt2m) new_t2m = onedtond(new_t2m1, (/datasizes2(0)*datasizes2(1), datasizes2(2), datasizes2(3)/)) new_t2m!0 = "time" new_t2m!1 = "lat" new_t2m!2 = "lon" new_t2m&time = YYYYMM new_t2m&lat = T_lat new_t2m&lon = T_lon new_ssrd1 = ndtooned(xssrd) new_ssrd = onedtond(new_ssrd1, (/datasizes3(0)*datasizes3(1), datasizes3(2), datasizes3(3)/)) new_ssrd!0 = "time" new_ssrd!1 = "lat" new_ssrd!2 = "lon" new_ssrd&time = YYYYMM new_ssrd&lat = S_lat new_ssrd&lon = S_lon - 17 -
; Correlation ===================================================== y_prcp = new_prcp(lat :, lon :, time :) y_t2m = new_t2m(lat :, lon :, mon :) y_ssrd = new_ssrd(lat :, lon :, mon :) if ( var.eq. "Prec" ) then rc = escorc(x_nee, y_prcp) else if ( var.eq. "T2m" ) then rc = escorc(x_nee, y_t2m) else rc = escorc(x_nee, y_ssrd) end if end if ; Plotting ========================================================= wks = gsn_open_wks( x11, Correlation ) gsn_define_colormap(wks, "BlueWhiteOrangeRed") res = True res@gsnspreadcolors res@gsnaddcyclic = True = False res@mpprojection res@mpcenterlonf = 150 = "Robinson" plot = gsn_csm_contour_map(wks, rc, res) - 18 -
- 19 -
- 20 -
- 21 -
- 22 -
- 23 -
- 24 -
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl ; 1 st Partial Correlation ========================================== a1 = new_nee(lat :, lon :, time :) a = dim_standardize_n(a1, 0, 2) if ( var_type.eq. "TP" ) then b1 = new_prcp(lat :, lon :, time :) b = dim_standardize_n(b1, 0, 2) c1 = new_t2m(lat :, lon :, time :) c = dim_standardize_n(c1, 0, 2) else if ( var_type.eq. "TS" ) then b1 = new_t2m(lat :, lon :, time :) b = dim_standardize_n(b1, 0, 2) c1 = new_ssrd(lat :, lon :, time :) c = dim_standardize_n(c1, 0, 2) else b1 = new_prcp(lat :, lon :, time :) b = dim_standardize_n(b1, 0, 2) c1 = new_ssrd(lat :, lon :, time :) c = dim_standardize_n(c1, 0, 2) end if end if - 25 -
; Rab.c Rab_c = (escorc(b, a) - escorc(b, c)*escorc(a, c)) / sqrt((1-(escorc(b, c)^2))*(1-(escorc(a, c)^2))) Rab_c!0 = "lat" Rab_c!1 = "lon" Rab_c&lat = N_lat Rab_c&lon = N_lon printvarsummary(rab_c) ; Rac.b Rac_b = (escorc(c, a) - escorc(c, b)*escorc(a, b)) / sqrt((1-(escorc(c, b)^2))*(1-(escorc(a, b)^2))) Rac_b!0 = "lat" Rac_b!1 = "lon" Rac_b&lat = N_lat Rac_b&lon = N_lon printvarsummary(rac_b) ; Plotting ========================================================= wks = gsn_open_wks( x11, 1_Partial_Correlation ) gsn_define_colormap(wks, "testcmap_m") res = True res@gsnspreadcolors res@gsnaddcyclic = True = False res@mpprojection res@mpcenterlonf = 150 = "Robinson" plot00 = gsn_csm_contour_map(wks, Rab_c, res) plot11 = gsn_csm_contour_map(wks, Rac_b, res) - 26 -
- 27 -
- 28 -
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl ; 2 nd Partial Correlation ========================================== a1 = new_nee(lat :, lon :, time :) a = dim_standardize_n(a1, 0, 2) b1 = new_prcp(lat :, lon :, time :) b = dim_standardize_n(b1, 0, 2) c1 = new_t2m(lat :, lon :, time :) c = dim_standardize_n(c1, 0, 2) d1 = new_ssrd(lat :, lon :, time :) d = dim_standardize_n(d1, 0, 2) ; Rab.cd Rba_d = (escorc(a, b) - escorc(a, d)*escorc(b, d))/sqrt((1-(escorc(a, d)^2))*(1-(escorc(b, d)^2))) Rbc_d = (escorc(c, b) - escorc(c, d)*escorc(b, d))/sqrt((1-(escorc(c, d)^2))*(1-(escorc(b, d)^2))) Rac_d = (escorc(c, a) - escorc(c, d)*escorc(a, d))/sqrt((1-(escorc(c, d)^2))*(1-(escorc(a, d)^2))) Rab_cd = (Rba_d - Rbc_d*Rac_d)/sqrt((1-Rbc_d^2)*(1-Rac_d^2)) - 29 -
Rab_cd!0 = "lat" Rab_cd!1 = "lon" Rab_cd&lat = N_lat Rab_cd&lon = N_lon ; Rac.bd Rca_d = (escorc(a, c) - escorc(a, d)*escorc(c, d))/sqrt((1-(escorc(a, d)^2))*(1-(escorc(c, d)^2))) Rcb_d = (escorc(b, c) - escorc(b, d)*escorc(c, d))/sqrt((1-(escorc(b, d)^2))*(1-(escorc(c, d)^2))) Rab_d = (escorc(b, a) - escorc(b, d)*escorc(a, d))/sqrt((1-(escorc(b, d)^2))*(1-(escorc(a, d)^2))) Rac_bd = (Rca_d - Rcb_d*Rab_d)/sqrt((1-Rcb_d^2)*(1-Rab_d^2)) Rac_bd!0 = "lat" Rac_bd!1 = "lon" Rac_bd&lat = N_lat Rac_bd&lon = N_lon ; Rad.bc Rda_c = (escorc(a, d) - escorc(a, c)*escorc(d, c))/sqrt((1-(escorc(a, c)^2))*(1-(escorc(d, c)^2))) Rdb_c = (escorc(b, d) - escorc(b, c)*escorc(d, c))/sqrt((1-(escorc(b, c)^2))*(1-(escorc(d, c)^2))) Rab_c = (escorc(b, a) - escorc(b, c)*escorc(a, c))/sqrt((1-(escorc(b, c)^2))*(1-(escorc(a, c)^2))) Rad_bc = (Rda_c - Rdb_c*Rab_c)/sqrt((1-Rdb_c^2)*(1-Rab_c^2)) Rad_bc!0 = "lat" Rad_bc!1 = "lon" Rad_bc&lat = N_lat Rad_bc&lon = N_lon - 30 -
; Plotting ========================================================= wks = gsn_open_wks( x11, 2_Partial_Correlation ) gsn_define_colormap(wks, "testcmap_m") res = True res@gsnspreadcolors res@gsnaddcyclic = True = False res@mpprojection res@mpcenterlonf = 150 = "Robinson" plot00 = gsn_csm_contour_map(wks, Rab_cd, res1) plot11 = gsn_csm_contour_map(wks, Rac_bd, res2) plot22 = gsn_csm_contour_map(wks, Rad_bc, res3) - 31 -
- 32 -
- 33 -
- 34 -
- 35 -
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl ; 1 st Semi-partial Correlation ===================================== a1 = new_nee(lat :, lon :, time :) a = dim_standardize_n(a1, 0, 2) if ( var_type.eq. "TP" ) then b1 = new_prcp(lat :, lon :, time :) b = dim_standardize_n(b1, 0, 2) c1 = new_t2m(lat :, lon :, time :) c = dim_standardize_n(c1, 0, 2) else if ( var_type.eq. "TS" ) then b1 = new_t2m(lat :, lon :, time :) b = dim_standardize_n(b1, 0, 2) c1 = new_ssrd(lat :, lon :, time :) c = dim_standardize_n(c1, 0, 2) else b1 = new_prcp(lat :, lon :, time :) b = dim_standardize_n(b1, 0, 2) c1 = new_ssrd(lat :, lon :, time :) c = dim_standardize_n(c1, 0, 2) end if end if - 36 -
; Rab.c Rab_c = (escorc(b, a) - escorc(b, c)*escorc(a, c))/sqrt((1-(escorc(b, c)^2))) Rab_c!0 = "lat" Rab_c!1 = "lon" Rab_c&lat = N_lat Rab_c&lon = N_lon ; Rac.b Rac_b = (escorc(c, a) - escorc(c, b)*escorc(a, b))/sqrt((1-(escorc(c, b)^2))) Rac_b!0 = "lat" Rac_b!1 = "lon" Rac_b&lat = N_lat Rac_b&lon = N_lon ; Plotting ========================================================= wks = gsn_open_wks( x11, 1_Semi-partial_Correlation ) gsn_define_colormap(wks, "testcmap_m") res = True res@gsnspreadcolors res@gsnaddcyclic = True = False res@mpprojection res@mpcenterlonf = 150 = "Robinson" plot00 = gsn_csm_contour_map(wks, Rab_c, res) plot11 = gsn_csm_contour_map(wks, Rac_b, res) - 37 -
- 38 -
- 39 -
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl ; 2 nd Semi-partial Correlation ===================================== a1 = new_nee(lat :, lon :, time :) a = dim_standardize_n(a1, 0, 2) b1 = new_prcp(lat :, lon :, time :) b = dim_standardize_n(b1, 0, 2) c1 = new_t2m(lat :, lon :, time :) c = dim_standardize_n(c1, 0, 2) d1 = new_ssrd(lat :, lon :, time :) d = dim_standardize_n(d1, 0, 2) ; Rab.cd Rba_d = (escorc(a, b) - escorc(a, d)*escorc(b, d))/sqrt((1-(escorc(a, d)^2))) Rbc_d = (escorc(c, b) - escorc(c, d)*escorc(b, d))/sqrt((1-(escorc(c, d)^2))) Rac_d = (escorc(c, a) - escorc(c, d)*escorc(a, d))/sqrt((1-(escorc(c, d)^2))) Rab_cd = (Rba_d - Rbc_d*Rac_d)/sqrt((1-Rbc_d^2)) Rab_cd!0 = "lat" Rab_cd!1 = "lon" Rab_cd&lat = N_lat Rab_cd&lon = N_lon ; Rac.bd Rca_d = (escorc(a, c) - escorc(a, d)*escorc(c, d))/sqrt((1-(escorc(a, d)^2))) Rcb_d = (escorc(b, c) - escorc(b, d)*escorc(c, d))/sqrt((1-(escorc(b, d)^2))) Rab_d = (escorc(b, a) - escorc(b, d)*escorc(a, d))/sqrt((1-(escorc(b, d)^2))) - 40 -
Rac_bd = (Rca_d - Rcb_d*Rab_d)/sqrt((1-Rcb_d^2)) Rac_bd!0 = "lat" Rac_bd!1 = "lon" Rac_bd&lat = N_lat Rac_bd&lon = N_lon ; Rad.bc Rda_c = (escorc(a, d) - escorc(a, c)*escorc(d, c))/sqrt((1-(escorc(a, c)^2))) Rdb_c = (escorc(b, d) - escorc(b, c)*escorc(d, c))/sqrt((1-(escorc(b, c)^2))) Rab_c = (escorc(b, a) - escorc(b, c)*escorc(a, c))/sqrt((1-(escorc(b, c)^2))) Rad_bc = (Rda_c - Rdb_c*Rab_c)/sqrt((1-Rdb_c^2)) Rad_bc!0 = "lat" Rad_bc!1 = "lon" Rad_bc&lat = N_lat Rad_bc&lon = N_lon ; Plotting ========================================================= wks = gsn_open_wks( x11, 2_Semi-partial_Correlation ) gsn_define_colormap(wks, "testcmap_m") res = True res@gsnspreadcolors res@gsnaddcyclic = True = False res@mpprojection res@mpcenterlonf = 150 = "Robinson" plot00 = gsn_csm_contour_map(wks, Rab_cd, res1) plot11 = gsn_csm_contour_map(wks, Rac_bd, res2) plot22 = gsn_csm_contour_map(wks, Rad_bc, res3) - 41 -
- 42 -
- 43 -
- 44 -
- 45 -
- 46 -
- 47 -
- 48 -
- 49 -
- 50 -
- 51 -
- 52 -
- 53 -
- 54 -
- 55 -
- 56 -
- 57 -
- 58 -
- 59 -
- 60 -
- 61 -
- 62 -
- 63 -