问题标签 [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.
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
。我不知道这是不是偶然。
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 新手,所以任何建议表示赞赏!
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.
错误,我认为是因为数据框太大。
有没有人想出一个很好的解决这个问题的方法?我对其他包装创意持开放态度!
更新了修复问题的代码
r - 两个轴承之间的差异(角度)
使用geosphere::bearing
我可以计算两条线的方位角,但是可以计算两条方位角之间的角度吗?
当然,您可以尝试减去或总结方位,但在一个为负而另一个为正的特定情况下,这是行不通的。
例如,如果ber1
= - 175 和ber2
= 175 之间的角度应该是 10。
有什么建议么 ?
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.
r - 在 R 的 geosphere 包中,为什么轴承不在 0-360 度?
bearing
当我使用包中的函数计算点之间的geosphere
方位角时,得到的方位角跨度为 -180 - 180 度。但是,根据geosphere
包装文档,我预计轴承可以跨越 0-360 度。这是文档中的引用:
方向以度数表示(北 = 0 和 360,东 = 90,南 = 180,西 = 270 度)。
我错过了什么?
这是一个小例子:
r - 迭代地在 dplyr 中创建多个新的 mutate 列 - 纬度和经度
我有一个纬度和经度列表(每行包含一个标签编号,2个点,它们之间形成一条线),我试图找到从每行中的一个端点到彼此创建的线的距离列表中的行。我正在使用 geosphere(dist2gc) 包和 dplyr。我正在尝试通过循环来做到这一点(因为我无法弄清楚如何让 lapply 做到这一点),并且我想为每次比较创建一个包含距离的新列(所以如果我从 10 行开始,我将比较 10乘以 10 并有 10 个新列,其中包含到每行中的行的距离)。如果我从 10x8 data.frame 开始,输出将是 10x18 data.frame。
临时列名不起作用。请帮忙!
谁能帮我想出使变量命名起作用的方法或其他方法来做到这一点?
r - 在R中获取多个坐标的中心
我有一个具有“纬度”、“经度”值的数据框,例如:
我试图获得这些点的中心:
我遇到了“geosphere”包引发错误的问题:
从阅读这个stackoverflow 帖子,问题可能与我以字符串而不是数字/双精度格式格式化的值有关。
然后我继续将这些列值转换为数字:
转换似乎已经弄乱了我的数据,但是就像现在看它一样;它显示了这一点:
有谁知道我应该如何解决这个问题?
r - 使用纬度和经度误差计算距离
我正在使用这段代码:
我收到一个错误:
p[, 2] 中的错误:下标越界