diff --git a/pycwr/io/PAFile.py b/pycwr/io/PAFile.py index f4d0441..1254b53 100644 --- a/pycwr/io/PAFile.py +++ b/pycwr/io/PAFile.py @@ -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() @@ -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探测的库数 @@ -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): """ @@ -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的数据提取出来""" diff --git a/test/plot_test.py b/test/plot_test.py index e31d642..8b9c896 100644 --- a/test/plot_test.py +++ b/test/plot_test.py @@ -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() \ No newline at end of file + +fig, ax = plt.subplots() +graph = Graph(PRD) +graph.plot_ppi(ax, 0, "dBZ") +plt.show()