Questions tagged «algorithm»

一种用于通过一系列步骤解决问题的数学过程。算法通常被编码为一系列计算机命令。

4
从一组相交线生成多边形
这是一个简单且非常常见的问题,已经针对不同的目的提出了此问题(例如,也请参见此链接,也可以参见此链接),但是,在这里,我们寻找的不是软件包,而是我们可以尝试实现的算法Python。 因此,如下图所示,映射了一组线(BTW已被修剪)。 生成多边形的算法/想法(如红色所示)?

2
算法:将源折线移动到参考折线(完全或部分移动)
在我们的系统中,存在一些需求,我们希望将某些源线(精度较低)移动到参考线(精度较高)。以下图片给出了正常的使用案例。红色的是源极线,蓝色的是参考线。 对于这种情况,源行将被部分移动,结果将如绿线所示: 在某些情况下,源代码行需要完全移动。 结果: 当前,我们的解决方案是将源线的起点/终点投影到参考线,反之亦然,然后在源线和参考线上找到投影点。通过这些投影点,我们可以提取源线和参考线的所需部分,然后将它们组合成新的部分。 这在大多数情况下都有效,但是在某些情况下,此方法无效。具体地说,当任何一条线具有“ C”形或起始点非常接近终点时。接下来的两张图片给出了场景。 应用我的算法,我们得到的结果是: 从某种意义上讲,这是可以理解的,因为当前算法只是找到投影点并提取线。 我们期望的是这样的: 因此,我需要更强大的算法来执行此操作,以便它也可以处理像前一种情况一样的特殊情况。我试图将一条线中的每个点投影到另一个点上,并找到最接近投影线的头端/终点的两个投影点,但是没有运气。我仍然可以找到给出意外结果的案例。 有人遇到过类似的问题吗?如果有一个软件或库可以完成类似的工作,那也很好。任何答案将不胜感激。
10 algorithm 

1
如何可视化具有不确定性的方位角数据?
我正在尝试制作一个图,显示在每个点具有不同范围不确定性的方位角数据。这张来自1991年论文的老式人物捕捉了我旨在的“领结情节”构想: 关于如何制作类似数字的任何建议?我是GIS领域的新手,但是我确实可以通过我的大学使用ArcGIS。我的Arc经验仅限于制作地质图,因此我不必做任何过于奇特的事情。 我在Arc和QGIS中浏览了符号系统选项,但没有看到我认为可以完成此工作的任何设置。注意,这不仅仅是旋转方位角的蝴蝶结形状的问题;每个“领结”的角度范围需要不同。 我将我的Python技能评为“高级中级”,而将我的R技能评为“低级中级”,因此如果有必要,我不反对与matplotlib和mpl_toolkits.basemap或类似的库一起破解某些东西。但是我认为在走那条路之前,我会在这里征求建议,以防万一有一个我还没有听说过的GIS领域的简单解决方案。

1
寻找轨迹相似度
在最后的学术工作中,我开发了一种GPS轨迹的压缩算法。我可以通过计算压缩轨迹与原始轨迹之间的同步欧氏距离(SED)来估计时空压缩的质量,并根据著名的压缩算法评估我的算法的性能。 像我的时空算法会减少试图保持尽可能多的时间信息的轨迹。空间算法(例如Douglas-Peucker算法)仅参考空间特征即可实现压缩。 现在会发生什么?考虑到时空方面,我的算法比DP更好。我可以通过SED测量来确保这一点。如果绘制三个轨迹(原始,矿山和DP压缩),则用DP压缩的轨迹与原始轨迹的拟合度更高。仅靠眼睛的测量不能满足我的需求:实际上,我需要一个误差度量,该误差度量以数字方式证明了DP算法在空间上比我的算法更好。 因此,我可以这样写:“参考时空因素,我的算法比DP更好,因为它的SED因子小于DP的SED因子。可惜,简单的空间因子奖励DP算法,因为它(新指标的名称)比我的好”。 我一直在考虑垂直欧几里德距离,但是我真的不知道这是否有用。动态时间扭曲?我可以使用什么指标?

2
高程剖面采样点算法
在生成高程剖面时,必须从基础栅格中采样。如果目标是创建最高质量的配置文件,应如何确定采样点的位置?应该采用什么方法对这些采样点进行插值?

4
从一组弧线计算覆盖率+重叠的算法
我有一个shapefile,其中包含表示卡车将肥料传播到农场的路径的弧线。 假设我知道传播宽度为30m,即卡车可以在车辆的任何一侧传播15m的肥料。 我想生成一组多边形,这些多边形显示: 1)接收肥料的总面积 2)重叠的面积,即两个单独的通道过于靠近的位置,以致农场的某些部分收到了正确的“剂量”的两倍肥料。 天真的方法是仅将coverage多边形创建为圆弧周围的缓冲区。这在散布线彼此不同的特殊情况下有效。但是,可以想象,卡车可能会以不断下降的螺旋线在农场周围行驶,并且简单的缓冲区无法显示出重叠,因为螺旋线的两个通道过于靠近(如果螺旋线是一个弧,我最终会得出结论)没有重叠部分的单个多边形)。 如果相关的话,我正在使用TatukGIS VCL DK,但我实际上是在寻找一种算法而不是特定的解决方案。 到目前为止对讨论的一些澄清: 1)我不能依靠具有任何特定元数据(例如GPS日志或传播速率)的矢量数据。我允许用户选择一个图层并指定展开宽度,然后运行报表。 2)该报告的目的实际上是向用户显示车辆操作员的“技能”水平,其中“技能”表示“以最小的重叠实现了最高的覆盖率”。 3)我在矢量土地上比在光栅土地上更舒适,因此将更喜欢基于矢量的解决方案。 谢谢, 达伦


1
计算地形湿度指数(从不同算法中选择)
地形湿度指数可以表示为 Ln(a/tanB) based on the idea of Beven and Kirkby (1979) 哪里 a is the specific catchment area (a=A/L, catchment area (A)divided by contour length(L)) 和 tanB is the slope 这里的基本思想很简单,但是由于有多种计算a和tanB的方法,因此TWI的结果差异很大(Qin 等, 2011)。 可以通过以下方式计算流量积聚和汇水面积: D8 (O'Callaghan, J.F. / Mark, D.M. (1984)) D-infinity (Tarboton, D.G. (1997) Triangular Multiple flow direction (Seibert, …

4
将重叠爆炸到新的非重叠多边形?
给定多个以多种方式重叠的多边形,我想从这些要素中迭代导出所有不与其他多边形重叠的多边形。 该产品将具有许多不重叠的功能,将它们加在一起便构成了原始功能。 然后可以将乘积用作区域统计的输入,这比在每个多边形上迭代区域统计要快得多。 我一直试图在ArcPy中对此进行编码,但没有成功。 是否已经存在执行此操作的代码?

1
将地图点分组为固定的簇大小?
我有655个纬度/经度对的数据集,我希望将其分为100个组。一组应具有5-10对,地理上彼此靠近。密集的组应该有更多的点,稀疏的组应该有更少的点。例如,城市分组应较大,农村分组应较小。 是否有建立此类分组的既定算法,还是我必须从头开始设计一个? 我正在使用google maps v3 api来显示此数据,但由于它是固定的数据集,因此我准备进行一些脱机号码处理。

2
寻找相似的地图路径
我正在寻找一种算法,当在地图上给定具有诸如坡度/距离/形状/等属性的特定路线时,可以找到一条相似的路线(就属性而言),但该路线始于不同的地点或在地球上的另一个地区。 显然,在几乎所有情况下都不可能找到完美的拟合,但是我正在寻找一种“最佳匹配”类型的系统,该系统应具有理想的测量相似度的方法。 我尝试查找,但是我的大多数查询都提出了“地图匹配”问题或同一路径上GPS点的路线相似性。我可能不知道正确的术语!这个问题有名字吗?我可以使用什么算法来解决这个问题?

2
模糊最小粗共分割算法
给定形状的两个不同分区(出于论证的考虑,一个国家的两个不同行政区划),我如何才能找到一个新的分区,使这两个分区都适合,从而允许(并优化)某些错误? 例如,忽略该错误,我想要一个执行此操作的算法: 也许有助于用设定的术语表达这一点。使用以下编号: 我可以将上面的分区表示为: A = {{1},{2},{3,4,7,8},{5},{6},{9,10,13,14},{11},{12},{15} ,{16}} B = {{1,2,5,6},{3},{4},{7},{8},{9},{10},{13},{14},{11,15} ,{12,16}} 点B = {{1,2,5,6},{3,4,7,8},{9,10,13,14},{11,15},{12,16}} 并且产生A点B的算法似乎很简单(类似,如果两个元素在A(B)中的分区中合并在一起,则将它们在B(A)中的分区合并-重复直到A和B相等。 但是,现在想象一下,这两个分区之间的某些行略有不同,因此不可能找到完美的答案,而是我希望最佳答案受制于最小化某些错误准则。 举一个新的例子: 在左列,我们有两个没有公共线的分区(除了外部边框本身)。上述唯一可能的解决方案是琐碎的解决方案,即右栏。但是,如果我们允许“模糊”解决方案,那么中间一栏可能是允许的,比如说竞争总面积的5%(即分配给每个粗化分区中的不同子区域)。因此,我们可以将中间列描述为表示“误差小于5%的最小粗略公共分区”。 那么,实际答案是顶部行,中间列还是中间行,中间列中的分区,或者介于两者之间的分区,就不那么重要了。

1
(大圆)路径上的项目位置
我已经在这个SE网站上搜索了好几个小时,但我仍在努力寻找解决问题的方法。我的目标是给定OSM中的一种方式和我的位置(纬度/经度坐标),我想以此方式找到最近的位置(纬度/经度坐标)。该点可以在路线上的任何位置,而不仅限于用于定义路线的点。 所以我在考虑以下算法: 单独的路径分成单独的边,每个边仅连接两个点。 选择最近的边。 将我的位置投射到该边缘。 现在有很多关于计算位置和路径之间距离的问题: WGS指向WGS线段(大圆)的距离 计算一个点与两条经度/纬度的虚拟线之间的距离 如何近似球体上点到线段的距离? 还有一个非常类似的问题,我无法正确计算或验证该计算: 在直线上找到最近的点 Math博士也提供了一些有关该主题的信息。但是,我似乎找不到在第3步中计算位置的算法。由于我已经有一段时间没有接触(矢量)代数了,所以我不太理解这些答案中的逻辑。 有人可以展示一种算法来做到这一点吗?我可以用任何合理的编程语言来解决。

4
使用OpenLayers在日期线上分割线串
几年前,我发布了国际日期变更线,@jdeolive 建议我在dateLine 拆分功能。所以我尝试了。 当我尝试在日期线上使用splitWith拆分卫星轨道时,我回来了null。我知道我的分裂是正确的,因为当我在格林威治线上分裂时,我得到了预期的结果。 有人知道我如何才能使用OpenLayers在日期线上以编程方式正确分割Linestring吗?我寻求示例代码(如果有)。 我已经尝试过了,wrapDateLine但是尽管我的向量层是这样的,但它似乎在向量层上似乎没有作用: vectorLayer = new OpenLayers.Layer.Vector("GroundTracks", { renderers: ['Canvas', 'VML'], wrapDateLine: true}); // <-- shoud be wraping. 这是我的代码: var features = []; var format = new OpenLayers.Format.WKT({ 'internalProjection': map.baseLayer.projection, 'externalProjection': prjGeographic }); var satTrack = format.read("LINESTRING (95.538611 13.286511, 94.730711 16.908947, 93.901095 20.528750, 93.043594 24.145177, 92.150978 27.757436, …

1
天梭椭圆投影的一个示例?
我正在尝试通过天梭(Tissot)指标计算等角投影的变形。我曾尝试上的指示以下这篇文章(除其他事项外),但它超出了我的理解作为一个业余。 因此,我想知道是否有人会为一个等长的经纬度(例如,您最喜欢的并且在等长角投影上变形的那个)计算单个Tissot椭圆。我不完全了解变量是什么以及它们来自何处,因此了解实际的方程式将非常有用。 我试图理解这些方程,以便可以将它们插入正在编写的映射程序中。我在此线程中提出了一些一般性问题,但我认为一个具体的示例将帮助我弄清楚其余的问题。 一如既往,非常感谢。 NCashew

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.