具有相同 crs、范围、维度、分辨率的栅格不对齐
rasters with same crs, extent, dimension, resolution do not align
我正在查找枫糖浆每年的平均生产天数。我的 maple 分布数据在一个 ascii 文件中。我有一个名为 brick.Tmax
的栅格(从 NetCDF 文件创建)。我想将 brick.Tmax
的规格与我的枫树分布数据相匹配。
## These are the specs I want to use for my maple distribution
brick.Tmax
class : RasterBrick
dimensions : 222, 462, 102564, 366 (nrow, ncol, ncell, nlayers)
resolution : 0.125, 0.125 (x, y)
extent : -124.75, -67, 25.125, 52.875 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : E:\all_files\gridded_obs.daily.Tmax.1980.nc
names : X1980.01.01, X1980.01.02, X1980.01.03, X1980.01.04, X1980.01.05, X1980.01.06, X1980.01.07, X1980.01.08, X1980.01.09, X1980.01.10, X1980.01.11, X1980.01.12, X1980.01.13, X1980.01.14, X1980.01.15, ...
Date : 1980-01-01, 1980-12-31 (min, max)
varname : Tmax
## reading in red maple data from ascii file into rasterLayer
red_raster <- raster("E:/all_files/Maple_Data/redmaple.asc")
red_raster
class : RasterLayer
dimensions : 140, 150, 21000 (nrow, ncol, ncell)
resolution : 20000, 20000 (x, y)
extent : -1793092, 1206908, -1650894, 1149106 (xmin, xmax, ymin, ymax)
coord. ref. : NA
data source : E:\all_files\Maple_Data\redmaple.asc
names : redmaple
values : -2147483648, 2147483647 (min, max)
如何将 brick.Tmax
的所有规格(维度、crs、分辨率和范围)投影到 red_raster
,同时仍保留 red_raster
的值?两者似乎是相互排斥的。
注意:为了简化我的问题,我对我原来的问题 post 进行了相当多的编辑,如果以下评论在当前上下文中造成混淆,我们深表歉意。 (我删除了像中间人一样的光栅 prodavg_rast
)。
这两个栅格显然不具有相同的范围。事实上是在不同的宇宙(坐标参考系)。 brick.Tmax
有 angular (longitude/latitude) 坐标:+proj=longlat +datum=WGS84
但是red_raster
显然没有给出extent : -1793092, 1206908, -1650894, 1149106
。因此,要一起使用这些数据,需要转换两者之一(投影到另一个的坐标参考系中)。问题是我们不知道 red_raster 的 crs 是什么(esri ascii 文件不存储该信息!)。所以你需要从你的数据源中找出它是什么,或者通过猜测给出覆盖的区域和约定。找出答案后,您可以执行以下操作:
library(raster)
tmax <- raster(nrow=222, ncol=462, xmn=-124.75, xmx=-67, ymn=25.125, ymx=52.875, crs="+proj=longlat +datum=WGS84")
red <- raster(nrow=140, ncol=150, xmn=-1793092, xmx=1206908, ymn=-1650894, ymx=1149106, crs=NA)
crs(red) <- " ?????? "
redLL <- projectRaster(red, tmax)
投影光栅需要时间。测试您是否弄清楚 crs 的一个好方法是转换一些可以显示事物是否对齐的多边形。
library(rgdal)
states <- shapefile('states.shp')
sr <- spTransform(states, crs(red)
plot(red)
plot(sr, add=TRUE)
我正在查找枫糖浆每年的平均生产天数。我的 maple 分布数据在一个 ascii 文件中。我有一个名为 brick.Tmax
的栅格(从 NetCDF 文件创建)。我想将 brick.Tmax
的规格与我的枫树分布数据相匹配。
## These are the specs I want to use for my maple distribution
brick.Tmax
class : RasterBrick
dimensions : 222, 462, 102564, 366 (nrow, ncol, ncell, nlayers)
resolution : 0.125, 0.125 (x, y)
extent : -124.75, -67, 25.125, 52.875 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : E:\all_files\gridded_obs.daily.Tmax.1980.nc
names : X1980.01.01, X1980.01.02, X1980.01.03, X1980.01.04, X1980.01.05, X1980.01.06, X1980.01.07, X1980.01.08, X1980.01.09, X1980.01.10, X1980.01.11, X1980.01.12, X1980.01.13, X1980.01.14, X1980.01.15, ...
Date : 1980-01-01, 1980-12-31 (min, max)
varname : Tmax
## reading in red maple data from ascii file into rasterLayer
red_raster <- raster("E:/all_files/Maple_Data/redmaple.asc")
red_raster
class : RasterLayer
dimensions : 140, 150, 21000 (nrow, ncol, ncell)
resolution : 20000, 20000 (x, y)
extent : -1793092, 1206908, -1650894, 1149106 (xmin, xmax, ymin, ymax)
coord. ref. : NA
data source : E:\all_files\Maple_Data\redmaple.asc
names : redmaple
values : -2147483648, 2147483647 (min, max)
如何将 brick.Tmax
的所有规格(维度、crs、分辨率和范围)投影到 red_raster
,同时仍保留 red_raster
的值?两者似乎是相互排斥的。
注意:为了简化我的问题,我对我原来的问题 post 进行了相当多的编辑,如果以下评论在当前上下文中造成混淆,我们深表歉意。 (我删除了像中间人一样的光栅 prodavg_rast
)。
这两个栅格显然不具有相同的范围。事实上是在不同的宇宙(坐标参考系)。 brick.Tmax
有 angular (longitude/latitude) 坐标:+proj=longlat +datum=WGS84
但是red_raster
显然没有给出extent : -1793092, 1206908, -1650894, 1149106
。因此,要一起使用这些数据,需要转换两者之一(投影到另一个的坐标参考系中)。问题是我们不知道 red_raster 的 crs 是什么(esri ascii 文件不存储该信息!)。所以你需要从你的数据源中找出它是什么,或者通过猜测给出覆盖的区域和约定。找出答案后,您可以执行以下操作:
library(raster)
tmax <- raster(nrow=222, ncol=462, xmn=-124.75, xmx=-67, ymn=25.125, ymx=52.875, crs="+proj=longlat +datum=WGS84")
red <- raster(nrow=140, ncol=150, xmn=-1793092, xmx=1206908, ymn=-1650894, ymx=1149106, crs=NA)
crs(red) <- " ?????? "
redLL <- projectRaster(red, tmax)
投影光栅需要时间。测试您是否弄清楚 crs 的一个好方法是转换一些可以显示事物是否对齐的多边形。
library(rgdal)
states <- shapefile('states.shp')
sr <- spTransform(states, crs(red)
plot(red)
plot(sr, add=TRUE)