gpt4 book ai didi

R Levelplot 在 RasterLayer 投影上覆盖两个 SpatialPolygonsDataFrame

转载 作者:行者123 更新时间:2023-12-01 23:09:50 25 4
gpt4 key购买 nike

也发布于 gis.stackexchange

我在 R 的水平图中绘制 RasterLayer 和 SpatialPolygonsDataFrame 时遇到了一些问题。投影有问题,但我不明白是什么。

在这里你可以找到我的 reproducible example data和代码:

library(sp)
library(rgdal)
library(rgeos)
library(raster)
library(rasterVis)
library(maptools)

setwd("C:/...path_to/test2")
data<-read.csv("test.csv", header=TRUE)

#creating the raster from a data.frame and giving projection
raster<-rasterFromXYZ(data, crs="+proj=longlat")
raster_proj<-projectRaster(raster, crs="+proj=longlat +datum=WGS84
+ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs")

#loading shapes
nuts<-readShapePoly("NUTS_RG_WGS84.shp", proj4string=CRS("+proj=longlat"))
countries<-readShapePoly("countries.shp", proj4string=CRS("+proj=longlat"))

#subsetting the raster
raster_clip<- crop(raster_proj, countries, snap="near")

#plot
p.strip <- list(cex=1.5, lines=1, fontface='bold')
x.scale <- list(cex=1.5)
y.scale <- list(cex=1.5)
label <- list(labels=list(width=1, cex=1.5), height=0.95)
levelplot(raster_clip, par.settings = RdBuTheme, margin=FALSE,
at=seq(min(na.omit(values(raster_clip))), max(na.omit(values(raster_clip))), length.out=15),scales=list(x=x.scale, y=y.scale),
par.strip.text=p.strip, colorkey=label, xlab=list(label="Longitude", cex=2), ylab=list(label="Latitude", cex=2))+
layer(sp.polygons(nuts))+layer(sp.polygons(countries))

错误信息是:

Error: Attempted to create layer with no geom.

但是栅格和多边形在同一个投影中。我还尝试使用以下方法重新投影多边形:

nuts <- spTransform(nuts, CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"))
countries <- spTransform(countries, CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"))

有什么想法吗?

最佳答案

如果你不想或不能分离 ggplot2 因为你需要它来做其他事情,你也可以使用 latticeExtra 包专门调用 layer 函数:

levelplot(myRaster) + 
latticeExtra::layer(sp.polygon(myPolygon))

关于R Levelplot 在 RasterLayer 投影上覆盖两个 SpatialPolygonsDataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37424586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com