问题标签 [sf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
236 浏览

r - st_read() 错误:GetGeomFieldRef 返回的 NULL 指针

问题:

NULL pointer读取此 EIA zip 文件ShalePlay_Bakken_Isopach_EIA_08Jan2015.shp返回A。

?st_read指向关于 OGR 模型的以下链接。¯\_(ツ)_/¯

问题:

有没有办法使用 删除空几何st_read()

解决方法:

以下代码使用rgdal::readOGR()andsf::st_as_sf()转换为 class sf,成功运行(带有警告)。

在此处输入图像描述

0 投票
3 回答
1325 浏览

r - 对 sf 对象的逐行操作

我在对 sf 对象进行逐行操作时遇到了一些麻烦,其中几何是多边形类型。

by_row 中的 sf 函数似乎不起作用,例如以下应该创建一个包含边界框对象的列表列:

UseMethod(“st_bbox”)中的错误:没有适用于“st_bbox”的适用方法应用于类“c('tbl_df','data.frame')”的对象

(本身不是最有用的例子,但演示了问题)。

我尝试了一些替代方法,例如rowwise() %>% mutate(), mutate( x = apply(., 1, function(x) ...)),但都没有,因为它们没有为 st_bbox() 提供它需要的 sf 对象。这是一个错误,还是我处理得不好?

编辑:可重现的例子

0 投票
3 回答
7739 浏览

r - How can I do a spatial join with the sf package using st_join()

Here's a toy example I've been wrestling with

The last line produces

How can I do a spatial join to determine which points fall inside which polygons?

0 投票
1 回答
157 浏览

r - 如何使用 R“简单特征”库`sf` 进行 3D 距离计算?

我最近才开始使用 nice 和相对较新的library(sf). 很高兴看到点和线可以有 Z 坐标。例如:

然而,使用具有 Z 信息的对象的计算似乎很清楚将其全部投射到 XY 平面中:

如何在不滚动自己的情况下使用 Z 坐标进行操作?

(我猜要么是因为缺乏理解而遗漏了一些东西,要么是库太新了,这些操作根本还没有实现。)

0 投票
2 回答
3302 浏览

r - 从两列矩阵创建 sf 对象

我有一个简单的两列矩阵,我想将其转换为sf每行指定一个点的对象:

最天真的方法不起作用,因为apply将这些点重新组合成一个矩阵,并且操作只是变成一个非常慢的转置函数:

在不做显式循环的情况下,我能想到的最好的就是这个怪物:

另一种选择是通过sp对象,但我不想这样做。我还想要一个仅在基础 R 中的解决方案,因此无需转换为 data.table 或 tbl 等。

我只是缺少一个简单的as(m,"sf")功能或类似的功能吗?

0 投票
1 回答
6629 浏览

r - 使用 sf 包溶解多边形特征

Dissolve 是一种常见的地理处理技术,在这里作为 sf 方法进行了讨论。

我正在尝试复制溶解,因为它在 ArcGIS 中起作用。在 ArcGIS 中按两组考虑县。

无论东部半岛由其他单独的多边形组成,ArcGIS 溶解命令都会生成两个多边形。像这样:

这是我想在 sf 中复制的功能,但是我不能如下所示。

请注意半岛有多个无关的多边形。

在 ArcGIS 案例中,我如何只得到两个?非常感谢。

0 投票
1 回答
5400 浏览

r - 坐标中的多边形

我有一个data.framewith lats 和lngs 来定义矩形框的边界,就像这样

将其转换为sf包含 s 列的对象的最简单方法POLYGON是什么?

0 投票
1 回答
981 浏览

r - 在 R 中使用 readOGR 读取慢速 GML(地理标记语言)文件

我有很多 GML 文件要在 R 中循环,但它们都不是非常重(最大文件大小为 600 Mb,但通常它们的范围在 10-60 Mb 之间)。我的问题是 {rgdal} 包中的 readOGR 函数需要很长时间才能读取它们,并且它会大大减慢循环速度。读取一个文件需要 3 分钟到 30 分钟...

我已经遍历了 .shp 文件,它们不会占用太多时间来阅读。

所以我的问题实际上是两个:

  • R 中是否有更快的函数来读取 GML 文件?到目前为止还没有找到
  • 如果无法实现更快的读取功能,是否有一种将 GML 文件转换为 .shp 的快速方法?

我的 readOGR 代码:

0 投票
3 回答
2004 浏览

r - 高效提取 MultiPolygon 中自相交特征生成的所有子多边形

从包含相当大数量(大约 20000)的可能部分重叠的多边形的 shapefile 开始,我需要提取所有通过与不同“边界”相交而产生的子多边形。

在实践中,从一些模型数据开始:

输入数据

我需要派生一个包含所有且仅由交叉点生成的多边形的多边形sf或多边形,例如:sp

在此处输入图像描述

(请注意,颜色只是为了举例说明预期的结果,其中每个“不同颜色”的区域都是一个单独的多边形,不会覆盖任何其他多边形)

我知道我可以通过一次分析一个多边形,识别并保存它的所有交叉点,然后“擦除”这些区域形成完整的多多边形并循环进行,但这很慢。

我觉得应该有一个更有效的解决方案,但我无法弄清楚,所以任何帮助将不胜感激!(欢迎使用基于解决方案的解决方案sfsp

更新

最后,我发现即使是“一次一个多边形”,任务也远非简单!我真的在这个明显“简单”的问题上苦苦挣扎!有什么提示吗?即使是缓慢的解决方案或从正确路径开始的提示也将不胜感激!

更新 2

也许这会澄清一些事情:所需的功能将类似于此处描述的功能:

https://it.mathworks.com/matlabcentral/fileexchange/18173-polygon-intersection?requestedDomain=www.mathworks.com

更新 3

我将赏金授予@shuiping-chen(谢谢!),他的回答正确解决了提供的示例数据集上的问题。然而,“方法”必须推广到“四重”或“n-uple”交叉点是可能的情况。我会在接下来的几天里努力解决这个问题,如果我能做到的话,我会发布一个更通用的解决方案!

0 投票
1 回答
2723 浏览

r - 如何在地图上标记单个州,而其他州则在细分级别

我设法制作了一张地图,但是我需要为包含细分(级别 3)的州(级别 2)添加一个标签,而不是标记每个细分(仅针对此州)。在数据“newpak”中,行 641-664 对应于这个状态,有没有办法在这个状态之上只放置一个名称。

在此处输入图像描述