Мне не удалось найти вашу точную карту, но вот пример с использованием последних данных об осадках. Вам не нужно назначать CRS, поскольку файл netCDF уже имеет связанный с ним CRS, вы можете просто projectRaster
. Также на веб-сайте NOAA есть возможность загрузки в geoTIFF, которую я бы порекомендовал, если вам это удобнее.
require(raster)
require(ncdf4)
require(maptools)
data(wrld_simpl)
us_shp=wrld_simpl[which(wrld_simpl$NAME=="United States"),]
rs=raster::brick("./nws_precip_1day_20200509_netcdf/nws_precip_1day_20200509_conus.nc",varname="observation")[[1]]
rs@crs ##note already has a crs associated with it
+ proj = stere + lat_0 = 90 + lat_ts = 60 + lon_0 = -105 + x_0 = 0 + y_0 = 0 + a = 6371200 + b = 6371200 + единицы = m + no_defs
##assign the pixels with -10000 to NA.
NAvalue(rs) = -10000
##reproject to longlat WGS84
rs=projectRaster(rs,crs=crs(us_shp))
plot(rs,col=rainbow(100))
lines(us_shp)
##note the data extends outside the bounds of country
##use mask to remove data that is not over the land area
rs=mask(rs,us_shp)
plot(rs,col=rainbow(100)
lines(us_shp)
введите описание изображения здесь
Обратите внимание, что максимальное значение rs
изменилось с 7,8 на 7,0 из-за метода билинейной интерполяции, используемого в projectRaster
. Вам нужно решить, требуется ли вам билинейная интерполяция или интерполяция ближайшего соседа, и если вам нужно указать c разрешение и размер выходного растра, я бы предложил предоставить растр модели для аргумента to
.
Отредактировано с учетом предложения @Robert Hijmans.