-------------------------------------------------------------------- CLIPER Tropical Cyclone Extensive Forecast Model 氣候及持續熱帶氣旋預延伸報法 -------------------------------------------------------------------- 延伸預報的概念: 延伸預報是針對 CLIPER 程式的特性, 把預報資料反饋作輸入資料,持續預報直至熱帶氣旋消散為止。 在 CLIPER 內, 分別有12小時、24小時、36小時、48小時、60小時及72小時的預報輸出。 它們所需輸入的資料均為: •現時日期 •現時位置(經緯度) •現時中心最高風力 •12小時前位置(經緯度) •24小時前位置(經緯度) 本延伸預報即分為 12 to 12 及 72 to 72 兩種反饋模式。 12 to 12: 把12小時預報輸出再次輸入到12小時預報內,即得出24小時後的預報。 此模式對西進型熱帶氣旋的預測效果較佳,且得出的預測路徑連續及外推性較高。 72 to 72: 把72小時預報輸出再次輸入到12小時預報內,即得出72小時後的 12小時、24小時、36小時、48小時、60小時及72小時預報。 亦即目前起計算,84小時、96小時、108小時、120小時、144小時及160小時的預報。 此模式對轉向型熱帶氣旋的預報效果較佳,因其氣候數據的統計比重較高。 以上預報即重覆直至所預報的熱帶氣旋強度低過 T 1.5 為止。 -------------------------------------------------------------------- 強度預報概念: 由於 CLIPER 只預測熱帶氣旋位置,因此在於強度預報上, 本程式也需特別製作一個強度預報的資料庫。 預報概念為,假定熱帶氣旋在常態下純T指數每日增加1.0, 而在地型影響和轉向進入溫帶的狀態下,則每呈減弱狀態, 同時,熱帶氣旋在不同季節不同位置也會有環境極限(MPI)的發展限制。 以下為強度預報模式的程式碼: -------------------------------------------------------------------- sub intensity { my $x1 = $_[0]; my $y1 = $_[1]; # 起始定位 my $x2 = $_[2]; my $y2 = $_[3]; # 預報定位 my $mm1 = $_[4]; my $dd1 = $_[5]; my $hh1 = $_[6]; # 月、日、時 my $pw = $_[7]; # 起始強度 ($mm2,$dd2,$hh2) = dateadd($mm1,$dd1,$hh1+12); # 12小時後的預報起始時間 $dir = dir($y2,$x2,$y1,$x1); # 移動方位角 $pw+=0.5; # 基本情況: 12小時 T指數 +0.5 ############################### if (($dir>=260)and($dir<360)){ # 地型效應 if ($x2<110){$pw-=2.5;} } if (($x2<120)and($y2>=20)){$pw-=2.5;} if ((($x2>=120)and($x2<=123)) and (($y2>=5)and($y2<=118))) {$pw-=1.5;} ############################### if (($mm2==12)or($mm2<=5)){ # 轉向/進入鞍型場 if ((($x2>=115)and($y2>=17)) and(($dir>0)and($dir<140))) {$pw-=1;} elsif ((($x2>=120)and(($y2>=15)and($y2<=17))) and(($dir>320)and($dir<360))) {$pw+=0.5;} } elsif ((($mm2>5)or($mm2<=7)) or (($mm2>=10)or($mm2<=12))){ if ((($x2>=120)and($y2>=30)) and(($dir>0)and($dir<140))) {$pw-=1;} elsif ((($x2>=120)and(($y2>=25)and($y2<=30))) and(($dir>=320)and($dir<360))) {$pw+=0.5;} } elsif (($mm2>7)and($mm2<10)){ if ((($x2>=130)and($y2>=35)) and(($dir>0)and($dir<=140))) {$pw-=1;} elsif ((($x2>=120)and(($y2>=27)and($y2<=32))) and(($dir>=320)and($dir<360))) {$pw+=0.5;} } ############################### if (($mm2>=1)or($mm2<=5)){ # 氣候 MPI if ($x2<=120){ if ($y2<=15){if($pw>=5){$pw=5;}} elsif ($y2>15){if($pw>=3.5){$pw=3.5;}} } if ($x2>=120){ if ($y2<=15){if($pw>=7){$pw=7;}} elsif ($y2>15){if($pw>=4.5){$pw=4.5;}} }} if (($mm2>5)or($mm2<=9)){ if ($x2<=120){if($pw>=7){$pw=7;}} if ($x2>=120){ if ($y2>30){if($pw>=3.5){$pw=3.5;}} elsif (($y2>20)and($y<=30)){if($pw>=5){$pw=5;}} elsif ($y<=20){if($pw>=7){$pw=7;}} } if ($x2>=140){ if ($y<=10){if($pw>=7.5){$pw=7.5;}} }} if (($mm2>9)or($mm2<=12)){ if ($x2<=120){ if ($y2<=15){if($pw>=7){$pw=7;}} elsif ($y2>15){if($pw>=4.5){$pw=4.5;}} } if ($x2>=120){ if ($y2>30){if($pw>=3.5){$pw=3.5;}} elsif (($y2>20)and($y<=30)){if($pw>=5.5){$pw=5.5;}} elsif (($y2>10)and($y<=20)){if($pw>=7.5){$pw=7.5;}} elsif ($y<=10){if($pw>=8){$pw=8;}} }} ############################### if (($mm2==12)or($mm2<=3)){ # 氣候上的熱帶氣旋可生存範圍極限 if ($y2>20){$pw=0;}} elsif (($mm2>3)and($mm2<=5)){ if ($y2>=40){$pw=0;}} else{ if ($y2>=50){$pw=0;}} ############################### if ($pw<=1){$pw=1;} if ($pw>=8){$pw=8;} return ($mm2,$dd2,$hh2,$pw); }