Интерактивное отображение данных отражательной способности для PPI в matplotlib - PullRequest
0 голосов
/ 13 февраля 2020

В рамках нашего проекта нам необходимо отобразить данные отражательной способности радара на изображении индикатора положения в плане (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()

. Предполагается, что данные отражательной способности будут отображаться всякий раз, когда будут доступны данные.

Мне нужно отобразить значения отражательной способности, а также широту и долготу. Пожалуйста, сообщите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...