问题标签 [ropensci]

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 投票
2 回答
629 浏览

r - 如何在 R 中加载多特征 geojson 文件的 *part*?

我有一个FeatureCollection包含 2 种地理数据类型的 geojson:aLineString和 a - 请参阅此处waypoint的原始文件- 这是它在GitHub 上的外观:

数据

我只想加载LineString,所以这就是我所做的:

现在我们已经删除了文件开头和结尾的讨厌的行,这是一个格式很好的 GeoJSON 文件,我们可以加载和绘制它,是的:

R中的行

除了任何 R 用户都应该清楚,这是一种非常笨重且效率低下的方法,涉及太多代码行和对硬盘的不必要读写。一定有别的办法!

我看过的选项

语境

我正在为可持续交通规划创建一个包,stplanr。查找骑行路线的功能(如下图所示)需要从CycleStreets.net api加载FeatureCollection geojson 数据

流动

0 投票
3 回答
1992 浏览

r - 将“多特征”GeoJSON 的特征转换为 R 空间对象

通常,您可以使用 trusty 将 geojson 文件读入 R ,如此readOGR所示。

但是,这对于多特征 geojson 失败。

可重现的例子:

错误消息很清楚,并指出了解决方案:拆分特征。但是,除了使用正则表达式执行此操作外,我不知道如何操作。

非常欢迎任何想法。

令人惊奇的是:GitHub 在浏览器上本地显示数据,而 R 甚至(似乎)无法读取它!

解决方案的替代方法:

0 投票
0 回答
661 浏览

r - R: rgdal 编写 GeoJSON

我遇到了 rgdal 的问题,它在编写 geoJSON 文件时会丢失投影信息。

如果我输入summary(inputJSON),我会得到以下输出:

那是告诉我该文件已成功读入 R 并且它还获取了投影信息。

在处理了一些数据之后,我想使用以下命令将我的 data.frame (inputJSON) 保存为一个新的 geoJSON 文件:

这也会产生所需的geoJSON文件,但它不会将投影信息写入其中,而且没有该信息的geoJSON文件(对于我的建议)几乎是无用的。

为了比较输入文件(test.geojson)的开头:

生成的文件(outTest.geojson):

所以这:

缺少重要的部分。

如果我没记错的话,我的 rgdal 版本是

rgdal' 版本 1.0-6

并且应该是最新的。好吧,我还尝试了其他带有可用 geoJSON 文件编写器 ( geojsonio,leafletR) 的包,但它们都不考虑投影。那么我错过了什么?有没有可能使这项工作?我认为 ogr2ogr 的 GeoJSON 驱动程序(包所基于)根本不处理投影。通过命令行将 shapefile 传输到 geoJSON 文件,生成的 geoJSON 文件也会丢失投影信息。我真的很困惑!

那么我错过了什么?

有没有人有(任何)解决方案?

0 投票
1 回答
2003 浏览

r - 使用 R 访问 ACM 数字图书馆 - 没有 API,怎么可能?

我想使用 R 代码搜索 ACM 数字图书馆,至少检索包括摘要在内的元数据,最多检索全文。

我知道 rOpenSci 库提供了 R 包和函数来访问 IEEEExplore 和其他文献数据服务,并且这些服务运行良好,但由于 ACM 数字图书馆尚未提供 API,rOpenSci 无法开发代码来访问 ACM来自 R 的数字图书馆资源。

我的问题是有人知道解决这个问题的方法吗?是否有替代方案允许以编程方式访问 ACM 数字图书馆中的内容?

谢谢山姆

0 投票
1 回答
863 浏览

r - 使用 @timestamp 将数据框写入 Elastic Search

我正在探索elasticR 包以将数据框写入 ElasticSearch。我正在使用docs_bulk功能。

我的数据框中的一列是@timestamp,它的POSIXct格式是。但是该字段在 Elastic Search 中被保存为字符串。关于如何以时间格式保存列的任何想法。

我还尝试通过使用正确的数据类型定义手动创建索引映射,但它不起作用。

请建议。

版本:

R:3.3.1

弹性搜索 - 2.4.1

操作系统 - 红帽

0 投票
1 回答
418 浏览

r - Secured Elastic Search R 连接错误 - 客户端请求的协议 TLSv1 未启用或不受支持

我使用elastic 0.7.8R 包连接到我的Elastic Search实例。最近,我尝试使用Search Guard 2.

保护后一切正常。但是当我尝试从 R 连接时,它失败了。

日志中的错误是“客户端请求的协议 TLSv1 未启用或不受支持”

我尝试使用 cURL 连接到 Elastic Search,如下所示:

我无法弄清楚如何强制 R 使用 TLSv1.1。

请协助。

以下是版本:

  • R:3.3.1
  • 弹性搜索:2.4.1
  • 海湾合作委员会:4.9.2
  • 操作系统:RHEL 6.7
  • Openssl:1.0.1.e-fips 2013 年 2 月 11 日
0 投票
1 回答
2219 浏览

r - 使用弹性 R 包中的自签名证书连接到 Secured Elastic Search

Elastic Search通过创建自签名证书来运行带有 SSL 的实例。elastic从 R 通过包连接时遇到问题。这就是我的进步:

启用 SSL 后,当我尝试连接到 Elastic Search 实例时,出现以下错误:

很明显,这个问题是因为证书不受信任。一种方法是将自签名证书添加到信任库,但我不知道它在哪里。另一种方法是通过添加 -k 来跳过证书验证。但我想表演它。因此,我找到了一种解决方法,只需指定root-ca.pem如下:

然后另一个 SO 问题帮助我创建了一个文件~/.curlrc,如下所示:

之后,我什至不必指定证书。

到目前为止一切顺利,但现在当我尝试从R. 我收到以下错误。

日志报告unknown_ca错误。elasticR 包可能正在使用 httr/curl 进行连接,但我不知道如何指定证书。我在这里提到了解决方案,但它适用于RCurl.

请建议。

版本:

  • R:3.3.1
  • R(弹性包装):0.7.8
  • 弹性搜索:2.4.1
  • 操作系统:RHEL 6.7
0 投票
1 回答
439 浏览

r - 将数据转换为geojson错误

我正在尝试使用 geojsonio 包从其他 R 包中提取的 data.frames 中编写一些 geojson 文件。

我遇到的问题是geometry=polygon论点。我收到以下错误:

geometry=point它工作正常时,当然我只有一百万个单独的点,而不是 geojson 文件中的状态多边形。

有什么想法吗?

编辑:

如果我file<-geojson_json(data.frame)先使用,我可以得到一个工作的geojson文件,然后geojson_write(file)

0 投票
1 回答
360 浏览

r - 如何使用 git2r (libgit2) 获取包含在初始提交中的文件?

我正在使用 R 包git2rlibgit2接口。我想获取每次提交中更新的文件列表,类似于git log --stator的输出git log --name-only。但是,我无法获取初始提交中包含的文件。下面我提供了设置示例 Git 存储库的代码以及基于我的研究尝试的解决方案。

可重现的例子

下面的代码在 中创建一个临时目录/tmp,创建空文本文件,然后分别提交每个文件。

选项 1 - 比较两棵树的差异

这篇SO 帖子建议您执行比较所需提交的树对象及其父提交的差异。这很好用,除了初始提交,因为没有父提交可以比较它。

选项 2 - 解析提交摘要

This SO post建议通过解析提交摘要来获取提交信息,例如更改的文件。这与 非常相似git log --stat,但同样的例外是初始提交。它不列出任何文件。查看源码,commit summary中的文件是通过上面相同的方法获得的,这就解释了为什么初始提交没有显示文件(它没有父提交)。

更新

这应该是可能的。Git 命令diff-tree有一个标志--root,用于将根提交与 NULL 树(source)进行比较。从手册页:

此外,libgit2 库具有函数git_diff_tree_to_tree,它接受 NULL 树。不幸的是,我不清楚是否可以通过git-tree objects的 git2r diff 方法将 NULL 树传递给 git2r C 函数git2r_diff。有没有办法用 git2r 创建一个 NULL 树对象?

0 投票
0 回答
75 浏览

r - 使用 rnoaa 包的内存问题

使用rnoaa包将美国站 ID 添加到天气事件的 df 中。下面是str()df rain

谷歌驱动器链接到子集的 csv 文件

省略了一堆与此无关的变量,这是raindf的片段

这是ghcnd_stations()tibble的片段,rnoaa文档建议分配它,这样就不必每次都调用它。

到目前为止,我已经能够使用该ghcnd_stations()命令调用站点列表,然后在删除非 CONUS 站点后,获取这些站点的纬度/经度坐标,fuzzyjoin::geo_inner_join用于比较两个列表并合并最近的站点.

我获取了我的数据的一个子集并尝试运行它并且它可以工作,但是当我尝试在整个数据集上运行该代码时,我遇到了memory.size错误:

我已经尝试过 uisng memory.size = 9000,并尝试阅读有关增加内存大小的信息,但我仍然收到错误消息。memory.size(max = TRUE)返回这个:

有没有更有效的方法来做到这一点,还是我必须将我的 df 切片,运行代码,然后rbind重新组合在一起?

只是为了上下文,这里是sys.info()

第一个问题!如果我没有包含任何相关内容,请告诉我。谢谢!