问题标签 [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.
r - 如何在 R 中加载多特征 geojson 文件的 *part*?
我有一个FeatureCollection
包含 2 种地理数据类型的 geojson:aLineString
和 a - 请参阅此处waypoint
的原始文件- 这是它在GitHub 上的外观:
我只想加载LineString
,所以这就是我所做的:
现在我们已经删除了文件开头和结尾的讨厌的行,这是一个格式很好的 GeoJSON 文件,我们可以加载和绘制它,是的:
除了任何 R 用户都应该清楚,这是一种非常笨重且效率低下的方法,涉及太多代码行和对硬盘的不必要读写。一定有别的办法!
我看过的选项
语境
我正在为可持续交通规划创建一个包,stplanr。查找骑行路线的功能(如下图所示)需要从CycleStreets.net api加载FeatureCollection geojson 数据。
r - 将“多特征”GeoJSON 的特征转换为 R 空间对象
通常,您可以使用 trusty 将 geojson 文件读入 R ,如此处readOGR
所示。
但是,这对于多特征 geojson 失败。
可重现的例子:
错误消息很清楚,并指出了解决方案:拆分特征。但是,除了使用正则表达式执行此操作外,我不知道如何操作。
非常欢迎任何想法。
令人惊奇的是:GitHub 在浏览器上本地显示数据,而 R 甚至(似乎)无法读取它!
解决方案的替代方法:
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 文件也会丢失投影信息。我真的很困惑!
那么我错过了什么?
有没有人有(任何)解决方案?
r - 使用 R 访问 ACM 数字图书馆 - 没有 API,怎么可能?
我想使用 R 代码搜索 ACM 数字图书馆,至少检索包括摘要在内的元数据,最多检索全文。
我知道 rOpenSci 库提供了 R 包和函数来访问 IEEEExplore 和其他文献数据服务,并且这些服务运行良好,但由于 ACM 数字图书馆尚未提供 API,rOpenSci 无法开发代码来访问 ACM来自 R 的数字图书馆资源。
我的问题是有人知道解决这个问题的方法吗?是否有替代方案允许以编程方式访问 ACM 数字图书馆中的内容?
谢谢山姆
r - 使用 @timestamp 将数据框写入 Elastic Search
我正在探索elastic
R 包以将数据框写入 ElasticSearch。我正在使用docs_bulk
功能。
我的数据框中的一列是@timestamp,它的POSIXct
格式是。但是该字段在 Elastic Search 中被保存为字符串。关于如何以时间格式保存列的任何想法。
我还尝试通过使用正确的数据类型定义手动创建索引映射,但它不起作用。
请建议。
版本:
R:3.3.1
弹性搜索 - 2.4.1
操作系统 - 红帽
r - Secured Elastic Search R 连接错误 - 客户端请求的协议 TLSv1 未启用或不受支持
我使用elastic 0.7.8
R 包连接到我的Elastic Search
实例。最近,我尝试使用Search Guard 2
.
保护后一切正常。但是当我尝试从 R 连接时,它失败了。
日志中的错误是“客户端请求的协议 TLSv1 未启用或不受支持”
我尝试使用 cURL 连接到 Elastic Search,如下所示:
- curl -k --tlsv1.1 -u USER:PASS https://localhost:9200(有效)
- curl -k --tlsv1.0 -u USER:PASS https://localhost:9200(失败)
我无法弄清楚如何强制 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 日
r - 使用弹性 R 包中的自签名证书连接到 Secured Elastic Search
我Elastic Search
通过创建自签名证书来运行带有 SSL 的实例。elastic
从 R 通过包连接时遇到问题。这就是我的进步:
启用 SSL 后,当我尝试连接到 Elastic Search 实例时,出现以下错误:
很明显,这个问题是因为证书不受信任。一种方法是将自签名证书添加到信任库,但我不知道它在哪里。另一种方法是通过添加 -k 来跳过证书验证。但我想表演它。因此,我找到了一种解决方法,只需指定root-ca.pem
如下:
然后另一个 SO 问题帮助我创建了一个文件~/.curlrc
,如下所示:
之后,我什至不必指定证书。
到目前为止一切顺利,但现在当我尝试从R
. 我收到以下错误。
日志报告unknown_ca
错误。elastic
R 包可能正在使用 httr/curl 进行连接,但我不知道如何指定证书。我在这里提到了解决方案,但它适用于RCurl
.
请建议。
版本:
- R:3.3.1
- R(弹性包装):0.7.8
- 弹性搜索:2.4.1
- 操作系统:RHEL 6.7
r - 将数据转换为geojson错误
我正在尝试使用 geojsonio 包从其他 R 包中提取的 data.frames 中编写一些 geojson 文件。
我遇到的问题是geometry=polygon
论点。我收到以下错误:
当geometry=point
它工作正常时,当然我只有一百万个单独的点,而不是 geojson 文件中的状态多边形。
有什么想法吗?
编辑:
如果我file<-geojson_json(data.frame)
先使用,我可以得到一个工作的geojson文件,然后geojson_write(file)
r - 如何使用 git2r (libgit2) 获取包含在初始提交中的文件?
我正在使用 R 包git2r与libgit2接口。我想获取每次提交中更新的文件列表,类似于git log --stat
or的输出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 树对象?
r - 使用 rnoaa 包的内存问题
使用rnoaa
包将美国站 ID 添加到天气事件的 df 中。下面是str()
df rain
。
省略了一堆与此无关的变量,这是rain
df的片段
这是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()
第一个问题!如果我没有包含任何相关内容,请告诉我。谢谢!