ホーム  •  ニュース  •  フォーラム  •  アカウント情報  •  サイト内検索  •  新規登録
 ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
 カウントダウンブロック
カウントダウンイベントはありません
 メニュー

メイン
   地球科学のための R
     COWL Index の計算(Jones のデータを使用 )
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
投稿日時: 2005-7-21 19:17
登録日: 2004-7-29
居住地: 地球
投稿: 303
COWL Index の計算(Jones のデータを使用 )
NCEP/NCAR の再解析データから計算された COWL Index では、近年の温暖化の様子が表現できていない。一方、陸上の気温データでは、Jones のデータが良く使われるようである。そこで、Jones のデータを利用して COWL Index を計算する。なお、欠損値の扱い方はこれではまずいような気がするので、後日工夫したい。

1. Jones データセットのページから、ASCII データの crutem2.dat.gz をダウンロードする。
2. 以下、R で次のように処理する。
JonesData <- scan("crutem2.dat")
JonesData <- matrix(JonesData,75*36)
JonesData <- JonesData[,JonesData[1,] > 1949 ]           # 1950 -
JonesData <- JonesData[,JonesData[1,] < 2003 ]           # - 2002
JonesData <- JonesData[,JonesData[3,]==1]                # データ
JonesData <- JonesData[ rep(c(rep(F,3),rep(T,72)),36), ] # remove header
dim(JonesData) <- c(72,36,12,53)
JonesData <- JonesData[,seq(36,1,-1),,]                  # y reverse

#
#  重みづけを計算する。
#      この時、北緯20°以北だけ計算するので、より南の部分は0とする。
#

th              <- seq(-90,90,5) / 180 * pi
JDweight        <- sin(th[2:37]) - sin(th[1:36])
JDweight        <- t(matrix(rep(JDweight,72),36))
JDweight[,1:22] <- 0

#
#  LANDMASK を作りながら平均をとる。
#

for(year in 1:53){
  for( month in 1:12 ){
    JDLmask <- JonesData[,,month,year]
    JDLmask <- c(JDLmask)
    JDLmask[JDLmask == -9999 ] <- 0
    JDLmask[JDLmask != 0 ]     <- 1
    dim(JDLmask) <- c(72,36)

    WeightMask <- JDweight * JDLmask

    write(
          sum( JonesData[,,month,year] * WeightMask ) / sum( WeightMask ),
          file="COWLJD.txt", append=T)

  }
}

COWLJD    <- t(matrix( scan("COWLJD.txt"), 12 ))

#
#  3 桁で保存する。
#

options(digits=3)
write(COWLJD,file="COWLJD4.txt",ncolumns=12)
投稿日時: 2005-7-22 15:18
登録日: 2004-7-29
居住地: 地球
投稿: 303
Re: COWL Index の計算(Jones のデータを使用 )
欠測について、同じ月のデータで期間内に 20% の欠測があった場合にはそれを用いないことにする。更新した作業。

##################################################################
#
# COWL の index を計算する。 -4- Jones data で、20% の欠測があったら使わない方針で。
#
#  cf. http://www.cru.uea.ac.uk/cru/data/temperature/
#
JonesData <- scan("crutem2.dat")
JonesData <- matrix(JonesData,75*36)
JonesData <- JonesData[,JonesData[1,] > 1949 ]           # 1950 -
JonesData <- JonesData[,JonesData[1,] < 2003 ]           # - 2002
JonesData <- JonesData[,JonesData[3,]==1]                # データ
JonesData <- JonesData[ rep(c(rep(F,3),rep(T,72)),36), ] # remove header
dim(JonesData) <- c(72,36,12,53)
JonesData <- JonesData[,seq(36,1,-1),,]                  # y reverse

#
#  面積補正分, 20度より南はゼロ
#
th <- seq(-90,90,5) / 180 * pi
JDweight <- sin(th[2:37]) - sin(th[1:36])
JDweight <- t(matrix(rep(JDweight,72),36))
JDweight[,1:22] <- 0

#
#  LANDMASK : データ数の有無に関する情報
#
NUMOBS      <- rep(0,72*36*12)
dim(NUMOBS) <- c(72,36,12)
for( year in 1:53 ){
  for( month in 1:12 ){
    JDLmask <- JonesData[,,month,year]
    JDLmask <- c(JDLmask)
    JDLmask[JDLmask == -9999 ] <- 0
    JDLmask[JDLmask != 0 ]     <- 1
    dim(JDLmask) <- c(72,36)
    NUMOBS[,,month] <- NUMOBS[,,month] + JDLmask
  }
}
# 43 未満(42以下 : 同月の期間内のデータの存在率が 80% 以下) は不適とする。
dim( NUMOBS )  <- c( 72*36, 12 )
for( month in 1:12 ){
  NUMOBS[(NUMOBS[,month] < 43),month] <- 0
  NUMOBS[(NUMOBS[,month] != 0),month] <- 1
}
dim( NUMOBS )  <- c( 72, 36, 12 )

#
#  計算
#
for(year in 1:53){
  for( month in 1:12 ){
    JDLmask <- JonesData[,,month,year]
    JDLmask <- c(JDLmask)
    JDLmask[JDLmask == -9999 ] <- 0
    JDLmask[JDLmask != 0 ]     <- 1
    dim(JDLmask) <- c(72,36)
    WeightMask <- JDweight * JDLmask * NUMOBS[,,month]

    write(
          sum( JonesData[,,month,year] * WeightMask ) / sum( WeightMask ),
          file="COWLJDCR.txt", append=T)

  }
}

COWLJDCR <- t(matrix( scan("COWLJDCR.txt"), 12 ))

#
#  3桁に変更
#
options(digits=3)
write(COWLJDCR,file="COWLJDCR4.txt",ncolumns=12)
COWLJDCR <- matrix( scan("COWLJDCR4.txt"), 53 )
投稿日時: 2005-7-22 15:19
登録日: 2004-7-29
居住地: 地球
投稿: 303
Re: COWL Index の計算(Jones のデータを使用 )
このようにして得られた値。行は 1950〜2002年に対応し、各列は 1 月から12月までに対応する。

-104	-66.5	37.8	31.3	-105	74	-20.6	-36.5	84.3	12.3	8.5	20.7
50.7	-30.2	-2.41	20.6	-55.9	-25.5	-59.8	-175	-52.4	11	-130	2.85
-40.5	81.5	45.9	-132	4.89	-60.5	-27.2	140	-64.7	129	28.6	-31.9
105	26.2	80.4	72.5	78.9	64.5	147	87.6	52.8	160	-3.18	58
72	122	48.8	104	221	-40.2	-102	11.3	52.3	-30.2	-7.97	-143
0.294	46.1	19.7	97.4	88.1	79.4	71.9	-70.8	-89.4	15.6	-68.3	-49.7
-175	48.5	-51.5	-119	66.9	-70.5	13.4	6.93	40.1	-33.8	-74.6	2.23
122	1.97	48.9	-18.2	-93	15.1	127	6.71	85.6	112	103	109
85.4	-55.5	207	51.7	127	207	207	182	61.2	258	-13	-85
-96.1	35	-73.4	-118	-101	-52.5	-35.4	36.2	-125	47	-11.2	-26.9
-115	-34.4	-6.33	21.4	101	-110	-74.8	-98.2	-23.6	47.4	4.72	24.4
-99.4	89.7	14.9	14.9	-68	118	-39.2	29.7	-9.09	-41.1	40.3	-56.5
16.7	85.1	207	41	62.4	62.2	68.2	71.2	-21.2	93.5	70.3	16
149	128	164	-32.3	6.05	13	30.4	-46.8	-40.3	-64.4	-21	-20.6
19.1	-32.2	9.83	14.5	-15.3	-50.9	-51.7	-53.5	-15.6	10.8	-16	-14.8
-33.8	-16.9	2.34	-2.68	7.02	4.29	55.8	3.97	-64.5	-1.91	61.9	-2.73
-5.04	-16.3	12.3	23.8	-1.03	40	55.9	68.6	77.6	-12.7	12.3	82
57.7	-18.2	39.3	118	103	145	82	65	-0.516	5.06	-1.64	10.5
-39.6	-1.79	-36.3	-38	7.08	-13.7	-27.9	4.83	15.5	-7.14	-3.77	-20
-30.1	12.4	-14.6	-20.8	-12.6	-22.9	-33	4.87	-16.3	10.4	-26.9	34.8
-24.7	-10.1	8.2	1.27	3.17	-27.1	17.7	18.4	19.4	12.3	38.9	36.4
38.8	23.9	6.81	32.4	52.3	42.6	28.5	40.5	92.7	59.3	92	113
47.4	-8.57	-22.1	19.8	38.4	10	4.22	-18	-1.87	-16.4	10.2	27.6
35	-31.8	-22	-13.5	-23.7	0.346	-26.5	-23.7	-39.3	-1.28	-17	-16.9
18	-15.4	4.89	-25.9	35.3	-20.1	13.2	23.4	30.8	-27	-9.38	11.3
-15.5	17.6	3.46	60.9	27.2	60.2	44.6	-27.1	6.75	64.9	60.6	37.2
54.6	84.3	56.2	57.7	71.7	93.7	-23.2	-4.26	30.4	36.7	0.813	15.7
-30.5	-9.24	-14.9	5.25	-3.73	6.1	-2.91	11.8	-5.64	-37.9	2	2.74
-32.3	-9.02	0.0768	-20.1	-33.2	-0.242	-5.52	19.6	-39	-4.16	-17.4	-6.09
9.93	20	9.01	33.6	2.61	-16.3	-17.4	11.9	57.1	45.9	30.8	54.2
-48.9	-11.7	69.8	46.9	34.9	32.3	96	67	58.6	77.8	92.6	-18.2
33	25.9	34	14.9	36.2	-33.1	1.84	15.4	19.5	0.255	10.8	8.2
7.9	-30.2	-46.6	11.5	12.6	-45.1	-10.1	6.08	-6	-21.2	7.15	-13.2
8.16	-30.3	-16.5	-34.1	-15	-2.68	27.5	-15.7	43.6	6.36	5.52	-6.3
4.77	45.5	35.1	47.8	58.2	-13.3	-3.63	64.1	79.7	16.8	56.7	109
70.4	77.6	110	58.1	7.01	36.3	28.4	26.6	38.6	21.9	-38.9	15.4
-7.84	13.5	16.4	8.87	-6.15	24.1	-27.7	-46.8	13.5	-13.4	-20.9	-13.2
-0.83	5.67	-78.9	-10.1	-18	31	-26.4	9.83	2.81	20.1	-3.35	18.7
16.5	39.7	-33.4	-15	-13.4	34.8	39.1	26.8	39.7	42.9	-40.8	-35.7
56.5	39.6	-17.7	44	101	87.8	46.2	60.3	79	15.9	8.22	-21.9
49.8	34.5	29.5	-22	-18	-1.46	-31.5	-3.07	-20.9	38.6	87.3	-33
-4.24	-8.77	62	-14.4	-13.9	-40.6	16.2	-40.8	0.708	-45.9	4.55	-130
-11.1	-6.62	32.6	-3.25	3.08	-3.11	23	-3.6	1.85	-4.53	-1.35	32.6
43.6	51.2	42.9	-43.6	0.596	69.7	102	-7.64	47.5	83.6	84.5	18.8
93.3	14.4	-101	-14.7	-84.3	-36.9	68.2	-67	-90.1	14.9	16	-74.9
-13.8	14.9	-14.1	72	2.9	-32.3	-30.8	10.7	-35.4	10.3	-3.93	33.8
-54.1	-19.1	-21.7	-27.7	-91.6	70	25.4	11.9	60.5	22	-27.1	97.5
-40.1	-50.5	-30.4	-29.2	8.71	-10	71.7	22.3	-19.8	-94.1	87.4	49.2
6.99	33	35.4	86.5	-18.4	148	75.2	-28.2	85.2	-31.2	57.6	-28.4
-48.1	-57.1	67.2	17.7	8.52	41.6	-28.2	18.2	-30.8	-55	1.71	-85.5
-21	-82	27.6	-58.1	20.4	-32.4	32	-23.6	-35.7	-79.7	1.13	-15.9
129	1.54	73.4	80	-10.8	-101	-5.07	27.3	93	98.4	39	35.5
22.6	38.1	65	75.6	24.4	57.4	84.4	129	152	20	35	-1.98


このデータのうち、冬季のデータの変化傾向を図示する。図の詳しい情報は、
ここ(マイアルバム)を参照のこと。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


WWW を検索 meteorology.jp を検索

Powered by XOOPS 2.0 © 2001-2006 The XOOPS Project, Maitained by A. Mori
FI Theme :: XOOPS 2 Theme by ImageSquare :: Costomized by matchan and A.Mori