登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 MeteoInfo 于 2019-4-2 12:00 编辑
通过readtable函数可以将文本数据读取到一个表格中,其中的format参数可以确定每列数据的数据类型,如果数据中包含时间列就可以对数据进行按照时间平均等操作。这里通过北京2014年12月PM2.5小时平均数据给出一个例子。读取数据到一个表格,并对小时数据进行日平均(通过表格数据的ave_day等函数),然后绘图。表格数据还有ave_hour, ave_month, ave_year等函数进行数据的小时平均、月平均、年平均计算。
部分数据:
Time AQI Grade PM2.5 PM10 CO NO2 O3 O3_8h SO2
2014120104 375.86 5.86 33.57 485.00 0.26 8.29 46.14 48.25 2.29
2014120105 69.12 2.00 9.38 87.75 0.25 6.00 40.25 46.12 5.00
2014120106 54.50 1.88 8.25 59.75 0.28 7.12 40.50 43.62 5.25
2014120107 46.38 1.38 6.62 47.12 0.29 11.62 37.75 40.88 5.00
2014120108 46.38 1.38 6.62 47.12 0.29 11.62 37.75 40.88 5.00
2014120109 25.60 1.00 8.40 25.60 0.34 17.20 30.60 39.00 7.60
2014120110 20.75 1.00 7.00 19.88 0.35 14.62 40.12 39.12 8.12
2014120111 20.75 1.00 7.00 19.88 0.35 14.62 40.12 39.00 8.12
2014120112 17.88 1.00 6.71 10.80 0.35 11.75 54.12 41.00 7.50
2014120113 18.71 1.00 7.80 9.67 0.34 11.86 58.29 42.62 7.14
2014120114 18.71 1.00 7.80 9.67 0.34 11.86 58.29 42.62 7.14
2014120115 18.71 1.00 7.80 9.67 0.34 11.86 58.29 42.62 7.14
2014120116 17.75 1.00 6.50 13.62 0.37 17.00 50.57 46.43 6.00
2014120117 16.38 1.00 6.88 13.43 0.40 22.25 46.12 49.88 6.12
脚本程序:
- fn = r'V:\haze_analysis\aqi\data-station\obs_Beijing_201412.txt'
- table = readtable(fn, format='%{yyyyMMddHH}D%9f')
- t_hour = table['Time']
- data_hour = table['PM2.5']
- tab_day = table.ave_day(['PM2.5'])
- data_day = tab_day['PM2.5']
- t_day = tab_day['Date']
- plot(t_hour, data_hour, '-b')
- plot(t_day, data_day, '-ro')
- ylabel(r'$\rm{PM_{2.5}} \ (\mu g \ m^{-3})$')
- xaxis(axistype='time')
- title('Beijing - 201412')
DataFrame数据对象比Table具有更强的表格数据处理能力,可以对某一列数据进行操作,也可以对整个DataFrame进行日平均等计算。
- fn = r'V:\haze_analysis\aqi\stationData\2014\Beijing\obs_Beijing_201412.txt'
- df = DataFrame.read_table(fn, format='%9f', index_col=0, \
- index_format='%{yyyyMMddHH}D')
- df_day = df.resample('D').mean()
- pm10 = df_day['PM10'].values
- pm25 = df_day['PM2.5'].values
- t_day = df_day.index.data
- plot(t_day, pm10, '-b^', label=r'$\rm{PM_{10}}$')
- plot(t_day, pm25, '-ro', label=r'$\rm{PM_{2.5}}$')
- ylabel(r'$\rm{PM}$' + u' (μg/m' + r'$^{-3})$', fontname='arial')
- xaxis(axistype='time')
- legend()
- title('Beijing - 201412')
|