Я новичок в python, и я пытаюсь написать функцию, которая будет брать массив numpy из файла netcdf с размерами [время, высота, долгота, широта] и интерполировать функцию на указанные широту и долготу. Я просмотрел scipy.interpolate, но все еще не уверен, что оттуда делать. любая помощь?
интерполяция точек сетки данных wrf на lat lon в python с numpy и scipy
Ответы (2)
Я не могу сказать из вопроса, хотите ли вы (а) интерполировать весь набор данных в новый набор координат широты / долготы или (б) получить значение в одном месте широты / долготы.
В любом случае, если вы не женаты на том, чтобы делать это в python, было бы намного проще использовать remapgrid в Операторы климатических данных (убедитесь, что вы устанавливаете с поддержкой netCDF). Это требует, чтобы файлы netCDF следовали CF-соглашениям (см. Эту запись о том, как сделать ваш файл WRF CF-совместимым).
Документацию по remapgrid можно найти здесь. См., В частности, раздел 1.3 (стр. 9-12) для получения информации о параметрах сетки и раздел 2.10 (начало стр. 106) для получения информации о методах интерполяции. Есть несколько вариантов переназначения, и команда, которую вы используете, зависит от вашего приложения.
(a) Вот пример переназначения с использованием билинейной интерполяции на гауссову (128x64) сетку
cdo remapbil,n32 wrfout_d01_1999-01-01-01_00:00:00.nc out.nc
(b) Вот пример переназначения с использованием сопоставления ближайшего соседа с одной точкой широты и долготы:
cdo remapnn,lon=-107.0_lat=34.0 wrfout_d01_1999-01-01-01_00:00:00.nc out.nc
Вы можете использовать XESMF
для его регистрации.
В нем есть руководства для GEOSChem, но почти то же самое для WRF.
Я написал блокнот о том, как регистрировать Данные WRF.
griddata
будет довольно неэффективным. Вы, вероятно, захотите вместо этогоscipy.ndimage.map_coordinates
. - person Joe Kington   schedule 09.08.2012