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.
Files changed (78) hide show
  1. metradar/__init__.py +4 -2
  2. metradar/config.py +53 -0
  3. metradar/core/__init__.py +9 -0
  4. metradar/{get_cross_section_from_pyart.py → core/get_cross_section.py} +5 -157
  5. metradar/{mosaic_merge.py → core/mosaic_merge.py} +3 -1
  6. metradar/{oa_dig_func.py → core/oa_dig_func.py} +83 -333
  7. metradar/graph/__init__.py +9 -0
  8. metradar/{mosaic_quickdraw.py → graph/draw_comp_mosaic.py} +71 -68
  9. metradar/{draw_mosaic_new.py → graph/draw_latlon_func.py} +177 -173
  10. metradar/graph/draw_radar_aws.py +212 -0
  11. metradar/{draw_radar_comp_func.py → graph/draw_radar_comp_func.py} +319 -248
  12. metradar/graph/parse_pal.py +157 -0
  13. metradar/io/__init__.py +9 -0
  14. metradar/{cnrad_level2.py → io/cnrad_level2.py} +45 -2
  15. metradar/{decode_fmt_pyart.py → io/decode_fmt_pyart.py} +20 -3
  16. metradar/{decode_pup_rose.py → io/decode_pup_rose.py} +241 -684
  17. metradar/{read_new_mosaic_func.py → io/read_new_mosaic_func.py} +30 -2
  18. metradar/io/read_swan.py +250 -0
  19. metradar/{rose_structer.py → io/rose_structer.py} +2 -0
  20. metradar/project/__init__.py +9 -0
  21. metradar/project/make_mosaic/__init__.py +9 -0
  22. metradar/project/make_mosaic/batch_draw_mosaic.py +32 -0
  23. metradar/{make_mosaic_mp_archive.py → project/make_mosaic/make_mosaic_func.py} +144 -175
  24. metradar/project/make_mosaic/make_mosaic_mp.ini +29 -0
  25. metradar/project/make_mosaic/make_mosaic_mp.py +70 -0
  26. metradar/project/make_vpr_aws/__init__.py +9 -0
  27. metradar/project/make_vpr_aws/construct_aws_refvpr_mainprog.ini +39 -0
  28. metradar/project/make_vpr_aws/construct_aws_refvpr_mainprog.py +565 -0
  29. metradar/project/make_vpr_aws/make_mosaic_20230731_daxing.ini +29 -0
  30. metradar/project/make_vpr_aws/make_mosaic_basefile.ini +29 -0
  31. metradar/project/nowcasting/__init__.py +9 -0
  32. metradar/project/nowcasting/nowcast_by_pysteps.py +214 -0
  33. metradar/{trans_nc_pgmb.py → project/nowcasting/trans_mosaic_pgmb.py} +19 -17
  34. metradar/project/qpe/Archive /346/250/241/345/274/217/350/257/264/346/230/216.txt" +2 -0
  35. metradar/project/qpe/__init__.py +9 -0
  36. metradar/project/qpe/archive_main_qpe_cfg.ini +91 -0
  37. metradar/project/qpe/do_s1.sh +6 -0
  38. metradar/project/qpe/do_s2.sh +6 -0
  39. metradar/project/qpe/do_s3.sh +6 -0
  40. metradar/project/qpe/do_s4.sh +6 -0
  41. metradar/project/qpe/do_s5.sh +6 -0
  42. metradar/project/qpe/exec_all.sh +11 -0
  43. metradar/project/qpe/get_rainrate_func.py +80 -0
  44. metradar/project/qpe/main_qpe_cfg.ini +85 -0
  45. metradar/project/qpe/s1_download_radar_region_cmadaas.py +123 -0
  46. metradar/project/qpe/s2_pre_process_single_radar.py +183 -0
  47. metradar/project/qpe/s3_trans_rainrate_to_qpe.py +499 -0
  48. metradar/project/qpe/s4_mosaic_qpe.py +523 -0
  49. metradar/project/qpe/s5_draw_qpe_mosaic.py +308 -0
  50. metradar/project/wind_retrieval/__init__.py +9 -0
  51. metradar/project/wind_retrieval/config_3dwind.ini +45 -0
  52. metradar/{main_pydda.py → project/wind_retrieval/main_pydda.py} +152 -149
  53. metradar/util/__init__.py +9 -0
  54. metradar/{comm_func.py → util/comm_func.py} +1 -41
  55. metradar/util/exceptions.py +50 -0
  56. metradar/util/geo_transforms_pyart.py +627 -0
  57. metradar/{get_tlogp_from_sharppy.py → util/get_tlogp_from_sharppy.py} +16 -5
  58. metradar/{parse_pal.py → util/parse_pal.py} +147 -147
  59. metradar/util/radar_common.py +16 -0
  60. metradar/{trans_new_mosaic_nc.py → util/trans_new_mosaic_nc.py} +1 -1
  61. metradar-0.1.8.2.dist-info/METADATA +90 -0
  62. metradar-0.1.8.2.dist-info/RECORD +69 -0
  63. {metradar-0.1.6.dist-info → metradar-0.1.8.2.dist-info}/WHEEL +1 -1
  64. metradar-0.1.8.2.dist-info/licenses/LICENSE +21 -0
  65. {metradar-0.1.6.dist-info → metradar-0.1.8.2.dist-info}/top_level.txt +0 -1
  66. cfg/config.py +0 -90
  67. metradar/grid.py +0 -281
  68. metradar/grid_data.py +0 -64
  69. metradar/oa_couhua.py +0 -166
  70. metradar/read_new_mosaic.py +0 -33
  71. metradar/retrieve_cmadaas.py +0 -3126
  72. metradar/retrieve_micaps_server.py +0 -2061
  73. metradar-0.1.6.dist-info/METADATA +0 -37
  74. metradar-0.1.6.dist-info/RECORD +0 -34
  75. /metradar/{pgmb_io.py → io/pgmb_io.py} +0 -0
  76. /metradar/{exceptions.py → project/make_vpr_aws/exceptions.py} +0 -0
  77. /metradar/{geo_transforms_pyart.py → project/make_vpr_aws/geo_transforms_pyart.py} +0 -0
  78. /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
+