栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

气象大数据平台(天擎)数据读取方法(python)(雷达数据下载)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

气象大数据平台(天擎)数据读取方法(python)(雷达数据下载)

一、下载雷达资料

天擎中地面数据下载https://blog.csdn.net/hq19940416/article/details/124493688?spm=1001.2014.3001.5502雷达下载方法与地面数据下载类似,但与地面数据不同的是,雷达基数据文件下载显示每个基数据文件都有一个url链接,点击后自动下载得到基数据.bz2文件。

因此,雷达资料下载程序中将在地面下载程序中多一个下载基数据步骤。

# 拼接timestamp、nonce、sign
baseUrl += '×tamp=' + timestamp+'&nonce=' + nonce+'&sign=' + sign
response = requests.get(baseUrl)
# 获取url内容并解码,得到时间段内雷达数据的下载链接
xml_data = response.content.decode('utf-8')
res=json.loads(xml_data))['DS']
#根据天擎内雷达基数据链接下载基数据(.bz2文件)
l =len(res)
for i in range(l):
    rda_dbz_url = res[i]['FILE_URL']
    save_filename = res[i]['FILE_NAME']
    save_path ="E:/download/rda/"
    save_file = save_path + save_filename
    rda_dbz = requests.get(rda_dbz_url)
    with open(save_file, "wb") as code:
        code.write(rda_dbz.content)

在运行完天擎下载url后,得到了一个包含雷达基数据所在的url链接、雷达文件名、文件大小等信息的dict数据。

然后再使用request.get()语句,得到雷达基数据.bz2文件,用with open语句将文件存入文件夹。

二、读取雷达基数据.bz2文件

我目前使用的读取多普勒雷达的模块有两个,一个是pycinrad,还有一个是pycwr。这两个模块读取台站的元数据时,pycinrad模块取出的是雷达站拔海高度,pycwr模块取出的是雷达馈源高度。

本文使用的是pycwr,其使用文档:

pycwr使用文档https://pycwr.readthedocs.io/en/latest/PyCWR_intro.html读取雷达基数据的代码如下:

from pycwr.io import read_auto
import os,sys

Dir = "E:/download/rda/" #目标文件夹
fileType = '.bz2' #雷达基数据后缀名
radar_file = get_filename(Dir,fileType)   #get_filename是本人自写的批量读取文件夹内的函数
S = []
for i in range(len(radar_file)):
    PRD = read_auto(radar_file[i])
    S_alt = PRD.scan_info.altitude.values.min()
    S_lon = PRD.scan_info.longitude.values.min()
    S_lat = PRD.scan_info.latitude.values.min()
    S_id = PRD.sitename[-5:]
    S_name = PRD.sitename[:-6]
    S_information = {"站名":S_name,"站号":S_id,"经度":S_lon,"纬度":S_lat,"高度":S_alt}
    S.append(S_information)

运行代码后能得到一个嵌套字典的列表

三、将列表写入txt文件

with open("F:/temp/my2.txt","w+") as f:
    for m in range(len(S)):
        for k,v in S[m].items():
            f.write(f"{k},{v}t".format(k,v))
        f.write(f"n")

with open('⽂件地址',‘w+’):as f:
f.write()写⼊,w+读写
f'{k},{v}'  字典格式化写⼊⽂件
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/844371.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号