В рамках нашего проекта нам необходимо отобразить данные отражательной способности радара на изображении индикатора положения в плане (PPI) вместе с широтой и долготой. Я использую функцию plot_ppi_map для построения развертки объема PPI на географической карте c. Пример вывода моей программы приведен ниже
Пример вывода программы
Я могу получить значения широты и долготы в левом нижнем углу строки состояния, но не может отображать значения радиолокационных отражателей. Сгенерированные значения радиолокационной отражательной способности из следующего кода
display = pyart.graph.RadarMapDisplay(radar)
rfdata = display._get_data(field = 'reflectivity', sweep = 0,mask_tuple = None,filter_transitions = True,gatefilter=None)
Пробовал с использованием Пример упоминался и пытался работать с ax.format_coord () с данными отражательной способности, полученными из display._get_data, и получил данные отражательной способности размера ( 361,1000). Но получение ошибки индекса, как указано ниже (снимок экрана также прилагается)
IndexError: индекс 176327 выходит за пределы оси 0 с размером 361
Сообщение об ошибке
Я использую следующий фрагмент кода для отображения данных отражательной способности на карте. Я использую проекцию AzimuthalEquidistant
class Formatter(object):
def __init__(self, im):
self.im = im
def __call__(self, x, y):
z = self.im.get_array()[int(y), int(x)]
return 'x={:.01f}, y={:.01f}, z={:.01f}'.format(x, y, z)
projection = ccrs.AzimuthalEquidistant(central_latitude=radar.latitude['data'][0],central_longitude=radar.longitude['data'][0])
display.plot_ppi_map('reflectivity', 0, vmin=-31.5, vmax=95.5,
min_lon=min_longitude, max_lon=max_longitude, min_lat=min_latitude, max_lat=max_latitude,
lon_lines=np.arange(77, 85, 1), resolution='110m',shapefile = shapefile_path,ax=ax,
shapefile_kwargs = {'linewidth':1, 'edgecolor':'black', 'facecolor':"#00000000"},
cmap = dwrmpt,norm=norm, embelish = False,
lat_lines=np.arange(12, 20, 1), projection=projection,
fig=fig, lat_0=radar.latitude['data'][0],
lon_0=radar.longitude['data'][0])
im = ax.imshow(rfdata, interpolation='none')
ax.format_coord = Formatter(im)
plt.show()
. Предполагается, что данные отражательной способности будут отображаться всякий раз, когда будут доступны данные.
Мне нужно отобразить значения отражательной способности, а также широту и долготу. Пожалуйста, сообщите.