Как получить из лат, долг значение с помощью Pygrib - PullRequest
1 голос
/ 11 февраля 2020

Я начинаю программировать python и хотел бы написать небольшой скрипт, который отображает данные «Локальная температура, диагностированная на высоте 2 м над рельефом», «Зональная составляющая западно-восточного горизонтального ветра, диагностированная на Высота 10 м »и« меридианная составляющая горизонтального ветра, диагностируемого на высоте 10 м », как функция долготы и широты.

Для этого я загружаю файл с открытого сайта данных Метеофранса ОТКРЫТЬ ДАННЫЕ , выбрав:

Домен: «Франция - 0,01 °», субпакет: «SP1 - текущие параметры поверхности», группа сроков «0h» и дата запуска «2020-02-10 00 UT» C "

Итак, у меня есть файл в формате grib2, который я пытаюсь обработать с помощью библиотеки pygrib

Для начала, я просто пытаюсь получить температуру для данного точка (долгота = 0,25, широта = 49,21)

Я создал индекс для чтения файла (кажется, что он самый быстрый)

indx = pygrib.index('./AROME_0.01_SP1_00H_2020021000.grib2', 'typeOfLevel', 'level', 'name')

Я выбираю записи, которые соответствуют temperatu и я возвращаю значения:

msg = indx.select(level=2, typeOfLevel="heightAboveGround", name="2 metre temperature")
temp2m = msg[0].values

Проблема в том, что оттуда я шарил и не могу найти, как извлечь из этой переменной (numpy .ma.core.MaskedArray) значение это соответствует моей долготе = 0,25 и широте = 49,21

Если у кого-то есть идея, мне интересно

import pygrib
indx = pygrib.index('./AROME_0.01_SP1_00H_2020021000.grib2', 'typeOfLevel', 'level', 'name') 
msg = indx.select(level=2, typeOfLevel="heightAboveGround", name="2 metre temperature")
temp2m = msg[0].values
...