如何在适当的 xy 坐标中绘制提取的栅格?
How to plot a extracted raster in proper xy coordinates?
我有一个 ndvi 光栅。我必须使用阈值 conditon.When 来提取值 我绘制了提取的栅格图,x y 坐标并不长。
我已经尝试过 ggplot() ,也尝试过使用 rastertopoints
和 rasterfromXYZ
来绘制光栅但没有成功。
代码如下。
无法绘制 s。 xy坐标不是lat long.
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 中具有适当的经纬度坐标。
据我所知,如果栅格不是 WGS84 投影,则没有合适的情况来绘制 lon/lat xy 坐标图。
一种方法是将栅格图层转换为 WGS84 projection.So,绘图坐标为 lon/lat。它只适用于小地图或世界地图。
另一种方法是在 ggplot.But 中使用 coord_map
函数,导入数据必须是 lon/lat 数据帧而不是其他投影坐标。所以绘制地图效率低下。更严重的是,将 data.frame 点坐标转换为另一个点坐标时非常慢。这种方式只适用于小 width/height 栅格。代码示例:
首先,您应该将光栅转换为 WGS84 坐标。
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坐标。
我有一个 ndvi 光栅。我必须使用阈值 conditon.When 来提取值 我绘制了提取的栅格图,x y 坐标并不长。
我已经尝试过 ggplot() ,也尝试过使用 rastertopoints
和 rasterfromXYZ
来绘制光栅但没有成功。
代码如下。
无法绘制 s。 xy坐标不是lat long.
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 中具有适当的经纬度坐标。
据我所知,如果栅格不是 WGS84 投影,则没有合适的情况来绘制 lon/lat xy 坐标图。
一种方法是将栅格图层转换为 WGS84 projection.So,绘图坐标为 lon/lat。它只适用于小地图或世界地图。
另一种方法是在 ggplot.But 中使用 coord_map
函数,导入数据必须是 lon/lat 数据帧而不是其他投影坐标。所以绘制地图效率低下。更严重的是,将 data.frame 点坐标转换为另一个点坐标时非常慢。这种方式只适用于小 width/height 栅格。代码示例:
首先,您应该将光栅转换为 WGS84 坐标。
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坐标。