0

我试图使用 Metpy 和 pyart 绘制来自同一个 nexrad 2 级文件的反射率数据,结果似乎完全不同,特别是,我看到 metapy 和 pyart 计算坐标的方式非常不同:

在 MetPy 中,坐标计算如下:

(from NEXRAD_Level_2_File sample)
xlocs = ref_range * np.sin(np.deg2rad(az[:, np.newaxis]))
ylocs = ref_range * np.cos(np.deg2rad(az[:, np.newaxis]))

在pyart中,计算如下:

(antenna_to_cartesian method called by get_gate_x_y_z in radar.py)
theta_e = elevations * np.pi / 180.0    # elevation angle in radians.
theta_a = azimuths * np.pi / 180.0      # azimuth angle in radians.
R = 6371.0 * 1000.0 * 4.0 / 3.0     # effective radius of earth in meters.
r = ranges * 1000.0                 # distances to gates in meters.

z = (r ** 2 + R ** 2 + 2.0 * r * R * np.sin(theta_e)) ** 0.5 - R
s = R * np.arcsin(r * np.cos(theta_e) / (R + z))  # arc length in m.
x = s * np.sin(theta_a)
y = s * np.cos(theta_a)
return x, y, z

你能告诉我这里有什么不同吗?

4

1 回答 1

2

在 MetPy 中,它仅使用所谓的“倾斜范围”来计算 x 和 y,即沿雷达波束传播路径的范围。在 PyART 中,它使用地面范围计算 x 和 y,并考虑地球曲率和典型的光束传播影响。对于低仰角,这两个计算将非常相似(例如 NEXRAD 数据的典型 0.5 度最低扫描)。对于更高的海拔,这些将导致截然不同的结果。

PyART 的方法是更准确的方法,如果您尝试在例如地图上正确定位雷达门,则确实有必要。

于 2019-04-08T20:19:03.103 回答