r sp/maps/maptools 库:R 中年太阳辐射图
r sp/maps/maptools libraries: Map of annual solar irradiation in R
我正在尝试在世界地图上绘制不同颜色的年度太阳辐射数据。为此,我正在使用 R 编程。
我使用的数据来自http://eosweb.larc.nasa.gov/sse/global/text/global_radiation
首先,我将此数据转换为空间数据框,并将使用 map(world) 函数获得的世界地图转换为空间形式。
我正在按照 https://www.r-bloggers.com/maps-of-solar-radiation/
中的示例进行练习
绘制我的代码如下。我相信代码是完全正确的,但我遇到了一些错误
library(sp)
library(maps)
library(mapdata)
library(maptools)
library(RColorBrewer)
nasafile <- 'http://eosweb.larc.nasa.gov/sse/global/text/global_radiation'
nasa <- read.table(file=nasafile, skip=13, header=TRUE)
proj <- CRS('+proj=latlon +ellps=WGS84')
coords = nasa[,2:1]
datos = nasa[,3:15]
nasaSP <- SpatialPixelsDataFrame(points=coords, data=datos, proj4string=proj)
world <- map("world", plot=FALSE)
llCRS <- CRS("+proj=latlong +ellps=WGS84")
world_sp <- map2SpatialLines(world, proj4string=llCRS)
colar_sp = colorRampPalette(c("snow1", "thistle1", "plum2", "red4"))
map_sp <- list('sp.lines', world_sp)
spplot(nasaSP["Ann"], col.regions=color_sp, sp.layout=map_sp)
我遇到的主要错误与预测有关。我相信我在代码中添加它们的方式是正确的,并且已经看到许多以相同方式编写它们的示例。请查看这些错误,让我知道如何让这段代码正常工作。
提前致谢!
错误:
Error in CRS("+proj=latlon +ellps=WGS84") :
northings must follow eastings: +proj=latlon +ellps=WGS84
Error in checkSlotAssignment(object, name, value) :
assignment of an object of class “function” is not valid for slot ‘proj4string’ in an object of class “Spatial”; is(value, "CRS") is not TRUE
Error in CRS("+proj=latlong +ellps=WGS84") :
northings must follow eastings: +proj=latlong +ellps=WGS84
Error in initialize(value, ...) : object 'llCRS' not found
我发现您的代码有两个问题:
1) 您错误地使用了 CRS
。在 CRS("+proj=latlong...)
而不是 latlong
中,您必须使用 longlat
(参见 ?CRS
);
2) 绘制地图时,您的 color_sp
称为 colar_sp
。
这是您的代码及更正:
library(sp)
library(maps)
library(mapdata)
library(maptools)
library(RColorBrewer)
nasafile <- 'http://eosweb.larc.nasa.gov/sse/global/text/global_radiation'
nasa <- read.table(file=nasafile, skip=13, header=TRUE)
proj <- CRS("+proj=longlat + datum=WGS84")
coords = nasa[,2:1]
datos = nasa[,3:15]
nasaSP <- SpatialPixelsDataFrame(points=coords, data=datos, proj4string=proj)
world <- map("world", plot=FALSE)
llCRS <- CRS("+proj=longlat + datum=WGS84")
world_sp <- map2SpatialLines(world, proj4string=llCRS)
color_sp = colorRampPalette(c("snow1", "thistle1", "plum2", "red4"))
map_sp <- list('sp.lines', world_sp)
spplot(nasaSP["Ann"], col.regions=color_sp, sp.layout=map_sp)
我正在尝试在世界地图上绘制不同颜色的年度太阳辐射数据。为此,我正在使用 R 编程。
我使用的数据来自http://eosweb.larc.nasa.gov/sse/global/text/global_radiation
首先,我将此数据转换为空间数据框,并将使用 map(world) 函数获得的世界地图转换为空间形式。
我正在按照 https://www.r-bloggers.com/maps-of-solar-radiation/
中的示例进行练习绘制我的代码如下。我相信代码是完全正确的,但我遇到了一些错误
library(sp)
library(maps)
library(mapdata)
library(maptools)
library(RColorBrewer)
nasafile <- 'http://eosweb.larc.nasa.gov/sse/global/text/global_radiation'
nasa <- read.table(file=nasafile, skip=13, header=TRUE)
proj <- CRS('+proj=latlon +ellps=WGS84')
coords = nasa[,2:1]
datos = nasa[,3:15]
nasaSP <- SpatialPixelsDataFrame(points=coords, data=datos, proj4string=proj)
world <- map("world", plot=FALSE)
llCRS <- CRS("+proj=latlong +ellps=WGS84")
world_sp <- map2SpatialLines(world, proj4string=llCRS)
colar_sp = colorRampPalette(c("snow1", "thistle1", "plum2", "red4"))
map_sp <- list('sp.lines', world_sp)
spplot(nasaSP["Ann"], col.regions=color_sp, sp.layout=map_sp)
我遇到的主要错误与预测有关。我相信我在代码中添加它们的方式是正确的,并且已经看到许多以相同方式编写它们的示例。请查看这些错误,让我知道如何让这段代码正常工作。
提前致谢!
错误:
Error in CRS("+proj=latlon +ellps=WGS84") :
northings must follow eastings: +proj=latlon +ellps=WGS84
Error in checkSlotAssignment(object, name, value) :
assignment of an object of class “function” is not valid for slot ‘proj4string’ in an object of class “Spatial”; is(value, "CRS") is not TRUE
Error in CRS("+proj=latlong +ellps=WGS84") :
northings must follow eastings: +proj=latlong +ellps=WGS84
Error in initialize(value, ...) : object 'llCRS' not found
我发现您的代码有两个问题:
1) 您错误地使用了 CRS
。在 CRS("+proj=latlong...)
而不是 latlong
中,您必须使用 longlat
(参见 ?CRS
);
2) 绘制地图时,您的 color_sp
称为 colar_sp
。
这是您的代码及更正:
library(sp)
library(maps)
library(mapdata)
library(maptools)
library(RColorBrewer)
nasafile <- 'http://eosweb.larc.nasa.gov/sse/global/text/global_radiation'
nasa <- read.table(file=nasafile, skip=13, header=TRUE)
proj <- CRS("+proj=longlat + datum=WGS84")
coords = nasa[,2:1]
datos = nasa[,3:15]
nasaSP <- SpatialPixelsDataFrame(points=coords, data=datos, proj4string=proj)
world <- map("world", plot=FALSE)
llCRS <- CRS("+proj=longlat + datum=WGS84")
world_sp <- map2SpatialLines(world, proj4string=llCRS)
color_sp = colorRampPalette(c("snow1", "thistle1", "plum2", "red4"))
map_sp <- list('sp.lines', world_sp)
spplot(nasaSP["Ann"], col.regions=color_sp, sp.layout=map_sp)