标签: spatial-data-frame

如何将 SF 对象转换为空间点数据框?

我目前正在尝试将北卡罗来纳州的所有邮政编码映射到传单地图上。最终,我想用来自另一个数据集的值对这些进行颜色编码。

虽然我已经设法用这些值将标记放在地图上,但以带有邮政编码的彩色方式这样做确实会为我的项目增加价值。

我在 R 中下载了 USAboundaries 库,因此我认为我有足够的数据在传单中创建多边形,但数据不是 SpatialPointsDataFrame 格式。

USAboundaries 数据集的示例输出如下所示:

USAboundaries::us_zipcodes()

Simple feature collection with 33144 features and 6 fields
geometry type:  POINT
dimension: XY
bbox:  
 xmin: -176.6316 
 ymin: -14.22075 
 xmax: 145.7536 
 ymax: 71.2738

epsg (SRID):    4326

proj4string:    +proj=longlat +datum=WGS84 +no_defs

First 10 features:
  zipcode zcta5ce10     affgeoid10 geoid10   aland10 awater10                   geometry
    21914     21914 8600000US21914   21914   1924479   477175 POINT (-75.98187 39.57303)
    01001     01001 8600000US01001   01001  29731610  2118827 POINT (-72.62585 42.06258)
    34736     34736 8600000US34736   34736 322808220 78588518 POINT (-81.89624 28.55458)
    46151 …
Run Code Online (Sandbox Code Playgroud)

r leaflet spatial-data-frame r-sf

6
推荐指数
1
解决办法
961
查看次数

如何从多边形数据中提取栅格值然后加入空间数据框?

我想将多边形数据和栅格数据合并到一个数据帧中,然后使用R中的randomForests包.
这包括首先提取每个多边形的平均栅格值.

到目前为止,我有以下内容:

#load libraries
library(raster)
library(rgdal)
library(sp)
library(maptools)

#import raster data 
r <- raster("myRasterdata.tif")

#import polygon data 
p <- readShapePoly("myPolydata.shp")

#extract mean raster value for each polygon
ExtractMyData <- extract(r, p, small=TRUE, fun=mean, na.rm=TRUE, df=FALSE,  nl=1, sp=TRUE)
# note I have also tried this with df=TRUE and sp=FALSE
Run Code Online (Sandbox Code Playgroud)

输出是一个矩阵,我可以写入数据帧.但它没有空间坐标或原始多边形ID,所以我不知道如何将输出连接到同一个数据库.我认为sp = TRUE参数会这样做,但它似乎不起作用.

请注意,为了RandomForests的目的,我实际上必须将多边形转换为点(使用质心方法?),所以我猜猜我真正想要的是加入连接到点而不是多边形的平均栅格值.

任何建议将不胜感激.谢谢!!

r extract raster spatial-data-frame

5
推荐指数
1
解决办法
6667
查看次数

为插值方法创建数据对象,例如R中的克里金法

我有不同位置(X1,X2,...)的温度数据的每日平均值,我想用它们插入地图.我通过从格式化的Excel工作表加载它们来创建长格式数据对象,例如:

library(reshape2)
tempdata <- read.csv("...", sep=";")
names(tempdata) <- c("date", paste("X", 1:73))
head(tempdata)
#    date  X1  X2  X3  X4  X5  X6  X7
# 1    1  7.3 6.6 6.7 5.8 6.1 6.1 5.5
# 2    2  7.5 6.6 6.6 5.6 4.8 4.7 3.9
# 3    3  8.8 7.7 7.6 7.0 7.0 6.0 5.8
# 4    4  8.5 7.4 7.5 7.0 7.3 5.9 5.5
# 5    5  7.7 6.7 6.9 6.1 6.8 5.1 4.1
# 6    6  7.5 6.7 6.8 6.0 6.4 5.0 …
Run Code Online (Sandbox Code Playgroud)

r spatial-interpolation spatial-data-frame

4
推荐指数
1
解决办法
2232
查看次数

轻松分配和使用Spatial*DataFrame的数据值

是否有可能以某种方式轻松处理Spatial*DataFrame(*=点,线,多边形,像素,网格......)中的数据?特别是我在为它分配值和使用它们时遇到了困难:

require(gstat)
data(meuse)
coordinates(meuse) = ~x+y
data(meuse.grid)
gridded(meuse.grid) = ~x+y

######## 1) assigning value

meuse[1,'zinc'] <- NA
# Error in meuse[1, "zinc"] <- NA : object of type 'S4' is not subsettable
as.data.frame(meuse)[1,'zinc'] <- NA
# Error in as.data.frame(meuse)[1, "zinc"] <- NA : 
#   could not find function "as.data.frame<-"

######## 2) operating with values

meuse[, 'zinc'] + 2
# Error in meuse[, "zinc"] + 2 : non-numeric argument to binary operator
Run Code Online (Sandbox Code Playgroud)

我发现这两种情况都有相当难看的变通办法:

# ad 1)
meuse2 <- as.data.frame(meuse) …
Run Code Online (Sandbox Code Playgroud)

r spatial gstat spatial-data-frame

2
推荐指数
2
解决办法
2234
查看次数

R - 组合SpatialPolygonsDataFrame中的字符和数字列

我想找到一种有效的方法来组合SpatialPolygonsDataFrame对象列表中的某些字符+数字列值.这是可重复的数据:

library(maptools)  ## For wrld_simpl
library(sp)

## Example SpatialPolygonsDataFrames (SPDF)
data(wrld_simpl) #polygon of world countries
spdf1 <- wrld_simpl[1:25,] #country subset 1
spdf2 <- wrld_simpl[26:36,] #subset 2
spdf3 <- wrld_simpl[36:50,] #subset 3

#make list of SPDF objects
spdfl<-list()
spdfl[[1]]<-spdf1
spdfl[[2]]<-spdf2
spdfl[[3]]<-spdf3

#view data (attribute table) for one list element
spdfl[[1]]@data
Run Code Online (Sandbox Code Playgroud)

我想要做的是添加另一个列,它是FIPS,REGION和SUBREGION列的组合,用下划线('_')分隔.我知道如何添加+为列表中的每个SPDF对象添加一个新列,如下面的循环中所做,但我不知道如何获得所需的列行条目:

#add new 'unique.id' column to SPDF
for (i in 1:length(spdfl)){
  spdfl[[i]]@data["unique.id"] = ""
}
Run Code Online (Sandbox Code Playgroud)

新unique.id列的行条目将采用以下格式:FIPS_REGION_SUBREGION.例如,对于spdfl [[1]]中的ATG面要素,我希望'unique.id'列有一个这样的条目:

unique.id
AC_19_29
Run Code Online (Sandbox Code Playgroud)

请告知如何对SPDF列表中的所有功能执行此操作.

r spatial-data-frame

2
推荐指数
1
解决办法
76
查看次数