问题标签 [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.
r - sf 绘图,键未正确显示 R
我一直在尝试使用sf
包plot
函数绘制一个 shapefile,但我得到了这个:
(shapefile 可以在这里找到:https ://drive.google.com/open?id=1AKMP9i549xESStN-R59UUU80OmkXy1XM )
我无法正确显示密钥。我一直在玩par
功能,但我认为我做错了,因为没有任何改变。
我试过:
和许多其他组合(c(10,5,5,20),c(10,10,10,10)),但我认为 sf plots 不依赖于par
设置(如果我错了,请原谅)。
我还尝试key.size
在函数中使用该属性,plot
但它只会改变键的宽度(见下图左图),如果它太大,则只显示键(右图)。
我想正确显示钥匙,如果可能的话,改变它的大小。
有人遇到过同样的问题吗?
r - 访问简单要素几何列以进行密度计算
我使用空间数据,并且习惯于使用Spatial*
对象。我最近开始使用sf
包,在某些情况下它似乎让生活更轻松。但是,我在尝试使用光栅包时遇到了麻烦。在kde2d
功能中,我需要提供每个点的 X 和 Y,这在sp
包装中很容易:
但是后来我尝试使用sf
包来实现相同的目标,但发生了错误:
我不知道如何以与 package.json 相同的方式进入几何列sp
。我尝试了解决方法,但看起来很难看:
还有其他方法可以实现吗?也许您使用一些比raster
处理密度更好的软件包?
r - 在 sf 中测试/过滤几何的相等性?
可能在这里遗漏了一些东西,但经过一堆挖掘后没有找到任何东西。我试图找到sf
几何图形具有特定值的对象行。这是为了整理的目的,其中相同的几何图形可能与不同的数据集中的不同关联元数据(例如 id 和其他值)一起存储,我需要解决差异。
通常使用以下方法很容易过滤某些值dplyr
:
加载所需的包
加载示例数据集
正如预期的那样,dplyr::filter
在不同的列上效果很好。我们可以很容易地选择有NAME
Ashe 和CNTY_ID
1825 的那一行,也就是第一行:
尝试在几何列上进行过滤时效果不佳。我希望这仅返回 的第一行nc
,因为那是nc
等于geometry
(根据定义)第一个几何图形“nc$geometry[1]”的行。
该错误消息表明即使==
操作员也不起作用:
identical()
有效,但不是为了构建我自己的过滤器。想查看TRUE
输出的第一个元素,但我认为identical()
在地图函数中不会这样工作。
==
根本没有为几何sf
定义?如果是这样,是否有替代方法来测试相等性或以其他方式在不同数据集中找到相同的几何图形?我即将rbind
使用不同的数据集并使用它duplicated()
来执行此操作,但这需要确保两者中的所有列都相同,并且看起来像是意外/不必要的麻烦。
感谢您完成问题 - 任何建议都非常感谢!
r - sf data.frame中只保留二维分量
我有一个与这个问题类似的设置。然而,就我而言,我有一个sf
data.frame ,其中包含不同几何类型的混合,有些是这样POLYGON
的,有些GEOMETRYCOLLECTION
是这样的:
就像上面提到的问题一样,我希望只保留那些GEOMETRYCOLLECTION
二维的部分,因为最终我对这些几何形状的区域感兴趣并且st_area()
不会在GEOMETRYCOLLECTION
s 上工作。
然而,在混合几何的情况下,给出的答案
不起作用,因为st_cast()
叶子GEOMETRYCOLLECTION
未受影响。
r - 用 ggplot 和 sf 绘制国会等值线图
我正在努力使用 ggplot2 和 sf 库创建国会热图。
到目前为止,我可以创建州议会选区的空白地图:
我希望能够将虚拟数据与空白绘制的形状联系起来并填充渐变 - 如下所示:
但是我遇到了一个错误:“在使用 plot 命令时找不到函数“geom_sf”,并且在使用 ggplot 命令时出现了这个错误:“ggplot2 不知道如何处理类 sfc_MULTIPOLYGON/sfc 的数据”。
我认为问题在于 plot_states_data 既是数据框又是 sf 对象类,我不确定如何使 plot_states_data 只是一个数据框或如何使 ggplot 和 sf 一起工作。
有人对解决这些问题有什么建议吗?
编辑:
austensen 关于下载开发者 ggplot2 的评论已经解决了这个问题。对于尝试进行相同类型映射的其他人,此命令对我有用:
r - 使用 facet wrap 与 geom_sf 映射不同的状态和自由缩放
首先,我知道这个答案:Mapping different states in R using facet wrap
但我使用库对象sf
。
似乎这facet_wrap(scales = "free")
不适用于geom_sf
在 ggplot2 中绘制的对象。我收到这条消息:
Erreur : 自由秤仅支持
coord_cartesian()
和coord_flip()
有什么我错过的选择吗?
任何人都解决了这个问题而没有被迫使用cowplot
(或任何其他网格排列)?
确实,这里有一个例子。我想在各个方面分别显示不同的法国地区,但有自己的 x/y 限制。
没有尺度的结果=“免费”
比例尺是根据整个地图的范围计算的。
使用cowplot的结果
我需要使用 ggplots 列表,然后可以将它们组合起来。这是目标输出。它更干净。但我也想要一种干净的方式来添加图例。(我知道在另一个 SO 问题中可能有一个共同的传说: facet wrap distorts state maps in R)
r - 如何从 10 公里顶点处的 shapefile 中拆分线串?
我有一个导入到 R 中的河流段的 shapefile。这些段的长度范围为 5-115 公里。我想将超过 10 公里的路段分成 10 公里的块。所以我用st_segmentize
. 但这实际上并没有将一条长线分成多个新的短线,这就是我想要的......有没有办法做到这一点?我认为st_segmentize
每 10 公里添加一个顶点。所以我只需要在顶点处分割线。
到目前为止的代码:
谢谢你的帮助!