- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景
我对使用 gSimplify
简化多边形很感兴趣。功能可通过 rgeos
获得包裹。
可重现的例子
可以使用以下代码生成可重现的示例:
# Data sourcing -----------------------------------------------------------
# Download an read US state shapefiles
tmp_shps <- tempfile()
tmp_dir <- tempdir()
download.file(
"http://www2.census.gov/geo/tiger/GENZ2014/shp/cb_2014_us_state_20m.zip",
tmp_shps
)
unzip(tmp_shps, exdir = tmp_dir)
# Libs
require(rgdal)
require(rgeos)
# Read
us_shps <- readOGR(dsn = tmp_dir, layer = "cb_2014_us_state_20m")
# Simplified --------------------------------------------------------------
# Simplifiy
us_shps_smpl <- gSimplify(spgeom = us_shps,
tol = 200,
topologyPreserve = TRUE)
par(mfrow = c(2,1))
plot(us_shps_smpl, main = "Simplified")
plot(us_shps, main = "Original")
gSimplify
函数更改了结果对象的类:
>> class(us_shps)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"
>> class(us_shps_smpl)
[1] "SpatialPolygons"
attr(,"package")
[1] "sp"
>> names(us_shps)
[1] "STATEFP" "STATENS" "AFFGEOID" "GEOID" "STUSPS" "NAME" "LSAD" "ALAND" "AWATER"
>> names(us_shps_smpl)
[1] "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19"
[21] "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" "39"
[41] "40" "41" "42" "43" "44" "45" "46" "47" "48" "49" "50" "51"
SpatialPolygons
反对 SpatialPolygonsDataFrame
最佳答案
sf
包完全基于数据框,因此其几何操作始终保留附加到每个要素的数据。该包还没有 catch R 中的所有标准空间包,但是在 sf
之间来回相当容易。和 sp
需要更多功能时的对象。
在这里,st_simplify()
完成这项工作,但您需要先投影多边形:
library(sf)
# Download and read example data
tmp_shps <- tempfile()
tmp_dir <- tempdir()
download.file(
"http://www2.census.gov/geo/tiger/GENZ2014/shp/cb_2014_us_state_20m.zip",
tmp_shps
)
unzip(tmp_shps, exdir = tmp_dir)
us_shps <- st_read(paste(tmp_dir, "cb_2014_us_state_20m.shp", sep = "/"))
# st_simplify needs a projected CRS
us_shps_merc <- st_transform(us_shps, 3857)
simple_us_merc <- st_simplify(us_shps_merc)
# Change back to original CRS
simple_us <- st_transform(simple_us_merc, st_crs(us_shps))
# Change to sp object, if you like
simple_us_sp <- as(st_zm(simple_us), "Spatial")
关于r - 简化 rgeos 中的多边形并维护 SpatialPolygonsDataFrame 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46057249/
不打算编辑拓扑,只是将所有多边形聚合到一个类型为 SpatialPolygonsDataFrame (spdf) 的 sp 对象中。每个 spdf 只有一个多边形。 数据(dropbox link t
我希望通过属性对 SpatialPolygonsDataFrame 进行子集化,但我希望允许它返回一个空的 SpatialPolygonsDataFrame。 如果我们将 SpatialPolygon
只有我有从 SpatialPolygonsDataFrame 中提取多边形坐标的问题吗?目的?我能够提取对象的其他插槽( ID , plotOrder )但不能提取坐标( coords )。我不知道我
我有一个 SpatialPolygonsDataFrame我通过使用 readOGR 读取 shapefile 创建的在 rgdal包裹。我正在尝试使用它来使用 spsample 生成采样网格在 sp
我有两个 SpatialPolygonsDataFrame文件:dat1、dat2 extent(dat1) class : Extent xmin : -180 xmax
如何获取 polys 中每个多边形的 bbox? pp , , , , , , , ,
使用可用的 shapefile here我正在尝试合并苏丹和南苏丹的多边形,以便在 2010 年获得苏丹的边界。我在 R 中提供 shapefile 的代码是 library(rgdal) afric
我想合并一个 SpatialPolygonsDataFrame : # From https://www.census.gov/geo/maps-data/data/cbf/cbf_state.htm
我想使用 leafletR::leaflet 创建分区统计图。我的数据位于 SpatialPolygonsDataFrame 中,我想选择要绘制的特定列。 使用 sp::spplot,这很容易,因为参
我有一个使用以下命令绘制的 SpatialPolygonsDataFrame: spplot(milanoNILNew, "percPolVita",at = c(0,0.0696,0.08979,0
我正在尝试做与这个问题相同的事情,Cartogram + choropleth map in R ,但从 SpatialPolygonsDataFrame 开始并希望以相同类型的对象结束。 我可以将对
当我有一个 SpatialPolygonsDataFrame 对象时,我知道我可以通过两种方式获取数据: spatial_df@data$column spatial_df$column 但是我不明白
我正在寻找一种从 SpatialPolygons 列表创建 SpatialPolygonsDataFrame 的方法? 下面是一个多边形列表示例,应从中创建包含列表中所有多边形的 SpatialPol
我有一堆我在县级绘制的数据,without borders .我想添加州界。我有一个状态 shapefile(多边形),但是 spplot似乎没有任何方法可以添加到之前的 map 之上。有没有办法在不
使用另一个可能复杂的 SpatialPolygon 在 R 中保留 @data 来裁剪(剪辑)复杂的 SpatialPolygonsDataFrame 的最快方法是什么?我知道两种方法(如下所示)。
我想知道是否可以做到这一点 R 。 我有一个数据作为SpatialLinesDataFrame,另一个数据作为spatialPolygonDataFrame。是否可以叠加这两个数据? 当我尝试覆盖这些
我有一个西类牙北部城镇的形状文件,我必须加入组(西类牙语中的自治市或 comarcas)。我已经使用 sf 包中的 st_union 成功加入了它们(每个都是它们自己的具有单个多边形的 Spatial
以下是用于重现目的的数据: structure(list(countyfp10 = c(1, 1, 1, 1, 3, 3, 3, 3, 5, 5, 5, 5, 7, 7, 7, 7), id =
说我有两组形状文件覆盖同一区域,并且经常但不总是共享边界,例如美国县和 PUMA。我想定义一个新的多边形比例,它使用 PUMA 和县作为原子构建块,即两者都不能被拆分,但我仍然希望尽可能多的单位。这是
背景 我对使用 gSimplify 简化多边形很感兴趣。功能可通过 rgeos 获得包裹。 可重现的例子 可以使用以下代码生成可重现的示例: # Data sourcing -------------
我是一名优秀的程序员,十分优秀!