- 积分
- 8005
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-12-27
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2019-7-23 14:18:45
|
显示全部楼层
- # -*- coding: utf-8 -*-
- """
- Created on Sun Jan 13 21:51:35 2019
- @author: Fulang WU
- """
- """定义一个函数,用于读取目标文件夹下的多个雷达基数据"""
- #读取指定文件夹中的指定文件类型的文件名
- import os
- def get_filename(path,fileType):
- file_name =[]
- final_name = []
- for files in os.listdir(path): #root为目录路径 #dirs为路径下的子目录 #files为路径下的所有非子目录
- if fileType in files:
- file_name.append(files.replace(fileType,''))#生成不带‘.bin’后缀的文件名组成的列表
- final_name = [path +item +fileType for item in file_name]#生成‘.bin’后缀的文件名组成的绝对路径列表
- return final_name #输出列表
- """-----------------------------------------------------------------------------------------------------------"""
- """读取目标文件夹下的多个雷达基数据"""
- Dir = "D:/Python/Anaconda3/Scripts/Radar/" #目标文件夹
- fileType = '.bin' #雷达基数据后缀名
- #sa_radar_file = Dir+"Z_RADR_I_Z9571_20180304115800_O_DOR_SA_CAP.bin"
- sa_radar_file = get_filename(Dir,fileType) #读取
- print(sa_radar_file)
- """----------------------------------------------------------------------"""
- """---------------------------绘制雷达图像-------------------------------"""
- import cinrad
- from cinrad.io import CinradReader, StandardData
- from cinrad.visualize import PPI
- import matplotlib.ticker as mticker
- from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
- ele = 1 #第1个仰角
- radius = 230 #绘制图像的范围大小
- for nFiles in range(len(sa_radar_file)):
-
- f = CinradReader(sa_radar_file[nFiles]) #老版本数据
- rl = [f.get_data(i, radius, 'REF') for i in f.angleindex_r]
- vcs = cinrad.easycalc.VCS(rl)
-
-
- """
- 剖面经纬度
- """
- ##1045
- #sec = vcs.get_section(start_cart=(118.8, 29.8), end_cart=(119.4, 30.2)) # 传入经纬度坐标
- ##1124
- #sec = vcs.get_section(start_cart=(119.4, 30.1), end_cart=(120.0, 30.4)) # 传入经纬度坐标
- ##1158
- sec = vcs.get_section(start_cart=(119.8, 30.2), end_cart=(120.4, 30.6)) # 传入经纬度坐标
- ##1259
- #sec = vcs.get_section(start_cart=(120.6, 30.6), end_cart=(121.4, 31.0)) # 传入经纬度坐标
-
-
- fig = cinrad.visualize.PPI(rl[ele]) #0代表第1个仰角
-
- fig.plot_range_rings(radius, color='white', linewidth=1.0) #绘制圆圈
- for i in range(0,radius-30,50):
- fig.plot_range_rings(i, color='white', linewidth=1.0) #绘制圆圈
-
- fig.plot_cross_section(sec) #绘制垂直剖面
-
- """
- 设置经纬度
- """
- liner = fig.geoax.gridlines(draw_labels=True,linewidth=2, color='gray', alpha=0.5, linestyle='--')
- liner.xlabels_top = False
- liner.ylabels_right = False
- liner.xformatter = LONGITUDE_FORMATTER
- liner.yformatter = LATITUDE_FORMATTER
- liner.xlabel_style = {'size': 18, 'color': 'white'}
- #liner.xlabel_style = {'color': 'red', 'weight': 'bold'}
- liner.ylabel_style = {'size': 18, 'color': 'white'}
-
- #保存图像
- fig(Dir)
复制代码
你用以上代码绘图试试 |
|