问题标签 [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 - 如何计算沿 R 中的列行的纬度和经度之间的距离?
我的 df 看起来像这样:
我想创建一个新的 df 来计算与每个连续点的时间差和距离。我想计算出按相同出价分组的行。我使用以下 for 循环来完成此操作:
(有些列号是关闭的,因为我取出了一些行以显示更清楚)
我的结果如下所示:
它具有每个数据点的 id、每个数据点之间的时间差、从 long 和 lat 计算的距离以及平方距离。问题:它非常慢,最终我将在一个非常大的数据集上执行此操作。
我能够在没有 for 循环的情况下使用 dplyr 成功地做到这一点,如下所示:
我无法弄清楚如何使用纬度和经度来执行此操作,因为与 ts 值不同,它们位于两个不同的列中。有人有什么建议吗?
PS 该项目的总体目标是对数据进行均方位移分析。
r - 计算列表的距离
我有两个坐标列表,mapped_coords,unmapped_coords,它们都是坐标列表。
我想采用 unmapped_coords 并为每个元素返回具有 mapped_coord 中最小距离的点的索引。
使用 geosphere 包,我可以使用 distHaversine 计算一对的距离,但我不确定如何在整个列表中进行计算。
r - R-计算点和线之间的最小距离
我有一大组地块的多边形 shapefile(用于 50 多个县),我想遍历每个地块并计算从每个地块的中心到最近的铁路的距离,并在全国范围内存储在 line shapefile 中。
为此,我提出了两种不同的措施:geospheres 包中的 point2Line 和 rgeos 包中的 gDistance。每个人对我都有不同的问题。
对于 point2line,我的代码如下所示:
但这会发出以下警告:
它还给了我一个 nparcels X (我认为行矩阵的数量)的数字,我不太确定这些数字的测量值。我想要以公里或英里为单位的测量值。
第二种方法,使用 dist2line 看起来像这样: dist<-dist2Line(centroids,rail_crop) 它工作正常,但唯一的问题是它需要很长时间!环游 60 个左右的县,可能需要几天时间。此外,如果最近的铁路在另一个县,我宁愿不必裁剪铁路 shapefile。使用整个 shapefile 运行代码需要更长的时间。
所以我本质上要寻找的是一种以相当有效的方式获得从点到线形状文件的最近距离的方法,该方式以公里或英里为单位吐出距离,或者类似的可解释的东西。如果这可以通过 gDistance 以没有这些错误的方式完成,那就太好了!如果有一种方法可以从 dist2Line 或其他方法加速它,那也很棒。如果您对如何使用一些缓冲区裁剪轨道 shapefile 也有任何想法,我也将不胜感激。(我不能发布代码,因为包裹数据是专有的)
我仍然是空间问题的初学者,如果我无法理解或者之前已经回答过这个问题,我很抱歉。我环顾四周,并没有找到我能够在这里工作的解决方案。
谢谢!
用数据编辑
所以我想我知道我的警告信息是从哪里来的this。我使用的是 3d 坐标系而不是平面坐标系。我已经使用从互联网上为威斯康星州的一个县下载的 shapefile 运行了一些代码,gDistance 输出了一个矩阵,其中包含地块数 x 每个地块到每条铁路线的距离(我假设)的线数。有谁知道这些距离的测量值是多少?如何将它们转换为 KM 或英里?还有一个我应该使用的“首选”平面投影。此外,任何关于如何用一些缓冲区裁剪 shapefile 的想法都将不胜感激。文件/代码可以在这里找到
r - 具有大型数据集的半径内的点数 - R
我有县级地块级别的 shapefile,我的目标是计算一英里(约 1610 米)内以及同一所有者的地块总数。我已经完成了一个解决方案,下面是我的示例代码,但它的效率相当低且占用大量内存。我不能公开发布数据,但这是一些编造代码的问题:
由此产生的“numdif”和“numtot”向量给了我我想要的东西:一个向量,分别是具有不同所有者和总数的相邻地块的数量。然而,对于我所在的县来说,这个过程非常耗时且占用大量内存,因为这些县的“nobs”要大得多。一些县有 50-75,000 个观测值(因此生成的矩阵 m 有数十亿个元素,可能需要比我更多的内存)。从速度和内存的角度来看,有没有人想过解决这个问题的更好方法?非常感谢您的帮助。
r - 在 R 中为 kmeans 设置静态中心
我想根据预先确定的中心点 (my_center_Points) 对经纬度列表 (my_long_lats) 进行分组。
当我跑步时:-
k$centers
不等于my_center_Points。
我假设 k-means 已将我的中心点调整为最佳中心。但我需要的是 my_center_Points 不改变并将 my_long_lats 分组在它们周围。
在此链接 中,他们讨论了设置初始中心,但是如何设置运行 k 均值后不会改变的中心?或者有更好的聚类算法吗?
我什至可以满足于最小化中心的移动。
我在 R 中还有很多东西要学,非常感谢任何帮助。
r - 从 R 中的矩阵值创建观察列表
我有一个大矩阵,用于计算两个不同邮政编码之间的距离(使用rgeosphere
包)。我想运行一个函数来查找彼此之间 <=x 距离的所有邮政编码配对并创建它们的列表。数据如下所示:
因此,如果我运行该函数来提取所有 <2 英里以外的邮政编码配对,我最终会得到这些邮政编码:
目标基本上是将美国所有相邻的邮政编码识别为我拥有的邮政编码列表。如果有更好的方法可以做到这一点,我愿意接受建议。
r - 显示昼夜区域的世界地图
我正在尝试将白天/夜间线添加到世界地图ggplot
中,以指示白天和黑夜区域;像这样的东西:
计划是在 24 小时周期内为我的地图制作动画,如下所示:
上面的动画是使用正弦波实现的,我知道这是完全不准确的。我知道这geosphere::gcIntermediate
可以让我画出大圆线,如下所示:
虽然我不确定是否可以在一年中的不同时间点绘制所需的线条,例如在 3 月,它看起来像这样:
我没有找到解决方案,但我猜我不知道要搜索的关键字,因为这超出了我的知识范围。我认为答案可能在日出方程的某个地方,但我不知道如何应用这些来找到解决方案,也不知道如何在一年中改变这些参数。这个网站(用于上面的情节)似乎也很有用,但我还不确定如何!
r - 将具有可变数量元素的列表的嵌套列表展平到数据框
我有一个嵌套的列表列表,我想将其展平为带有 id 变量的数据框,这样我就知道每个列表元素(和子列表元素)来自哪个列表元素(和子列表元素)。
我以前曾plyr::ldply(mylist, rbind)
用于扁平化列表,但由于列表长度可变,我似乎遇到了麻烦:一些列表元素仅包含一个数据框,而其他列表元素包含两个数据框的列表。
我找到了一个使用两个lapply
s 和ifelse
类似的笨重解决方案:
但我觉得必须有一个更优雅的解决方案,可以作为单线,例如dput
,data.table
?
这是我期望输出的样子:
r - 使用 R 质心函数问题计算蒙大拿州的中心
我正在尝试使用geosphere包中的R centroid
函数找到蒙大拿州的中心。纬度/经度坐标存储在一个形状文件中,该文件在计算时会在百慕大附近产生结果。xx
关于如何解决这个问题的任何建议?