[英]How to plot a extracted raster in proper xy coordinates?
我有一個ndvi柵格。 我必須使用閾值條件來提取值。當我繪制提取的柵格的圖時,協調的xy時間不長。
我嘗試了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)]
我想要在x y中具有適當的經緯度坐標的提取柵格s的圖形。
據我所知,如果柵格不是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的地圖將很不方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.