2015-03-21 8 views
0

Люди,Полигон для растра не так, как ожидалось: недостающие значения и граница многоугольника сохраняются?

Мне нужны некоторые экспертные заключения. Я провел большую часть своего дня, борясь с этой проблемой, и у меня нет вариантов.

Я пытаюсь создать карту, изображающую время после последнего пожара через пейзаж

Очевидно, что некоторые места будут иметь никогда не было огня, те представлены как 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 Планета Земля x

Это главный вопрос, где:

1) она выглядит почти как информацию многоугольник границы сохраняется, поскольку линии загар являются точными границами,

2) «Макс» не всегда сообщается здесь, особенно по краям, которые он появляется?

3) Какова моя цель состоит в том, чтобы использовать эту карту в сочетании с другими растерами в моделировании распределения видов (так что используйте растровый стек, модель и функцию прогнозирования для создания карты). Когда я пытаюсь сделать карту с этим слоем, я получаю кучу дыр из-за NA ... там, где не должно быть NA.

Если я запускаю модели без этого времени с момента пожара, все это хорошо. Когда я включаю его, NA в результирующей карте, как правило, там, где вы видите загар «многоугольник» в первом рисунке.

Как получить этот растровый слой с четкими краями и не быть таким беспорядком, каким он является в настоящее время?

это то, что моя последняя карта вида на карте выглядит, не хватает данных отражает проблемы в карте пожара

c

ответ

0

Я думаю, что ваша путаница происходит от визуализации в Google Earth, а не от вычисления. Это выглядит хорошо, когда вы закладываете его в 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) 

Simpler будет делать

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

не -100, как огонь не будет похож на «давно», а не «только сейчас».