一樹同仁:把樹種回最需要樹蔭的地方
比對市府自己的行道樹資料:2024 年 11 月有樹、今天同一位置沒有樹的,有 5,472 棵。這個工具做兩件事:讓每個里的樹公開可查,並回答該種回哪裡,才對最需要樹蔭的人最有幫助。
問題:樹被移除了,而最熱、最缺樹蔭的里,往往最少樹。
我們做的:比對新舊樹籍、找出樹穴偏小的大樹、檢查 300 公尺內有沒有公園;再算出每個里有多需要樹蔭,把 5,472 棵先排給最需要的里,列出可以種的點。
你可以幫忙:打開你住的里,用街景確認種樹點,一個點 30 秒。
開源(MIT)、資料全部公開可重現。市政 debug松 · 題目 #1「把三千棵樹種回來」。
1. 怎麼用
- 看地圖:每個里一個顏色,越橘越缺樹蔭,米白=已達標。綠點是種樹點。
- 找我的里:輸入里名,或按地圖右下角的定位。
- 按「種回 5,472 棵」:看這些樹會種在哪裡。按鈕再按一次,就換成「平均種」對照,看同樣的樹分給誰。
- 點一個里:看它為什麼需要樹蔭(四個指標)、分到幾棵、種在哪些點。
- 幫忙確認:每個點按「看街景」,回來按「空的/已經有樹/不能種」。一個點 30 秒。
- 下載施工清單:每個里可以下載 CSV,包含座標、街景連結和市民確認結果,給里長、議員或公園處使用。
分享連結:網址加 ?plant=1&li=里代碼 會直接打開那個里並種好樹。
2. 資料本身就是 bug
市府圖資有約 15,500 個人行道樹穴,附近找不到任何登記的樹,看起來像空的。我們用 Google 街景隨機抽查 30 個:
| 街景看到 | 數量 |
|---|---|
| 真的是空樹穴 | 4 |
| 其實有樹(其中 10 棵根本不在市府樹木資料裡) | 19 |
| 沒有樹穴(鋪掉、施工中、點位在馬路上) | 5 |
| 看不清楚 | 2 |
推估真正的空樹穴大約 1,700–2,200 個(95% 信賴區間 885–4,900,樣本小)。也就是說:市府的樹木和樹穴資料,對不上現實的比例很高。在資料修好之前,任何「種在哪裡」的決定都建立在錯的地圖上。
所以這個工具的核心是兩件事:①用公平的方法排出優先順序,②讓市民一起用街景把資料修正確。每一筆確認都直接讓施工清單更可靠。
抽查方法與每個點的紀錄:research/streetview-check.md
3. 公開可查:消失的樹、樹穴、公園
市府說 2025 年移除 3,164 棵,但那只是一年的數字。我們直接比對資料,每個里都看得到:
- 🌳 兩年少了幾棵行道樹:網際網路檔案館(Wayback Machine)存有 2024-11-21 的市府行道樹檔案(95,498 棵)。和今天的檔案(90,441 棵)比對,5,472 棵的位置 5 公尺內已經沒有樹;同時有 3,125 處新出現的樹。消失的原因可能是移除、移植(例如工程),或資料本身改了。我們無法分辨,所以每棵都附上位置,並連到公園處的移樹履歷查詢。
- 📏 樹穴偏小的大樹:人行道樹穴資料有每個樹穴的形狀。樹幹 30 公分以上、樹穴小於 1.2 × 1.2 公尺(公園處自己的建議)的有 1,056 棵。東門市場的茄苳就是樹穴太小、原本要移植的樹。這份清單就是「路樹健檢 → 樹穴改善」的起點。
- 🏞️ 300 公尺內有沒有公園:3-30-300 原則的「300」。用 OpenStreetMap 的公園範圍,加上臺北市公園基本資料(補 OSM 沒有的公園),算每個里有多少比例離 0.5 公頃以上的綠地不到 300 公尺(直線距離)。
這三項不改變樹蔭公平分數,是並列的公開檢查。
4. 樹蔭公平分數怎麼算
我們用美國非營利組織 American Forests 的 Tree Equity Score 方法,這是美國許多城市(例如鳳凰城)用來決定先在哪裡種樹的公開方法,改成台北的資料。
分數 = 100 ×(1 − 樹冠缺口 × 需要程度)- 樹冠缺口:目標是每個里 30% 的地面有樹冠(國際「3-30-300」原則的 30)。缺口 =(30% − 現在的樹冠)÷ 30%,已達標就是 0。
- 需要程度:四個指標的平均(下一節),換算成 0.1–1。
- 分數 100 = 已達標;分數越低 = 越缺樹蔭、也越需要。
目前台北 456 個里平均 63 分,312 個里低於 70 分。
5. 四個需要指標
同樣缺樹,有些地方的人更需要樹蔭。每個指標都換算成 0–100:這個里在全台北 456 里中的相對位置(最低的里是 0,最高的是 100),四項等權重,和 Tree Equity Score 一樣。
地圖上的里資訊用白話顯示:每個指標標上高需求(比 75% 以上的里更需要)、中(50–75%)或一般,最重要的原因排在最上面。
| 指標 | 量什麼 | 為什麼重要 |
|---|---|---|
| 地表高溫 | 2023–2025 年夏天 14 張 Landsat 衛星影像的地表溫度中位數 | 樹蔭降溫主要是擋住輻射熱:同一條街,有沒有樹蔭的體感溫度可以差 7°C 以上。 |
| 老人與小孩比例 | 扶養比:65 歲以上和 18 歲以下人數 ÷ 18–64 歲人數(內政部 2026 年 9 月) | 長者和小孩最容易熱傷害;國健署把 65 歲以上列為高風險。 |
| 所得較低 | 財政部各里綜合所得稅所得中位數(2023 年),越低分數越高 | 低所得家庭比較少冷氣、比較常走路和等公車;美國研究顯示低所得社區平均更熱。 |
| 步行人流 | 每平方公里的公車站、捷運出口、學校、市場、醫療與長照據點數量 | 樹蔭只有在有人走的地方才有用。 |
6. 需要優先種 vs 平均種
兩種方法種的都是同樣 5,472 棵、同樣的候選點,只有「分給誰」不同:
- 需要優先種:每一棵樹都放在「能讓公平分數進步最多」的里(缺口 × 需要程度最大的地方),種了之後那個里的缺口變小,下一棵再重新比較。同一個里裡,先種周邊最沒樹蔭、離人潮最近的點。
- 平均種:從全市候選點隨機抽 5,472 個,不看誰需要。這是對照組,代表「不刻意考慮公平」時的結果。
| 平均種 | 需要優先種 | |
|---|---|---|
| 種在最需要的 20% 里的樹 | 858 棵(15.7%) | 2,145 棵(39.2%) |
| 種下處比全市平均熱多少(地表) | +6.3°C | +8.7°C |
| 種下處的所得中位數 | 73.0 萬 | 69.0 萬 |
同樣的樹,需要優先種讓 2.5 倍的樹落在最需要的地方。
7. 種樹點從哪裡來
空樹穴(待確認,灰點)
市府人行道樹穴圖資裡,2 公尺內沒有任何登記行道樹或公園樹的樹穴。如第 2 節所說,大多數其實有樹,所以標示「待確認」。
新增樹穴(需現勘,空心圈)
最缺樹蔭的里,往往連空樹穴都很少,例如松山區新聚里只有 1 個。所以我們也找可以新挖樹穴的地方:
- 人行道有效寬度至少 2.5 公尺:樹穴約 1 公尺,還要留 1.5 公尺淨寬給行人(依《市區道路及附屬工程設計規範》)。
- 沿人行道每 8 公尺一個點,距離現有樹木至少 6 公尺、現有樹穴至少 4 公尺。
- 地下管線資料不公開,所以每個新增點都要現場勘查。
跳過已經有樹蔭的點
用 Meta 1 公尺樹冠高度圖,計算每個點周圍 30×30 公尺的樹冠比例。超過 50% 的點不列入:已經很陰涼的地方,多種一棵幫助不大。
8. 限制:我們還不知道的事
- 樹為什麼消失:逐棵移除紀錄沒有開放下載。我們只知道 2024-11 的資料有、今天沒有,分不出移除、移植或資料修正。公園處的移樹履歷可以逐棵查。公園樹木沒有舊檔可比,只比對行道樹。
- 樹木與樹穴資料不準:見第 2 節。這正是市民確認要修的。
- 樹冠圖年份:Meta 樹冠高度圖用的是 2005–2020 年的衛星影像,近年新種或移除的樹可能還沒反映。
- 地表溫度 ≠ 氣溫:衛星量的是早上約 10:30 的地面溫度,用來比較里與里之間的相對熱度,不是體感溫度。
- 巷弄沒有人行道資料:很多最熱的里是窄巷,這份圖資沒有涵蓋。巷弄植栽、退縮地和校園是 100 天計畫的一部分。
- 所得是 2023 年(財政部最新公開年度);人口是 2026 年 9 月。
真實與模擬資料:本工具沒有使用任何模擬資料。所有數字都來自下列公開資料,可用原始碼重新計算。
9. 資料來源與授權
| 資料 | 來源 | 授權 |
|---|---|---|
| 行道樹 90,441 棵、公園樹木 72,011 棵 | 臺北市政府 · data.gov.tw/128274 | 政府資料開放授權條款 1.0 |
| 行道樹 2024-11-21 存檔(95,498 棵) | 同上,經 Wayback Machine | 同上 |
| 公園基本資料 813 處 | data.taipei | 同上 |
| 人行道樹穴 50,904 個 | data.gov.tw/134908 | 同上 |
| 人行道範圍與寬度 | data.taipei | 同上 |
| 村里界、各里單一年齡人口 | 內政部 · 7438、136896 | 同上 |
| 各里綜合所得稅所得 | 財政部財政資訊中心 · 17983 | 同上 |
| 地表溫度 | USGS Landsat 8/9 Collection 2 Level-2,經 Microsoft Planetary Computer | 公共領域 |
| 樹冠高度 1 m | Meta & WRI Global Canopy Height | CC BY 4.0 |
| 公車站、捷運出口、市場 | 臺北市政府開放資料 | 政府資料開放授權條款 1.0 |
| 學校、醫療、長照據點、公園範圍 | OpenStreetMap | ODbL |
| 底圖 | OpenFreeMap · OpenStreetMap | ODbL |
完整清單、欄位、座標系統與重現指令:data/MANIFEST.md。
10. 開源、參與、其他城市
- 原始碼:github.com/dandanbang/shade-equity(程式 MIT,資料依原始授權)。
- 重現:
bash data/fetch.sh下載資料,make all重算所有分數。 - 回報錯誤:在 GitHub 開 issue,或直接在地圖上用街景確認。
- 其他城市:分數方法只需要「樹冠、人口年齡、所得、溫度、人流」,全台每個村里都有人口與所得資料,Meta 樹冠和 Landsat 全球都有。臺中是第二個有逐棵樹木座標的城市,下一個就是它。
使用的工具:MapLibre GL、GeoPandas、rasterio、Microsoft Planetary Computer、OpenFreeMap;AI 協作:Claude Code(Anthropic),用於資料處理、程式和研究整理,結果都有人工檢查,關鍵數字有街景抽查。
11. 100 天計畫
- 第 1–30 天:市民街景確認 1,000 個點;和公園處對資料差異;找 3 個最缺樹蔭的里,與里長一起現場走。
- 第 31–60 天:第一批種植(以已確認的空樹穴為主);公開每棵樹的「種下 → 存活」紀錄;樹穴太小的老樹列入健檢。
- 第 61–100 天:加入巷弄植栽與退縮地;每棵樹一個公開頁面(市民可認養、收到移除預告);開放臺中等其他城市使用。
12. 版本紀錄
- 2026-10-14 · v0.7:新增「公開可查」:比對 2024-11 與今天的行道樹資料(5,472 棵消失)、樹穴偏小的大樹(1,056 棵)、300 公尺內有沒有公園。種回的數量從官方單年 3,164 棵改為實際比對出的 5,472 棵;結果從「3 倍」變成「2.5 倍」。
- 2026-10-13 · v0.6:設計稽核後全面修正:手機版地圖不再被遮住(里資訊改成底部面板)、顏色只用橘色表示缺樹蔭(綠色只代表樹)、結果改成一個數字「3 倍」、新增「找我的里」與定位、分享這個里、確認按鈕加大並顯示「謝謝」、用語統一(種樹點/空樹穴(待確認)/新增樹穴(需現勘))、投影模式 ?demo=1。
- v0.5:四個指標改成一句白話+需求等級(高需求/中/一般),依重要性排序,拿掉難懂的 0–100 長條;「所得偏低」改為「所得較低」;市民確認接上共用資料庫。
- v0.4:每個種樹點有固定編號,市民確認不會因為重算而遺失;按鈕改為「種完 → 換對照」;加上說明頁、四個指標的白話解釋、確認步驟。
- v0.3:樹冠改用 Meta 1 公尺樹冠高度圖。原本 10 公尺的 ESA 土地覆蓋圖看不到行道樹,也把河濱草地算成樹。跳過周圍已有樹蔭的點;把新增樹穴納入分配,因為最缺樹蔭的里空樹穴不夠。
- v0.2:街景抽查發現「15,536 個空樹穴」大部分不是空的,改寫首頁,市民確認成為核心功能;新增寬人行道的新增樹穴候選點。
- v0.1:樹蔭公平分數(Tree Equity Score 方法)、需要優先 vs 平均分配、里資訊與施工清單。