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

一、下载雷达资料

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

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

# 拼接timestamp、nonce、sign
baseUrl += '&timestamp=' + 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}'  字典格式化写⼊⽂件
 

  • 9
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值