No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
db
mysql
static
.gitignore
README.md
config-template.js
package.json
server.js

README.md

紫豹在哪裡

紫豹在哪裡是一個整合多種空汙相關資料,並以視覺化動態呈現的網站。 對於空汙問題,它可提供以下價值:

  1. 整合長期空汙相關資料並視覺化呈現,所有人皆可依數據為基礎進行討論。
  2. 協助鎖定台灣空汙來源的可能地點,讓防制資源可以集中投向重點區域。
  3. 凡走過必留下痕跡,用資料透明度遏止可能的惡意排放。
  4. 提供相關資料的API接口,所有人皆可延續發展相關專案。
  5. 開源網站程式碼,想發展相關專案的人都可自行參考開發。

若有希望整合的其他空汙相關數據,請自行從github源始碼發展,或來信aga3134@gmail.com建議。

架站指南

  1. 須先安裝: nginx,nodejs,mongodb,mysql

  2. 設定nginx的config檔

範例:

upstream nodejs{
  server localhost:8001;
}

server {
  listen 80 default_server;
  listen [::]:80 default_server;

  #改成你下載的專案路徑
  root /home/ubuntu/AirPollution;

  index index.html index.htm;
  server_name localhost;

  #/static, /data 資料夾的資料由nginx處理
    location ~* /(static|data) {
    try_files $uri $uri/ =404;
  }

  #其他的pass給nodejs處理
  location / {
    proxy_pass http://nodejs/;
  }
}
  1. 將config-template.js改名為config.js,並填入資料

    googleAuth 是使用google oauth登入需要的資料 (記得進google developer console -> api管理員 -> 憑證 -> 選擇憑證,設重新導向url)

    mysqlAuth 是登入server mysql資料庫需要的資料

    sessionConfig 是session加密用,依自己喜好設

    dataSrcFolder 是你下載的各種資料存放的位置

    dataDoneFolder 是處理完後的資料要移到哪裡

    gridPerUnit 是設定將每單位經緯度切成幾格pm2.5網格

    levelNum 是設定pm2.5網格在地圖上可zoom out的層數

    serverPort 是設定nodejs要在哪個port listen

  2. 在專案資料夾下執行npm install,下載使用到的nodejs函式庫

  3. 確認nginx、mysql、mongodb有啟動,在專案路徑下執行node server.js開啟網站

原始資料

請依提供資料的組織規定取得授權。

  1. 空汙資料: 空氣盒子

 http://airbox.edimaxcloud.com/devices?token=你的token

 存放至設定的dataSrcFolder底下的airdata資料夾,檔名設為airdata_YYYY-MM-DD_HH-mm.json

  1. 風向資料: 氣象資料開放平台 編號:O-A0001-001

 http://opendata.cwb.gov.tw/opendataapi?dataid=O-A0001-001&authorizationkey=你的key

存放至設定的dataSrcFolder底下的weather資料夾,檔名設為weather_YYYY-MM-DD_HH-mm.xml

  1. 電力資料: 台灣電力公司

 * 用電資料 http://www.taipower.com.tw/loadGraph/loadGraph/data/loadareas.csv

存放至設定的dataSrcFolder底下的loadareas資料夾,檔名設為loadareas_YYYY-MM-DD_HH-mm.csv

 * 各發電類型的發電量 http://stpc00601.taipower.com.tw/loadGraph/loadGraph/data/loadfueltype.csv

存放至設定的dataSrcFolder底下的loadfueltype資料夾,檔名設為loadfueltype_YYYY-MM-DD_HH-mm.csv

 * 各電廠發電量 http://www.taipower.com.tw/loadGraph/loadGraph/data/genary.txt

存放至設定的dataSrcFolder底下的genary資料夾,檔名設為genary_YYYY-MM-DD_HH-mm.txt

  1. PM2.5亞洲動態圖: SPRINTARS (Toshihiko Takemura Kyushu University)

 http://sprintars.riam.kyushu-u.ac.jp/images/pm25_asia_編號.png

 存放至設定的dataSrcFolder底下的 graph/YYYY-MM-DD/ 資料夾

  1. 交通資料: 交通部臺灣區國道高速公路局「交通資料庫」

http://tisvcloud.freeway.gov.tw/roadlevel_value5.xml.gz

 解壓縮後存放至設定的dataSrcFolder底下的traffic資料夾,檔名設為traffic_YYYY-MM-DD_HH-mm.xml

資料連接API

  1. 取得pm2.5網格資料

http://purbao.lass-net.org/sensorGrid?date=2017/5/28&hour=0&level=0&minLat=23&maxLat=23.5&minLng=120&maxLng=121

date改成你想取得資料的日期(日期前面不要補0)

hour改成你想取得該日第幾個小時的資料,值為0~23

level改成你想取得的網格大小,值為0~5,0網格最小最密,5網格最大最疏

minLat, maxLat改成你想取得網格的緯度範圍

minLng, maxLng改成你想取得網格的經度範圍

資料為json格式:

level: 目前資料的網格大小

gridX: 網格經度

gridY: 網格緯度

time: 網格資料的更新時間

pm25: 網格內測站的平均pm2.5(單位: μg/m3)
  1. 取得發電廠資料

http://purbao.lass-net.org/powerStation

資料為json格式:

_id: 發電廠ID

capacity: 電廠最大發電量(單位: MW)

name: 電廠名稱

type: 發電類型(nuclear核能, coal燃煤, co-gen汽電共生, ipp-coal民營-燃煤, lng燃氣, ipp-lng民營-燃氣, oil重油, diesel輕油, hydro水力, wind風力, solar太陽能, pumping-gen抽蓄發電, pumping-load抽蓄負載)
  1. 取得電廠發電量

http://purbao.lass-net.org/powerGen?date=2017/5/28

date改成你想取得資料的日期(日期前面不要補0)

資料為json格式:

time: 發電時間

remark: 資料備註

powerGen: 電廠發電量(單位: MW)

stationID: 發電廠ID
  1. 取得北中南東部用電量

http://purbao.lass-net.org/powerLoad?date=2017/5/28

date改成你想取得資料的日期(日期前面不要補0)

資料為json格式:

_id: 用電時間

north: 北部用電量(單位: 萬瓩)

central: 中部用電量(單位: 萬瓩)

south: 南部用電量(單位: 萬瓩)

east: 東部用電量(單位: 萬瓩)
  1. 取得各發電類型的發電量

http://purbao.lass-net.org/powerRatio?date=2017/5/28

date改成你想取得資料的日期(日期前面不要補0)

資料為json格式:

_id: 發電時間

pumpGen: 抽蓄發電(單位: 萬瓩)

solar: 太陽能(單位: 萬瓩)

wind: 風力(單位: 萬瓩)

hydro: 水力(單位: 萬瓩)

diesel: 輕油(單位: 萬瓩)

oil: 重油(單位: 萬瓩)

ippLng: 民營-燃氣(單位: 萬瓩)

lng: 燃氣(單位: 萬瓩)

ippCoal: 民營-燃煤(單位: 萬瓩)

coGen: 汽電共生(單位: 萬瓩)

coal: 燃煤(單位: 萬瓩)

nuclear: 核能(單位: 萬瓩)
  1. 取得氣象測站資料

http://purbao.lass-net.org/weatherStation

資料為json格式:

_id: 測站ID

town: 測站所在鄉鎮

city: 測站所在城市

lng: 測站所在經度

lat: 測站所在緯度

name: 測站名稱
  1. 取得氣象資料

http://purbao.lass-net.org/weatherData?date=2017/5/28

date改成你想取得資料的日期(日期前面不要補0)

資料為json格式:

p: 壓力(單位: 百帕)

h: 溼度,(單位: 百分率)

t: 溫度,(單位: 攝氏)

wSpeed: 風速(單位: 公尺/秒)

wDir: 風向(單位: 度,0度北風,45度東北風)

height: 測站海拔高度(單位: 公尺)

siteID: 測站ID

time: 資料記錄時間
  1. 取得路段資料

http://purbao.lass-net.org/roadSegment

資料為json格式:

_id: 路段ID

path: 路段經緯度座標 (每個點以空白隔開,點的經度緯度以逗號隔開)
  1. 取得路段壅塞程度

http://purbao.lass-net.org/roadData?date=2017/5/28

date改成你想取得資料的日期(日期前面不要補0)

資料為json格式:

time: 資料記錄時間

level: 1:順暢( >79km/h ) 2:車多( 59~79km/h ) 3:車多( 39~59km/h ) 4:壅塞( <39km/h )

roadID: 路段ID