Метпи интерполировать значения для данной точки - PullRequest
0 голосов
/ 17 января 2019

Я использую эти методы интерполяции Метпи https://unidata.github.io/MetPy/latest/examples/gridding/Point_Interpolation.html#sphx-glr-examples-gridding-point-interpolation-py. Мой вопрос: как мне получить интерполированное значение температуры для данной точки, в данном случае из изображения для Нью-Йорка? Итак, я получаю широту и долготу и получаю значение температуры в этот момент. введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Хорошо, я исправил проблему с помощью этой команды:

proj = ccrs.PlateCarree()
to_proj = ccrs.Mercator()

back_to_lon = precx.ravel()
back_to_lat = precy.ravel()
back_to_prec = prec_p.ravel()

pt_x = proj.transform_points(to_proj,back_to_lon,back_to_lat,back_to_prec)

введите описание изображения здесь

0 голосов
/ 18 января 2019

В примере кода данные проецируются в сетку на проекции равной площади Альберса, созданной с помощью:

 import cartopy.crs as ccrs
 to_proj = ccrs.AlbersEqualArea(central_longitude=-97.0000, central_latitude=38.0000)

Вы можете использовать to_proj, чтобы преобразовать широту / долготу в проекционные координаты, используя:

 pt_x, pt_y = to_proj.transform_point(lon, lat, ccrs.Geodetic())

Затем можно использовать pt_x и pt_y для поиска ближайших индексов в массивах gx и gy (созданных в исходном примере кода), чтобы извлечь значение данных из массива img.

Если вы действительно заботитесь только о значении в определенном месте, возможно, вы захотите взглянуть на функцию MetPy interpolate_to_points.

...