使用機器學習進行氣象數據分析

1. 首先咱們須要找到數據,不少地方提供了api,好比:python

https://www.wunderground.com/weather/api(可是這個網站不提供空氣質量)json

空氣質量可參考:https://www.zhihu.com/question/20939327api

2. 從api獲取數據,使用python,代碼粘出來:app

# -*- coding: UTF-8 -*-
import urllib2
import json
from datetime import datetime
import pandas as pd

''''
最終選擇的特徵有:氣溫tempm, 露點dewptm, 溼度humidity, 風力wspdm, 能見度vism, 氣壓pressurei, 降水precipm
其中,tempm:min max mean, dewptm:min max mean, humidity:humidity, wspdm: min max, vism: mean min max, 
pressurei: max min mean, precipm:precipm
目標:fog(霧霾)
'''
def getdata(month,day,meant,meand,humi,maxw,meanv,meanp,preci,fo):
    date = datetime(2017, month, day)
    print day
    target = 'http://api.wunderground.com/api/{Your Key}/history_{}/q/CN/zmw:00000.1.54511.json?v=wuiapp'
    f = urllib2.urlopen(target.format(date.strftime('%Y%m%d')))
    json_string = f.read()
    parsed_json = json.loads(json_string)
    day = parsed_json['history']['dailysummary']
    temp = day[0]['meantempm']  #氣溫狀況
    dewptm = day[0]['meandewptm']  # 露點狀況
    hum = day[0]['humidity']  # 溼度狀況
    wspdm = day[0]['maxwspdm']  # 風力狀況
    vism = day[0]['meanvism']  # 能見度狀況
    press = day[0]['meanpressurei']  # 氣壓狀況
    prec = day[0]['precipm']  # 降水狀況
    fog = day[0]['fog']  #霧霾狀況
    meant.append(temp)
    meand.append(dewptm)
    humi.append(hum)
    maxw.append(wspdm)
    meanv.append(vism)
    meanp.append(press)
    preci.append(prec)
    fo.append(fog)
    f.close()
if __name__ == '__main__':
    meantempm = []
    meandewptm = []
    humidity = []
    maxwspdm = []
    meanvism = []
    meanpressurei = []
    precipm = []
    f = []
    for day in range(1,31):
        getdata(4, day, meantempm, meandewptm, humidity, maxwspdm, meanvism, meanpressurei, precipm, f)
        print meantempm
    #head = [u'溫度',u'露點',u'溼度',u'風力',u'能見度',u'氣壓',u'降水',u'霧霾']
    value = [meantempm, meandewptm, humidity, maxwspdm, meanvism, meanpressurei, precipm, f]
    value = list(zip(*value))
    dataframe = pd.DataFrame(value)
    dataframe.to_csv('/Users/purixingtei/Downloads/output-2.csv', index=False, encoding="utf-8")

其中的Your Key須要被替換成本身的app key,而後主函數的循環,須要根據本身的月-日進行選擇。函數

特別注意一點就是:不要起csv.py的名!!!網站

(loading)ui

相關文章
相關標籤/搜索