我有一个ndvi栅格。我必须使用阈值条件来提取值。当我绘制提取的栅格的图时,协调的x y并不长。
我尝试了ggplot(),也使用了rastertopoints
和rasterfromXYZ
来绘制栅格,但徒劳无功。
代码如下。
无法绘制。 xy coordiantes的时间不长。
library(raster)
library(rgdal)
raster <- ("D:/Project/ndvisoybean.tif")
plot(ndvi)
ndvi[is.na(ndvi)] <-0
s <- ndvi[ndvi@data@values<maxValue(ndvi) & ndvi@data@values>0.3*maxValue(ndvi)]
我想要一个提取的栅格s的图,它在x y中具有适当的纬度长坐标。
答案 0 :(得分:1)
据我所知,如果栅格不是WGS84投影,则没有适当的情况来绘制lon / lat xy坐标图。
一种方法是将栅格图层转换为WGS84投影,从而使坐标为lon / lat。仅适用于小地图或世界地图。
另一种方法是在ggplot中使用coord_map
函数。但是导入数据必须是lon / lat数据帧,而不是其他投影坐标。因此绘制地图效率低下。更严重的是,将data.frame点坐标转换为另一个坐标时非常慢。这种方式仅适用于较小的宽度/高度栅格。代码示例:
首先,您应该将栅格转换为WGS84 coordiante。
df=rasterToPoint(raster_WGS84)
ggplot(df, aes(y=lon, x=lat, color=values)) +
geom_point(size=2, shape=15) +
theme() +
scale_color_distiller(palette='Spectral') +
coord_map('lambert', lat0=30, lat1=65, xlim=c(-20, 39), ylim=c(19, 75))
摘要:如果栅格是投影坐标,例如Albers
,lambert
,而不是lon / lat WGS84坐标,则绘制lon / lat xy coodiate的地图很不方便。