多边形到栅格不符合预期:缺少值和多边形边框保留?

时间:2015-03-21 01:32:07

标签: r polygon raster rgdal sp

伙计,

我需要一些专家意见。我一天中的大部分时间都在与这个问题作斗争,我没有选择。

我正在尝试创建一张地图,描绘横跨景观的自上次火灾以来的时间

显然有些地方从来没有火,这些在这里被表示为0,但它有些随意

我的代码如下所示:

可以找到数据HERE

#example for SO
library(rgdal)
library(raster)
library(plotKML)

##load Data
Fire <- readOGR(dsn="***YOURPATHHERE******/H_Fire_Poly_Jan3_2105", "Fire_poly_KootClip")


##build raster1
r<-raster(res=300,extent(Fire))

pop<-rasterize(Fire,r,"FIRE_YEAR",fun="max",na.rm=TRUE,background=2015)
pop<-projectRaster(pop,res=300, crs="+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs")

plot(pop)


##build raster 2
background<-raster(extent(pop),res=300,vals=2015)
projection(background)<-CRS(proj4string(pop))

##make sure all is good
plot(background)
plot(pop,add=T)

##algebra
final<-background-pop

##plot
plot(final)

##export
plotKML(final)

如果您不想运行代码,这就是Google Earth上的样子 x

这是主要问题,其中:

1)它几乎看起来像保留多边形边界信息,因为棕褐色线条是精确的边框,

2)&#34; max&#34;并不总是在这里报道,尤其是它出现的边缘?

3)我的目标是将这个地图与物种分布建模中的其他栅格结合使用(因此使用栅格堆栈,模型和预测函数来制作地图)。当我尝试用这一层制作一张地图时,由于NA不在,我最终会得到一堆洞......那里应该没有NA。

如果我从火层开始没有这个时间运行模型,一切都很好。当我包含它时,生成的地图中的NA通常是您看到tan&#34;多边形轮廓的地方&#34;在第一张照片中。

如何让这个栅格图层具有清晰的边缘,而不是像现在这样混乱?

这是我的最终地图物种地图的样子,而不是丢失的数据反映了火图中的问题

c

1 个答案:

答案 0 :(得分:0)

我认为您的混淆来自Google地球中的可视化,而不是来自计算。当你用R绘制时,这看起来很好。但是你不应该使用projectRaster。

library(rgdal)
library(raster)
Fire <- shapefile("Fire_poly_KootClip")
r <- raster(res=300,extent(Fire))
pop <- rasterize(Fire, r, "FIRE_YEAR", fun="max", na.rm=TRUE, background=2015)
x <- pop-2015
plot(x)

更简单就是

Fire$since <- Fire$FIRE_YEAR - 2015
x <- rasterize(Fire, r, "FIRE_YEAR", fun="max", na.rm=TRUE, background=-100)
plot(x)

不是-100,因为没有火与'很久以前'相似,而不是'刚才'。