问题标签 [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 投票
1 回答
1119 浏览

r - 在 shapefile 中保存 ggplot2 coord_map() 图表

我需要在 CARTO(又名 cartodb)中导出等高线图,所以我试图以 shapefile 或 geojson 等地理数据文件格式保存这个 stat2density 图表。我可以使用 ggsave 将其保存在 SVG 中,但将其转换为 spdf 或 sf oblejct 会非常有帮助。

任何想法?

0 投票
2 回答
1502 浏览

r - Make st_make_valid in sf package work (windows)

I am currently trying to get the sf::st_make_valid() function work under R 3.3.3 (Windows).

My problem is that the sf package does not build against the liblwgeom library. To install liblwgeom under windows, I tried installing the osgeo4w that according to its installation options lists the liblwgeom library. Still, after installing the liblwgeom through the osgeo4w installer, sf does not recognize the liblwgeom library.

From sf documentation on valid functionality: It is only available if the package was linked against liblwgeom, which is currently not the case for the binary CRAN distributions; see the package source code repository for instructions how to install liblwgeom

Any suggestions?

If sf recognized the liblwgeom library, it should be indicated when loading the sf package.

Anyone has experience with how to enable st_make_valid functionality in the sf package and how to install liblwgeom on Windows?

0 投票
1 回答
42 浏览

r - 使用字符应用

我正在处理sf对象,我有一个关于将用户定义的函数应用于数据框的问题。这是一个愚蠢的例子,但它类似于我试图解决一个更复杂的问题。我有一个名为的数据框names,它有两列,每列都有一个县的名称。sf我还阅读了包裹中包含的北卡罗来纳州数据。

我要做的是创建一个函数,该函数沿着我的数据框的每一行,names从 name_1 列中取出名称,从 name_2 列中取出名称,并查看它们是否使用中的几何数据相交nc。我有:

但这会产生一个错误Error in x$name_1 : $ operator is invalid for atomic vectors。对于 中的每一行,我如何告诉函数从适当的列中获取字符值names

0 投票
1 回答
688 浏览

r - 使用 sf 列调整 Leaflet (R) 中的边界

我正在 Shiny 中制作一个小应用程序,其中包含国家和地区的数据,用户可以在其中选择一个地区。然后的想法是我在应用程序中的传单地图将放大并专注于所选区域(即用户单击“欧洲”并且地图会放大欧洲)。

我不知道应该如何使用简单特征geometry列作为传单地图的过滤器。这是一个简单的例子(不是在 Shiny 中,但我想这个问题与 Shiny 无关)。

这会产生: 在此处输入图像描述

这与我使用过的相同df(未过滤的数据框)。关于如何解决这个问题的任何想法?我在 Shiny/leaflet 文档中找不到它。

0 投票
1 回答
1224 浏览

r - 从 sf 的列表中替换几何图形

假设我有以下sf数据框:

我还有以下列表:

我想用列表中的点替换第二个观察中的几何。我曾想过做以下事情:

但这会引发错误:

“vapply(lst, class, rep(NA_character_, 3)) 中的错误:值的长度必须为 3,但 FUN(X[[2]]) 结果的长度为 1”

我通过首先消除 NA 值找到了以下解决方法:

有一个更好的方法吗?我可以强制 NA 元素mylist为空点吗?

0 投票
3 回答
7551 浏览

r - 用 st_buffer 围绕一个地理点

我想使用sf包在都柏林机场周围绘制一个 110 NM(海里)的圆圈。(稍后我将通过st_intersect它与 ADS-B 的飞行位置报告相交。)

我为 NM 定义了一个新单位,如下所示:

然后定义都柏林机场坐标:

因此定义了机场周围圆的半径(以米为单位):

现在,当我尝试时,st_buffer一切都不起作用:

如果我尝试将数值(203.72,这些是公里)作为距离传递,至少我只会收到警告:

但是绘制它显示了一个太大的圆圈

在此处输入图像描述

dist我应该输入什么单位st_buffer?我阅读了文档,但并没有真正找到该怎么做......

任何提示/帮助真的很感激!

0 投票
1 回答
1660 浏览

r - 在 R 中使用 sf 将美学映射到 LINESTRING 几何

R的新sf包使得在 R 中处理地理数据变得非常容易,并且开发版本有一个用于绘制 sf 风格的地理数据ggplot2的新 层。geom_sf()

sf处理数据的范式中,是否可以将 ggplot 美学映射到LINESTRING几何图形?

例如,使用标准 ggplot,可以 使用 ggplot 和此数据重新创建Minard 著名的 1812 年拿破仑大军中幸存者的情节,并根据幸存者的数量确定军队的路径:

sf我们可以通过创建一个新 geometry列来将此部队数据作为对象使用,如下所示:

如果我们用 绘制它geom_sf,ggplot 将使用点:

我们可以通过分组、汇总和转换为每个组和方向创建线串。

ggplot 然后可以绘制这六条连接线并正确着色:

但是,幸存者数据现在已经消失,并且无法将尺寸美学映射到新线条。

有没有办法将其他美学(如大小)与sf基于 LINESTRING数据的数据相关联?或者,换句话说,有没有办法重新创建 ggplot(...) + geom_path(aes(x = long, y = lat, size = something)) 使用geom_sf()和使用地理数据的 sf 范式?

0 投票
1 回答
331 浏览

r - 与 sf 包一起使用时 data.table 的行为不正确

data.tablesf::st_union与while一起使用时进行不正确的聚合dplyr似乎可以正确处理它。有人可以解释为什么会data.table产生这个结果吗?

0 投票
1 回答
1425 浏览

r - 从 geom_sf /ggplot2 地图中删除了缺少数据的区域。为什么?

我无法打印缺少数据的地图。

我能够生成一个“空”的 shapefile:

在此处输入图像描述 然后我将数据添加到 shapefile

并制作新地图。

在此处输入图像描述

为什么缺少投影数据的区域没有边界/丢弃?我会假设通过使用 left_join 保留所有边界/区域。我怎样才能保留这些边界/区域?除了创建一个“完整”数据集之外,没有其他方法,其中包括每个缺失区域的 NA 行?

0 投票
1 回答
426 浏览

buffer - st_buffer 不同距离的多点

我有一个sfc_multipoint对象并且想要使用st_buffer,但对于多点对象中的每个单点具有不同的距离。那可能吗?

多点对象是坐标。 表 = 数据

每个坐标点(在“lon”和“lat”表中)都应该有一个不同大小的缓冲区。此缓冲区大小包含在“dist”行的表中。该表称为数据。

这是我的代码:

但它只使用 (0.100) 的第一个距离。这就是结果。只是非常小的缓冲区。 小缓冲区

对于可视化,请参阅此图片。这只是一个示例,说明缓冲区应该变大。示例结果