---
title: "寫 Python程式去追風"
url: https://sammy.hk/use-python-to-track-tropical-cyclone/
author: Sammy Fung
published: 2008-06-21T18:48:25+08:00
modified: 2021-06-01T00:49:56+08:00
description: "題目的 &#8220;追風&#8221; 的 &#8220;追&#8221; 字是指 tracking（追縱路徑），而不是 chasing（在打風時冒險出外追風）。 :p 編寫追風程式的原由 在很多年前開始，在網上留意熱帶氣旋的消息，把地下天文台首頁設為我的瀏覽器首頁，以便在開啟時看到基本天氣資料。 很多影響香港的熱帶…"
categories: ["生活", "開放源碼"]
tags: [python, "熱帶氣旋"]
source: https://sammy.hk
---
題目的 “追風” 的 “追” 字是指 tracking（追縱路徑），而不是 chasing（在打風時冒險出外追風）。 :p

**編寫追風程式的原由**

在很多年前開始，在網上留意熱帶氣旋的消息，把[地下天文台](http://www.weather.org.hk/index.html)首頁設為我的瀏覽器首頁，以便在開啟時看到基本天氣資料。

很多影響香港的熱帶氣旋都在西北太平洋或南中國海形成，而美軍的[聯合颱風警報中心](https://metocph.nmci.navy.mil/jtwc.php)（JTWC）提供比香港天文台更大範圍的熱帶氣旋訊息，甚至報告有機會形成熱帶氣旋的低壓區，所以追縱熱帶氣旋的香港愛好者會把 JTWC 作為參考資料之一。

多年來，為了看看有否新的熱帶氣旋形成，不定時會人手點擊所關 JTWC 連結看看有否更新訊息，或可能會錯過了。今年三月尾在看看 [python](http://www.python.org/) 編程時，發現 python 的程序庫有很多好東西，讓我簡便地編寫一些程式，便開始編寫一個分析 JTWC 報告和提供提示的程序。

**追風程式的發展**

開發這個程式的主要目的是 Just For Fun（Just for my fun 是更加貼切的形容），開發方式是 Release Early, Release Often。XD

不過唯獨這個程式不是開源的，所以我不太著重這程式在 release 時，是否符合我心中的基本簡單要求。

在開始編寫數小時後，第一個版本便開始使用起來。透過 crond 定時執行，第一個版本程式會分析 JTWC 報告，當發現報告提及 “疑似” 氣旋或低壓區時，會以 NNTP 張貼在我的個人新聞組上（newsgroup）。

以下是最近期的例子，比起第一個版本修改臭蟲和加入新訊息。

```
JTWC Report Time: 18/06/08 01:00 HKT
Effective Time: 18/06/08 01:00 - 18/06/08 14:00 HKT

No active tropical cyclone.
1 active tropical disturbance occurs in NW Pacific ocean.

Tropical Disturbance #1:
Location: 6.6N 133.3E (old) -> 8.1N 134.8E (current).
Status: FAIR (upgraded).
```

在第一個版本 in production 之後，我繼續不定時加入新的功能。例如加入報告中熱帶擾亂位置和狀態，提示擾亂被升級或降級（poor &lt;-&gt; fair &lt;-&gt; good）等。後期也加入報告中提及正活躍中熱帶氣旋的資料 － 位置、分級、相關連結。

除了我的 newsgroup 朋友／版友外，沒有太多人知道我正在開發這程式，因為除了對我 user friendly 之外，對其他人不太 user friendly 了。

**使用 Google Map 來顯示路徑**

在編寫這程式的同時，我也試過這程式以外的東西，例如 Google Map API，多月前試過把早年熱帶氣旋路徑位置資料，加上香港的 800、400、200 km 警戒線在 Google Map 上畫出來。

昨晚我把程式再作改進，把熱帶氣旋資料獨立張貼，和提示有關預測路徑。

```
  Current 210600Z @ 12.2N 122.3E, 每分鐘最高持續風速 095 海里和陣風 115 海里.
Forecast 211800Z @ 12.7N 121.7E, 每分鐘最高持續風速 090 海里和陣風 110 海里.
Forecast 220600Z @ 13.5N 121.0E, 每分鐘最高持續風速 085 海里和陣風 105 海里.
Forecast 221800Z @ 14.2N 120.2E, 每分鐘最高持續風速 080 海里和陣風 100 海里.
Forecast 230600Z @ 15.4N 119.4E, 每分鐘最高持續風速 075 海里和陣風 090 海里.
Forecast 240600Z @ 17.8N 118.4E, 每分鐘最高持續風速 075 海里和陣風 090 海里.
Forecast 250600Z @ 20.6N 118.4E, 每分鐘最高持續風速 075 海里和陣風 090 海里.
Forecast 260600Z @ 24.6N 120.5E, 每分鐘最高持續風速 065 海里和陣風 080 海里.
```

今天，更進一步地把程式再作改進（其實為了滿足自己 XD），為我透過 Google Map 顯示的熱帶氣旋路徑圖提供 “風神” （07W）過去和預測路徑，成為了[這個](http://sammy.hk/project/tctrack/tctrack.php)初次 beta 版的網頁了。

### 相關文章：

1. [2006 颱風派比安踩界 自行發出森美「烈風」訊號](https://sammy.hk/%e6%a3%ae%e7%be%8e%e7%83%88%e9%a2%a8%e8%a8%8a%e8%99%9f/ "2006 颱風派比安踩界  自行發出森美「烈風」訊號")
2. [2006 颱風派比安：過份遵守制度是保守的](https://sammy.hk/%e9%81%8e%e4%bb%bd%e9%81%b5%e5%ae%88%e5%88%b6%e5%ba%a6%e6%98%af%e4%bf%9d%e5%ae%88%e7%9a%84/ "2006 颱風派比安：過份遵守制度是保守的")
3. [2007 颱風帕布：八號風球下去街](https://sammy.hk/walk-in-issuing-of-tropical-cyclone-warning-signal8/ "2007 颱風帕布：八號風球下去街")
4. [2008 颱風浣熊：媒體的氣象報導問題](https://sammy.hk/%e5%aa%92%e9%ab%94%e7%9a%84%e6%b0%a3%e8%b1%a1%e5%a0%b1%e5%b0%8e%e5%95%8f%e9%a1%8c/ "2008 颱風浣熊：媒體的氣象報導問題")
