metradar 0.1.6__py3-none-any.whl → 0.1.8.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- metradar/__init__.py +4 -2
- metradar/config.py +53 -0
- metradar/core/__init__.py +9 -0
- metradar/{get_cross_section_from_pyart.py → core/get_cross_section.py} +5 -157
- metradar/{mosaic_merge.py → core/mosaic_merge.py} +3 -1
- metradar/{oa_dig_func.py → core/oa_dig_func.py} +83 -333
- metradar/graph/__init__.py +9 -0
- metradar/{mosaic_quickdraw.py → graph/draw_comp_mosaic.py} +71 -68
- metradar/{draw_mosaic_new.py → graph/draw_latlon_func.py} +177 -173
- metradar/graph/draw_radar_aws.py +212 -0
- metradar/{draw_radar_comp_func.py → graph/draw_radar_comp_func.py} +319 -248
- metradar/graph/parse_pal.py +157 -0
- metradar/io/__init__.py +9 -0
- metradar/{cnrad_level2.py → io/cnrad_level2.py} +45 -2
- metradar/{decode_fmt_pyart.py → io/decode_fmt_pyart.py} +20 -3
- metradar/{decode_pup_rose.py → io/decode_pup_rose.py} +241 -684
- metradar/{read_new_mosaic_func.py → io/read_new_mosaic_func.py} +30 -2
- metradar/io/read_swan.py +250 -0
- metradar/{rose_structer.py → io/rose_structer.py} +2 -0
- metradar/project/__init__.py +9 -0
- metradar/project/make_mosaic/__init__.py +9 -0
- metradar/project/make_mosaic/batch_draw_mosaic.py +32 -0
- metradar/{make_mosaic_mp_archive.py → project/make_mosaic/make_mosaic_func.py} +144 -175
- metradar/project/make_mosaic/make_mosaic_mp.ini +29 -0
- metradar/project/make_mosaic/make_mosaic_mp.py +70 -0
- metradar/project/make_vpr_aws/__init__.py +9 -0
- metradar/project/make_vpr_aws/construct_aws_refvpr_mainprog.ini +39 -0
- metradar/project/make_vpr_aws/construct_aws_refvpr_mainprog.py +565 -0
- metradar/project/make_vpr_aws/make_mosaic_20230731_daxing.ini +29 -0
- metradar/project/make_vpr_aws/make_mosaic_basefile.ini +29 -0
- metradar/project/nowcasting/__init__.py +9 -0
- metradar/project/nowcasting/nowcast_by_pysteps.py +214 -0
- metradar/{trans_nc_pgmb.py → project/nowcasting/trans_mosaic_pgmb.py} +19 -17
- metradar/project/qpe/Archive /346/250/241/345/274/217/350/257/264/346/230/216.txt" +2 -0
- metradar/project/qpe/__init__.py +9 -0
- metradar/project/qpe/archive_main_qpe_cfg.ini +91 -0
- metradar/project/qpe/do_s1.sh +6 -0
- metradar/project/qpe/do_s2.sh +6 -0
- metradar/project/qpe/do_s3.sh +6 -0
- metradar/project/qpe/do_s4.sh +6 -0
- metradar/project/qpe/do_s5.sh +6 -0
- metradar/project/qpe/exec_all.sh +11 -0
- metradar/project/qpe/get_rainrate_func.py +80 -0
- metradar/project/qpe/main_qpe_cfg.ini +85 -0
- metradar/project/qpe/s1_download_radar_region_cmadaas.py +123 -0
- metradar/project/qpe/s2_pre_process_single_radar.py +183 -0
- metradar/project/qpe/s3_trans_rainrate_to_qpe.py +499 -0
- metradar/project/qpe/s4_mosaic_qpe.py +523 -0
- metradar/project/qpe/s5_draw_qpe_mosaic.py +308 -0
- metradar/project/wind_retrieval/__init__.py +9 -0
- metradar/project/wind_retrieval/config_3dwind.ini +45 -0
- metradar/{main_pydda.py → project/wind_retrieval/main_pydda.py} +152 -149
- metradar/util/__init__.py +9 -0
- metradar/{comm_func.py → util/comm_func.py} +1 -41
- metradar/util/exceptions.py +50 -0
- metradar/util/geo_transforms_pyart.py +627 -0
- metradar/{get_tlogp_from_sharppy.py → util/get_tlogp_from_sharppy.py} +16 -5
- metradar/{parse_pal.py → util/parse_pal.py} +147 -147
- metradar/util/radar_common.py +16 -0
- metradar/{trans_new_mosaic_nc.py → util/trans_new_mosaic_nc.py} +1 -1
- metradar-0.1.8.2.dist-info/METADATA +90 -0
- metradar-0.1.8.2.dist-info/RECORD +69 -0
- {metradar-0.1.6.dist-info → metradar-0.1.8.2.dist-info}/WHEEL +1 -1
- metradar-0.1.8.2.dist-info/licenses/LICENSE +21 -0
- {metradar-0.1.6.dist-info → metradar-0.1.8.2.dist-info}/top_level.txt +0 -1
- cfg/config.py +0 -90
- metradar/grid.py +0 -281
- metradar/grid_data.py +0 -64
- metradar/oa_couhua.py +0 -166
- metradar/read_new_mosaic.py +0 -33
- metradar/retrieve_cmadaas.py +0 -3126
- metradar/retrieve_micaps_server.py +0 -2061
- metradar-0.1.6.dist-info/METADATA +0 -37
- metradar-0.1.6.dist-info/RECORD +0 -34
- /metradar/{pgmb_io.py → io/pgmb_io.py} +0 -0
- /metradar/{exceptions.py → project/make_vpr_aws/exceptions.py} +0 -0
- /metradar/{geo_transforms_pyart.py → project/make_vpr_aws/geo_transforms_pyart.py} +0 -0
- /metradar/{make_gif.py → util/make_gif.py} +0 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
|
|
2
|
+
# _*_ coding: utf-8 _*_
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
'''
|
|
6
|
+
该脚本是用于批量绘制综合体,并可以针对不同case进行不同的绘图设置,具体参数保存在类似radardrawlist_20120612.csv文件中
|
|
7
|
+
|
|
8
|
+
朱文剑
|
|
9
|
+
'''
|
|
10
|
+
|
|
11
|
+
import pandas as pd
|
|
12
|
+
import warnings
|
|
13
|
+
warnings.filterwarnings('ignore')
|
|
14
|
+
|
|
15
|
+
from metradar.graph.draw_radar_comp_func import DRAW_RADAR_OTHER,ini_params
|
|
16
|
+
from multiprocessing import cpu_count, Pool,freeze_support
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def draw_all(params):
|
|
20
|
+
# sourcepath,outpath,filename,start_lat,end_lat,start_lon,end_lon
|
|
21
|
+
# 河南北部区域
|
|
22
|
+
sourcepath = params['sourcepath']
|
|
23
|
+
outpath = params['outpath']
|
|
24
|
+
radfilename = params['radfilename']
|
|
25
|
+
slat = params['slat']
|
|
26
|
+
nlat = params['nlat']
|
|
27
|
+
wlon = params['wlon']
|
|
28
|
+
elon = params['elon']
|
|
29
|
+
|
|
30
|
+
timestr = radfilename[5:13] + '.' + radfilename[14:20]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# 用户需根据实际情况设置路径
|
|
34
|
+
fontname='../common/fonts/msyhbd.ttc'
|
|
35
|
+
|
|
36
|
+
# 添加中文地名
|
|
37
|
+
# 用户需根据实际情况设置路径
|
|
38
|
+
filename = '../common/中文地理信息原始文件/吉林省所有站点信息.xls'
|
|
39
|
+
|
|
40
|
+
data_guojia = pd.read_excel(filename, sheet_name = '国家站55',header=0,skiprows=0,index_col=None,)
|
|
41
|
+
for jj in range(data_guojia.shape[0]):
|
|
42
|
+
curidx = data_guojia['站名'][jj].find('国家')
|
|
43
|
+
data_guojia['站名'][jj] = data_guojia['站名'][jj].replace( data_guojia['站名'][jj][curidx:],'')
|
|
44
|
+
data_guojia['站名'][jj] = data_guojia['站名'][jj].replace( data_guojia['组织机构'][jj],'')
|
|
45
|
+
|
|
46
|
+
data_guojiatianqi = pd.read_excel(filename, sheet_name = '国家天气站333',header=0,skiprows=0,index_col=None,)
|
|
47
|
+
|
|
48
|
+
for jj in range(data_guojiatianqi.shape[0]):
|
|
49
|
+
data_guojiatianqi['站名'][jj] = data_guojiatianqi['站名'][jj].replace('国家气象观测站','')
|
|
50
|
+
data_guojiatianqi['站名'][jj] = data_guojiatianqi['站名'][jj].replace( data_guojiatianqi['组织机构'][jj],'')
|
|
51
|
+
if data_guojiatianqi['站名'][jj].find('尔罗斯')>=0:
|
|
52
|
+
data_guojiatianqi['站名'][jj] = data_guojiatianqi['站名'][jj].replace('尔罗斯','')
|
|
53
|
+
|
|
54
|
+
data_quyuzhan = pd.read_excel(filename, sheet_name = '区域站1048',header=0,skiprows=0,index_col=None,)
|
|
55
|
+
for jj in range(data_quyuzhan.shape[0]):
|
|
56
|
+
data_quyuzhan['站名'][jj] = data_quyuzhan['站名'][jj].replace('气象观测站','')
|
|
57
|
+
|
|
58
|
+
data_quyuzhan['站名'][jj] = data_quyuzhan['站名'][jj].replace(data_quyuzhan['组织机构'][jj],'')
|
|
59
|
+
if data_quyuzhan['站名'][jj].find('尔罗斯')>=0:
|
|
60
|
+
data_quyuzhan['站名'][jj] = data_quyuzhan['站名'][jj].replace('尔罗斯','')
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
lat=[]
|
|
65
|
+
lon=[]
|
|
66
|
+
staname=[]
|
|
67
|
+
for ng in range(len(data_guojia['经度'])):
|
|
68
|
+
lon.append(data_guojia['经度'][ng])
|
|
69
|
+
lat.append(data_guojia['纬度'][ng])
|
|
70
|
+
staname.append(data_guojia['站名'][ng])
|
|
71
|
+
|
|
72
|
+
for ng in range(len(data_guojiatianqi['经度'])):
|
|
73
|
+
lon.append(data_guojiatianqi['经度'][ng])
|
|
74
|
+
lat.append(data_guojiatianqi['纬度'][ng])
|
|
75
|
+
staname.append(data_guojiatianqi['站名'][ng])
|
|
76
|
+
|
|
77
|
+
# for ng in range(len(data_quyuzhan['经度'])):
|
|
78
|
+
# lon.append(data_quyuzhan['经度'][ng])
|
|
79
|
+
# lat.append(data_quyuzhan['纬度'][ng])
|
|
80
|
+
# staname.append(data_quyuzhan['站名'][ng])
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
# radfilepath='/Users/wenjianzhu/Downloads/ZZHN'
|
|
85
|
+
radfilepath = sourcepath
|
|
86
|
+
params['radarfile_path'] = radfilepath
|
|
87
|
+
params['radarfile_name'] = radfilename
|
|
88
|
+
params['pic_path'] = outpath
|
|
89
|
+
params['timestr'] = timestr
|
|
90
|
+
params['slat'] = slat
|
|
91
|
+
params['nlat'] = nlat
|
|
92
|
+
params['wlon'] = wlon
|
|
93
|
+
params['elon'] = elon
|
|
94
|
+
params['fontfile'] = fontname
|
|
95
|
+
params['gis_lats'] = lat
|
|
96
|
+
params['gis_lons'] = lon
|
|
97
|
+
params['gis_name'] = staname
|
|
98
|
+
params['breplace'] = True
|
|
99
|
+
params['bdraw_crs'] = True
|
|
100
|
+
params['ref_colorfile'] = '../common/gr2_colors/default_BR_PUP2.pal'
|
|
101
|
+
params['vel_colorfile'] = '../common/gr2_colors/default_BV_PUP2.pal'
|
|
102
|
+
params['figsize_width'] = 4
|
|
103
|
+
params['fontsize_gis'] = 5
|
|
104
|
+
params['fontsize_colorbar'] = 5
|
|
105
|
+
params['fontsize_title'] = 6
|
|
106
|
+
params['mapcolor'] = [0/255,0/255,0/255]
|
|
107
|
+
params['dpi'] = 800
|
|
108
|
+
params['pic_format'] = 'jpg'
|
|
109
|
+
params['bdraw_title_ppi'] = False
|
|
110
|
+
|
|
111
|
+
# params={'radarfile_path':radfilepath,
|
|
112
|
+
# 'radarfile_name':radfilename,
|
|
113
|
+
# 'mosaicfile_path':'',
|
|
114
|
+
# 'mosaicfile_name':'',
|
|
115
|
+
# 'pic_path':outpath,
|
|
116
|
+
# 'timestr':timestr,
|
|
117
|
+
# 'aws_min_file_path':'',
|
|
118
|
+
# 'aws_min_file_name':'',
|
|
119
|
+
# 'aws_hour_file_path':'',
|
|
120
|
+
# 'aws_hour_file_name':'',
|
|
121
|
+
# 'gis_name':staname,
|
|
122
|
+
# 'gis_lats':lat,
|
|
123
|
+
# 'gis_lons':lon,
|
|
124
|
+
# 'slat':slat,
|
|
125
|
+
# 'nlat':nlat,
|
|
126
|
+
# 'wlon':wlon,
|
|
127
|
+
# 'elon':elon,
|
|
128
|
+
# 'ref_colorfile':'../common/gr2_colors/default_BR_PUP2.pal',
|
|
129
|
+
# 'vel_colorfile':'../common/gr2_colors/default_BV_PUP2.pal',
|
|
130
|
+
# 'fontfile':fontname,
|
|
131
|
+
# 'dpi':800,
|
|
132
|
+
# 'pic_format':'png',
|
|
133
|
+
# 'figsize_width':4,
|
|
134
|
+
# 'fontsize_gis':5,
|
|
135
|
+
# 'fontsize_colorbar':5,
|
|
136
|
+
# 'fontsize_title':6,
|
|
137
|
+
# 'mapcolor':[0/255,0/255,0/255],
|
|
138
|
+
# 'breplace':True, #如果图片文件已存在,是否重新绘制
|
|
139
|
+
# 'bdraw_crs':False
|
|
140
|
+
# }
|
|
141
|
+
|
|
142
|
+
_draw_radar_other = DRAW_RADAR_OTHER(params)
|
|
143
|
+
|
|
144
|
+
_draw_radar_other.read_vol_data()
|
|
145
|
+
|
|
146
|
+
# _draw_radar_other.draw_ref_alone(subdir='回波强度',tilt=0,thred=-5)
|
|
147
|
+
_draw_radar_other.draw_ref_alone(subdir='回波强度',tilt=1,thred=-5)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
# _draw_radar_other.draw_vel_alone(subdir='径向速度',tilt=0)
|
|
151
|
+
# _draw_radar_other.draw_vel_alone(subdir='径向速度',tilt=1)
|
|
152
|
+
# _draw_radar_other.draw_vel_alone(subdir='径向速度',tilt=2)
|
|
153
|
+
|
|
154
|
+
# _draw_radar_other.draw_vel_pre()
|
|
155
|
+
_draw_radar_other.draw_vel_wind_barb()
|
|
156
|
+
# _draw_radar_other.draw_vel_wind_quiver()
|
|
157
|
+
# _draw_radar_other.draw_ref_pre()
|
|
158
|
+
# _draw_radar_other.draw_ref_pre_wind_barb()
|
|
159
|
+
|
|
160
|
+
# _draw_radar_other.get_cref_from_radar([_draw_radar_other.g_rad_lat,_draw_radar_other.g_rad_lon])
|
|
161
|
+
# _draw_radar_other.get_cref_from_mosaicfile()
|
|
162
|
+
# _draw_radar_other.get_cref_from_radar([35.6,114.0])
|
|
163
|
+
# _draw_radar_other.draw_cref_pre()
|
|
164
|
+
# _draw_radar_other.draw_cref_wind_barb()
|
|
165
|
+
# _draw_radar_other.draw_cref_wind_quiver()
|
|
166
|
+
# _draw_radar_other.draw_cref_pre_wind_barb()
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
# %%
|
|
170
|
+
import os
|
|
171
|
+
if __name__ == '__main__':
|
|
172
|
+
pass
|
|
173
|
+
freeze_support()
|
|
174
|
+
# Pool不支持跨CPU的虚拟服务器,会出现页面不足的错误提示
|
|
175
|
+
|
|
176
|
+
# 下面是针对不同的case进行绘图
|
|
177
|
+
paramfilepath = '/Users/wenjianzhu/Downloads/雷达数据-xxx/绘图参数/回波强度'
|
|
178
|
+
# paramfilepath = '/Users/wenjianzhu/Downloads/雷达数据-xxx/绘图参数/径向速度'
|
|
179
|
+
# drawinfo = pd.read_csv(paramfilepath + os.sep + 'radardrawlist_20120612.csv',encoding='gb18030')
|
|
180
|
+
# drawinfo = pd.read_csv(paramfilepath + os.sep + 'radardrawlist_20120701.csv',encoding='gb18030')
|
|
181
|
+
# drawinfo = pd.read_csv(paramfilepath + os.sep + 'radardrawlist_20150608.csv',encoding='gb18030')
|
|
182
|
+
# drawinfo = pd.read_csv(paramfilepath + os.sep + 'radardrawlist_20170905.csv',encoding='gb18030')
|
|
183
|
+
drawinfo = pd.read_csv(paramfilepath + os.sep + 'radardrawlist_20210909.csv',encoding='gb18030')
|
|
184
|
+
# drawinfo = pd.read_csv(paramfilepath + os.sep + 'radardrawlist_20190602.csv',encoding='gb18030')
|
|
185
|
+
|
|
186
|
+
params = []
|
|
187
|
+
nums=drawinfo.shape[0]
|
|
188
|
+
# nums=1
|
|
189
|
+
for nn in range(nums):
|
|
190
|
+
pass
|
|
191
|
+
curparam=ini_params()
|
|
192
|
+
curparam['sourcepath'] = drawinfo['sourcepath'].iloc[nn]
|
|
193
|
+
curparam['outpath'] = drawinfo['outpath'].iloc[nn]
|
|
194
|
+
curparam['radfilename'] = drawinfo['filename'].iloc[nn]
|
|
195
|
+
curparam['slat'] = drawinfo['start_lat'].iloc[nn]
|
|
196
|
+
curparam['nlat'] = drawinfo['end_lat'].iloc[nn]
|
|
197
|
+
curparam['wlon'] = drawinfo['start_lon'].iloc[nn]
|
|
198
|
+
curparam['elon'] = drawinfo['end_lon'].iloc[nn]
|
|
199
|
+
# aws_min_delta_t_file_path
|
|
200
|
+
params.append(curparam)
|
|
201
|
+
|
|
202
|
+
# MAXP = int(cpu_count()*0.5)
|
|
203
|
+
MAXP=1#nums
|
|
204
|
+
pools = Pool(MAXP)
|
|
205
|
+
|
|
206
|
+
pools.map(draw_all, params)
|
|
207
|
+
pools.close()
|
|
208
|
+
pools.join()
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|