问题标签 [geosphere]

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 回答
246 浏览

r - geosphere:: areaPolygon 的面积计算错误?

我已经geosphere::areaPolygon()成功使用了很多次,但现在我遇到了一个问题。

我有一个包含另一个多边形 sp1 的多边形 sp2。所以 sp2 的面积应该比 sp1 大。当我用 计算每个区域时areaPolygon(),我得到相反的结果。

areasp1 = 10133977
areasp2 = 9858811

我使用 gSymdifference 来找到对称的不同多边形 sp3,它有

areasp3 = 275165.4

sp1 : 红色虚线
sp2 : 黑线
sp3 : 绿色虚线 图片在这里

我使用的代码:

所有多边形都经过了自相交或其他问题的测试,因此与此处gIsValid()提到的问题无关。

知道为什么 sp1 的面积比 sp2 大吗?

注意:如果你求和areasp2+ areasp3,它几乎等于areasp1。我不知道这是不是偶然。

0 投票
2 回答
1358 浏览

r - 使用gcIntermediate在R传单/闪亮中绘制跨越日期线的最短飞行路径

我正在使用 R-Leaflet 创建澳大利亚机场及其国际目的地的地图。

这是我的示例数据:

我认为使用 gcIntermediate 使用弯曲的飞行路径会很酷,所以我创建了一个 SpatialLines 对象:

然后我使用传单和闪亮绘制它:

它看起来像这样:

闪亮的输出

因此,如果它们越过日期线,则路径不正确。将 breakAtDateLine 更改为 FALSE 并不能修复它(该行消失但路径仍然损坏)。在这个阶段,我怀疑我可能需要使用不同的地图系统或其他东西,但如果有人有一些建议,我将非常感激。

提前致谢。

0 投票
2 回答
164 浏览

r - 如何计算R中分组数据行之间的距离和时间差的所有可能组合?

我的数据包括美元钞票的距离和时间。我的数据如下所示:

出价 = 账单 ID

ts = t = 0 时从原始数据点计算的时间戳(天)

纬度和经度=位置

该数据显示了美国各地账单 ID 的移动。

我想计算每个类似行组 4 的所有可能组合之间的平方距离和时间差异。例如,对于出价组 123,我想计算距离和时间之间的差异:第 1 行和第 2 行,第 1 行和第 3 行,第 1 行和第 4 行,第 2 行和第 3 行,第 2 和第 4 行,第 3 和第 4 行。

这将为我提供这组出价之间所有可能的计算组合。

我能够在连续行之间使用 dplyr 来做到这一点,如下所示:

问题:这仅计算连续行之间的平方距离和时间,即:第1行和第2行,第2行和第3行,第3行和第4行

有没有一种实用的方法可以对每组中所有可能的行组合执行此操作?

我希望我的输出对每个出价进行 6 次计算,如下所示:

我是 R 新手,所以任何建议表示赞赏!

0 投票
2 回答
1178 浏览

r - R:大数据的Distm?计算两个矩阵之间的最小距离

我有两个矩阵,一个是 200K 行长,另一个是 20K。对于第一个矩阵中的每一行(这是一个点),我试图找到第二个矩阵中的哪一行(也是一个点)最接近第一个矩阵中的点。这是我在示例数据集上尝试的第一种方法:

但是,Error: cannot allocate vector of size 30.1 Gb当我使用该distm功能时出现错误。

关于这个主题有几个帖子:

这个bigmemory用于计算相同数据帧中点之间的距离,但我不确定如何调整它来计算两个不同矩阵中点之间的距离...... https://stevemosher.wordpress.com/2012/04/12 /nick-stokes-distance-code-now-with-big-memory/

这也适用于计算相同矩阵中点之间的距离矩阵...用于重复距离矩阵计算和超大距离矩阵分块的高效(内存)函数

这与我想要做的几乎相同,但他们实际上并没有提出适用于大数据的解决方案:R: distm with Big Memory我尝试了这种方法,它使用bigmemory,但出现Error in CreateFileBackedBigMatrix(as.character(backingfile), as.character(backingpath), : Problem creating filebacked matrix.错误,我认为是因为数据框太大。

有没有人想出一个很好的解决这个问题的方法?我对其他包装创意持开放态度!

更新了修复问题的代码

0 投票
1 回答
1800 浏览

r - 两个轴承之间的差异(角度)

使用geosphere::bearing我可以计算两条线的方位角,但是可以计算两条方位角之间的角度吗?

当然,您可以尝试减去或总结方位,但在一个为负而另一个为正的特定情况下,这是行不通的。

例如,如果ber1= - 175 和ber2= 175 之间的角度应该是 10。

有什么建议么 ?

0 投票
1 回答
2254 浏览

r - Calculating distance between two points using the distm function inside mutate

I am trying to calculate the distance between two sets of longitude and latitude coordinates.

I am using the function distm() from the package geosphere to do this.

It works fine if I manually put in the values in the distm() function, but I can't get it to work inside my mutate command.

When running it inside a mutate function I get the error:

@Dotpi wrote in a comment "A small note. The method geosphere:distm is not vectorized. To vectorize it use the apply functions." when he replied in this thread (Function to calculate geospatial distance between two points (lat,long) using R)

From that I am guessing that this is what is causing the error in the mutate function, but I don't know how to solve it. I would prefer a tidyverse solution, but any help is appreciated.

Below is a test dataframe with first the code that produces the error, and then a working example where I manually insert the values from the first row in DF.

0 投票
1 回答
1032 浏览

r - 在 R 的 geosphere 包中,为什么轴承不在 0-360 度?

bearing当我使用包中的函数计算点之间的geosphere方位角时,得到的方位角跨度为 -180 - 180 度。但是,根据geosphere包装文档,我预计轴承可以跨越 0-360 度。这是文档中的引用:

方向以度数表示(北 = 0 和 360,东 = 90,南 = 180,西 = 270 度)。

我错过了什么?

这是一个小例子:

0 投票
0 回答
144 浏览

r - 迭代地在 dplyr 中创建多个新的 mutate 列 - 纬度和经度

我有一个纬度和经度列表(每行包含一个标签编号,2个点,它们之间形成一条线),我试图找到从每行中的一个端点到彼此创建的线的距离列表中的行。我正在使用 geosphere(dist2gc) 包和 dplyr。我正在尝试通过循环来做到这一点(因为我无法弄清楚如何让 lapply 做到这一点),并且我想为每次比较创建一个包含距离的新列(所以如果我从 10 行开始,我将比较 10乘以 10 并有 10 个新列,其中包含到每行中的行的距离)。如果我从 10x8 data.frame 开始,输出将是 10x18 data.frame。

临时列名不起作用。请帮忙!

谁能帮我想出使变量命名起作用的方法或其他方法来做到这一点?

0 投票
2 回答
773 浏览

r - 在R中获取多个坐标的中心

我有一个具有“纬度”、“经度”值的数据框,例如:

我试图获得这些点的中心:

我遇到了“geosphere”包引发错误的问题:

从阅读这个stackoverflow 帖子,问题可能与我以字符串而不是数字/双精度格式格式化的值有关。

然后我继续将这些列值转换为数字:

转换似乎已经弄乱了我的数据,但是就像现在看它一样;它显示了这一点:

有谁知道我应该如何解决这个问题?

0 投票
0 回答
81 浏览

r - 使用纬度和经度误差计算距离

我正在使用这段代码:

我收到一个错误:

p[, 2] 中的错误:下标越界