• 沒有找到結果。

第六章 結論與建議

6.2 建議

參考文獻

Anowar, S., Eluru, N., & Hatzopoulou, M. (2017). Quantifying the value of a clean ride:

How far would you bicycle to avoid exposure to traffic-related air pollution?

Transportation Research Part A: Policy and Practice, 105, 66-78.

doi:https://doi.org/10.1016/j.tra.2017.08.017

Chen, L.-J., Ho, Y.-H., Hsieh, H.-H., Huang, S.-T., Lee, H.-C., & Mahajan, S. (2017).

ADF: an Anomaly Detection Framework for Large-scale PM2.5 Sensing Systems. IEEE Internet of Things Journal, PP(99), 1-1.

doi:10.1109/jiot.2017.2766085

Cohen, A. J., Brauer, M., Burnett, R., Anderson, H. R., Frostad, J., Estep, K., . . .

Forouzanfar, M. H. (2017). Estimates and 25-year trends of the global burden of disease attributable to ambient air pollution: an analysis of data from the Global Burden of Diseases Study 2015. Lancet, 389(10082), 1907-1918.

doi:10.1016/s0140-6736(17)30505-6

Ham, W., Vijayan, A., Schulte, N., & Herner, J. D. (2017). Commuter exposure to PM2.5, BC, and UFP in six common transport microenvironments in Sacramento, California. Atmospheric Environment, 167, 335-345.

doi:https://doi.org/10.1016/j.atmosenv.2017.08.024

Homayoon, Z., Mohsen, S., & Majid, M. (2015). A New Method for Urban Travel Rout Planning Based on Air Pollution Sensor Data. Current World Environment, 30(48), 699-704. doi:10.12944/CWE.10.Special-Issue1.83

Jarjour, S., Jerrett, M., Westerdahl, D., de Nazelle, A., Hanning, C., Daly, L., . . . Balmes, J. (2013). Cyclist route choice, traffic-related air pollution, and lung function: a scripted exposure study. Environmental Health, 12.

doi:10.1186/1476-069x-12-14

LASS-Community. (2018). PM2.5 OPEN DATA PORTAL. Retrieved from https://pm25.lass-net.org/

Lelieveld, J., Evans, J. S., Fnais, M., Giannadaki, D., & Pozzer, A. (2015). The

contribution of outdoor air pollution sources to premature mortality on a global scale. Nature, 525, 367. doi:10.1038/nature15371

Li, H. C., Chiueh, P. T., Liu, S. P., & Huang, Y. Y. (2017). Assessment of different route choice on commuters' exposure to air pollution in Taipei, Taiwan.

Environmental Science and Pollution Research, 24(3), 3163-3171.

doi:10.1007/s11356-016-8000-7

Liu, W.-T., Ma, C.-M., Liu, I. J., Han, B.-C., Chuang, H.-C., & Chuang, K.-J. (2015).

Effects of commuting mode on air pollution exposure and cardiovascular health among young adults in Taipei, Taiwan. International Journal of Hygiene and

doi:10.6342/NTU201903250

53

Environmental Health, 218(3), 319-323.

doi:https://doi.org/10.1016/j.ijheh.2015.01.003

Molter, A., & Lindley, S. (2015). Influence of walking route choice on primary school children's exposure to air pollution--A proof of concept study using simulation.

Sci Total Environ, 530-531, 257-262. doi:10.1016/j.scitotenv.2015.05.118 Park, Y. M., & Kwan, M.-P. (2017). Individual exposure estimates may be erroneous

when spatiotemporal variability of air pollution and human mobility are ignored.

Health & Place, 43, 85-94. doi:10.1016/j.healthplace.2016.10.002

S. Nedkov, S. Z. (2011). Enabling obstacle avoidance for Google maps' navigation service.

Vamshi, B., & Prasad, R. V. (2018, 5-8 Feb. 2018). Dynamic route planning framework for minimal air pollution exposure in urban road transportation systems. Paper presented at the 2018 IEEE 4th World Forum on Internet of Things (WF-IoT).

Wong, D. W., Yuan, L., & Perlin, S. A. (2004). Comparison of spatial interpolation methods for the estimation of air quality data. Journal Of Exposure Analysis And Environmental Epidemiology, 14, 404. doi:10.1038/sj.jea.7500338 World Health Organiztion. (2018). Ambient (outdoor) air quality and health.

Retrieved from http://www.who.int/mediacentre/factsheets/fs313/en/

附錄一 系統程式碼

此部分程式碼主要為後端路由、資料接收及路線計算為主,系統前端展示等 完整程式碼將放置於 GitHub 上進行維護及更新,可透過以下連結進行存取:

https://github.com/YuChunTsao/AirPollutionRouting。

1. 系統環境

主要以 Python3.6.5 進行開發,透過 Anaconda 進行環境及相關套件的安裝。

2. Open Route Service Direction API 的 Token 申請及設置

本研究使用到 Open Route Service Direction API 進行路線規劃,需事先至 Open Route Service 網站進行註冊及 Token 的申請,並將 API Token 存放於 APIKEY 的檔案中以提供程式碼的存取使用。

3. 使用 Flask 建立 API 服務

Flask 是一個由 Python 所撰寫的輕量型網路框架,本系統用此進行網頁路由 的管理及 API 的建立,以下為 app.py 的程式碼。

from flask import Flask, render_template, jsonify, request from module.Direction import Direction

app = Flask(__name__)

# index page

@app.route('/')

doi:10.6342/NTU201903250

direction = Direction(origin, destination, travelMode) # Regular Route

品質數據,並 Geopandas 套件進行篩選及產生研究中所需要的資料。

from shapely.geometry import MultiPolygon, Polygon, Point

class PM25:

doi:10.6342/NTU201903250

self.pm25 = self.pm25.loc[self.pm25['gps_lat'] < 26.96] +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"

pm25_point = pm25_point_wgs84.to_crs(crs)

doi:10.6342/NTU201903250 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"

pm25_point = pm25_point.to_crs(crs)

if __name__ == '__main__':

doi:10.6342/NTU201903250

IDW.py

from shapely.geometry import MultiPolygon, Polygon, Point

class IDW:

doi:10.6342/NTU201903250 YtopOrigin), (Xright, YbottomOrigin), (Xleft, YbottomOrigin)]))

Xleft = Xleft + self.grid.size

Xright = Xright + self.grid.size YtopOrigin = YtopOrigin - self.grid.size

YbottomOrigin = YbottomOrigin - self.grid.size +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"

grid = gpd.GeoDataFrame(df, geometry=polygons, crs=crs)

doi:10.6342/NTU201903250

65

intersection_wgs84["color"] = color_list

intersection_wgs84["geometry"] = [MultiPolygon([feature]) if

type(feature) == Polygon else feature for feature in intersection_wgs84["geometry"]]

intersection_wgs84.to_file('../data/grids/taipei_grid_' + str(self.grid.size) + 'm_' + output_time + '.geojson', driver='GeoJSON', encoding='utf8')

intersection_wgs84.to_file('../data/grids/taipei_grid_' + str(self.grid.size) + 'm_lastest.geojson', driver='GeoJSON', encoding='utf8')

def __setColor(self, value):

return color

taipei_county_twd97 = gpd.read_file('../data/taipei_county_twd97.shp') bounds = taipei_county_twd97.bounds

intersection = gpd.overlay(taipei_county_twd97, idw.polygon, how='intersection')

intersection.to_file('../data/grids/taipei_grid_' + str(grid.size) + 'm_' +

doi:10.6342/NTU201903250

67

pm25.parseTime + '.shp', driver='ESRI Shapefile', encoding='utf-8')

idw.toGeoJSON(intersection, pm25.parseTime)

6. 路線規畫

透過 Open Route Service Direction API 進行路線規劃,並將先前計算好的空間 內插網格資料引入,獲取其中的空氣品質數據,來進行空氣污染暴露量的計算,

from geojson import Feature, Point , LineString, FeatureCollection import polyline

import geopandas as gpd from pyproj import Proj from shapely import geometry

from shapely.geometry import shape, Polygon, mapping, MultiPolygon, LineString, Point

class Direction:

doi:10.6342/NTU201903250

# # 障礙區顯示 - GeoJSON

doi:10.6342/NTU201903250

71

requested destination because of too many blocked streets.')

# 依照空氣污染總暴露量進行排序,由小至大。

# result = client.directions(coords, profile=self.mode) ORS_route = self.client.directions(**route_request) ORS_route_steps = self.__toGeoJSON(ORS_route)

# with open('./data/ORS_route.geojson', 'w') as outfile:

# json.dump(ORS_route, outfile)

return ORS_route, ORS_route_steps

def __selectBarriers(self, level, route):

# 普通 if level == 1:

min = 15.4 # max = 35.4

# 對敏感族群不健康 if level == 2:

min = 35.4 # max = 54.4

# 對所有族群不健康 if level == 3:

doi:10.6342/NTU201903250

points_index = step['way_points']

doi:10.6342/NTU201903250

from geojson import Feature, FeatureCollection

class Exposure:

def __init__(self, ORS_route, ORS_route_steps):

self.idw_grid =

gpd.read_file('./data/taipei_grid_500m_20190610052502.geojson')

# self.route = gpd.read_file('./data/ORS_route.geojson')

doi:10.6342/NTU201903250

result['ID'] = result.index.tolist()

doi:10.6342/NTU201903250

color = '#00E800'

if value > 15.4 and value <= 35.4:

color = '#FFFF00'

if value > 35.4 and value <= 54.4:

color = '#FF7E00'

if value > 54.4 and value <= 150.4:

color = '#FF0000'

if value > 150.4 and value <= 250.4:

color = '#8F3F97'

if value > 250.4 and value <= 350.4:

color = '#7E0023'

if value > 350.4 and value <= 500.4:

color = '#7E0023'

return color

相關文件