Как прописать разрешение данных в формате netcdf в R
У меня есть файл netcdf с именем "depos.mon.mean.nc", загруженный с https://www.esrl.noaa.gov/psd/data/gridded/data.cmap.html. Это набор данных о среднемесячном количестве осадков, а разрешение 2.5x2.5.
Интересно, как я могу преобразовать данные об осадках в разрешение 1x1 и 3x3 соответственно, используя метод интерполяции, такой как кригинг или взвешенное по обратному расстоянию (IDW). Спасибо за помощь.
require(ncdf4)
Precipitation = nc_open(filename = "precip.mon.mean.nc")
Pre=ncvar_get(Precipitation,varid = "precip")
Pre[Pre=-9.96920996838687e+36]=NA
lon=ncvar_get(Precipitation,varid = "lon")
aa=which(lon==181.25)
lon[aa:length(lon)]=lon[aa:length(lon)]-360
lat=ncvar_get(Precipitation,varid = "lat")
Date=ncvar_get(Precipitation,varid = "time")
nc_close(Precipitation)
Time=as.Date(Date/24,origin="1800-01-01")
1 ответ
Общие решения интерполяции с использованием R можно найти в этом посте .
Кроме того, я не использовал его сам, но пакет idpw, кажется, имеет опцию для взвешивания обратного расстояния . Кроме того , этот пост и эта страница могут помочь.
Однако, если вы очень простой лайнер, вы можете выполнить переназначение файлов netcdf с обратным взвешиванием расстояния, просто вызвав CDO с помощью системной команды. Нужный вам вариант
cdo remapdist,r360x180 precip.mon.mean.nc regridded.nc
как я уже сказал, вы можете вызвать это из R, используя системную функцию . Для получения дополнительной информации о методах перепланировки и возможных подводных камнях см. мой онлайн- видеоруководство на YouTube .