Skip to content

Commit

Permalink
Fixes an error reading phased array basedata
Browse files Browse the repository at this point in the history
  • Loading branch information
YvZheng committed Sep 23, 2021
1 parent 432c8a7 commit 274895d
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 13 deletions.
23 changes: 18 additions & 5 deletions pycwr/io/PAFile.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,9 +191,16 @@ def __init__(self, WSR98D):
self.WSR98D = WSR98D
self.nrays = len(self.WSR98D.radial)
self.nsweeps = self.WSR98D.header['TaskConfig']['CutNumber']
print(self.nsweeps, self.nrays)
self.rays_per_sweep = self.nrays // self.nsweeps
self.radial = []
for i in range(self.nsweeps):
self.radial.extend(self.WSR98D.radial[i::self.nsweeps])
if self.WSR98D.get_azimuth()[0] == self.WSR98D.get_azimuth()[1]:
for i in range(self.nsweeps):
self.radial.extend(self.WSR98D.radial[i::self.nsweeps])
else:
for i in range(self.nsweeps):
self.radial.extend(
self.WSR98D.radial[i * self.rays_per_sweep:i * self.rays_per_sweep + self.rays_per_sweep])
self.scan_type = self.WSR98D.get_scan_type()
self.latitude, self.longitude, self.altitude, self.frequency = \
self.WSR98D.get_latitude_longitude_altitude_frequency()
Expand All @@ -204,11 +211,11 @@ def __init__(self, WSR98D):
self.azimuth = self.get_azimuth()
self.elevation = self.get_elevation()
self.fields = self._get_fields()
self.rays_per_sweep = self.nrays // self.nsweeps
self.sitename = self.WSR98D.get_sitename()
self.sweep_start_ray_index = self.WSR98D.sweep_start_ray_index
self.sweep_end_ray_index = self.WSR98D.sweep_end_ray_index


def get_nbins_per_sweep(self):
"""
确定每个sweep V探测的库数
Expand Down Expand Up @@ -259,7 +266,10 @@ def get_range_per_radial(self, length):
:return:
"""
Resolution = self.header['CutConfig']['DopplerResolution'][0]
return np.linspace(Resolution, Resolution * length, length)
if Resolution == 0:
return np.linspace(30, 30 * length, length)
else:
return np.linspace(Resolution, Resolution * length, length)

def get_dbz_range_per_radial(self, length):
"""
Expand All @@ -268,7 +278,10 @@ def get_dbz_range_per_radial(self, length):
:return:
"""
Resolution = self.header['CutConfig']['LogResolution'][0]
return np.linspace(Resolution, Resolution * length, length)
if Resolution == 0:
return np.linspace(30, 30 * length, length)
else:
return np.linspace(Resolution, Resolution * length, length)

def _get_fields(self):
"""将所有的field的数据提取出来"""
Expand Down
18 changes: 10 additions & 8 deletions test/plot_test.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from pycwr.io import read_PA, read_auto, PAFile
from pycwr.draw.SingleRadarPlotMap import RadarGraphMap
from pycwr.draw.RadarPlot import Graph
import matplotlib.pyplot as plt
import numpy as np

file = "/Users/zhengyu/Downloads/Z_RADR_I_Z0001_20200521191950_O_DOR_DXK_CAR.bin"
x = read_PA(file)
y = PAFile.PABaseData(file)
file = "/Users/zhengyu/Downloads/Z_RADR_I_ZGZ01_20200820220246_O_DOR_DXK_CAR.bin.bz2"
PRD = read_PA(file)
x = PAFile.PABaseData(file)

# PRD = read_auto(filename)
# graph = RadarGraphMap(PRD)
# graph.plot(0, "dBZ")
# plt.show()

fig, ax = plt.subplots()
graph = Graph(PRD)
graph.plot_ppi(ax, 0, "dBZ")
plt.show()

0 comments on commit 274895d

Please sign in to comment.