0

伙计们,

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

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

很明显有些地方是不会发生火灾的,这里用0表示,但是有点随意

我的代码如下所示:

数据可以在这里找到

#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)

如果你不想运行代码,这就是它在谷歌地球上的样子 X

这是主要问题,其中:

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

2)这里并不总是报告“最大值”,尤其是在它出现的边缘附近?

3)我的目标是在物种分布建模中将此地图与其他栅格结合使用(因此使用栅格堆栈、模型和预测功能来制作地图)。当我尝试使用该图层制作地图时,由于 NA 的缘故,我最终得到了一堆洞......应该没有 NA 的地方。

如果我在没有这个时间的情况下运行模型,那么一切都很好。当我包含它时,生成的地图中的 NA 通常是您在第一张图片中看到棕褐色“多边形轮廓”的位置。

我怎样才能让这个光栅层有清晰的边缘,而不是像现在这样一团糟???

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

C

4

1 回答 1

0

我认为您的困惑来自谷歌地球中的可视化,而不是来自计算。当您在 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,因为没有火灾类似于“很久以前”,而不是“刚刚”。

于 2015-03-21T21:51:53.327 回答