0
点赞
收藏
分享

微信扫一扫

气象站点数据结构化处理

其生 2022-02-08 阅读 45

最近需要处理一批气象站点数据,数据是小时尺度的降水数据,时间跨度长,区域范围大,且由于拿到的气象站点是按时间为文件夹进行存储,举例即按照2022020119小时为文件单位存储所有站点该小时的降水量。后面研究需要针对每个站点的历时降水量进行分析,所以编写了小脚本进行数据的结构化处理。

import os
import pandas as pd


# 获取气象站点站号信息
df = pd.read_csv(r'E:\2020121123_prcp.txt', sep='\s+', header=None)
stations_num = df.loc[:,0]

# 读取历史数据文件
path = r'E:\total'
targetFilePath = r'E:\Pre'
files = os.listdir(path)    # 获取站点数据的文件信息
files.reverse()    #正序/逆序存储

# 通过站号遍历历史站点数据,将数据按照站点进行存储。
for station in stations_num:

    stationDir = targetFilePath + "\\" + str(station)

    with open(stationDir,'a+', newline='') as f:

        for file in files:
            sourceDir = path + '\\' + str(file)

            try:

                date = file.split(sep='_')[0]
                sourceFile = pd.read_csv(sourceDir, sep='\s+', header=None)
                line = sourceFile[sourceFile[0] == station]
                line.insert(loc=0, column='date', value=date)

                line.to_csv(f, sep='\t', header=False, index=False, na_rep='')

            except:

                info = pd.DataFrame([[date,'null','null','null','null','null','null']], columns=list(range(0,7)))
                info.to_csv(f, sep='\t', header=False, index=False)

            continue
举报

相关推荐

0 条评论