Questions tagged «algorithm»

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

4
寻求算法以最小间距放置约束区域内的最大点数?
我有一个描述约束的多边形层;我希望在这一领域内加点。我想添加尽可能多的点,但是它们之间的距离必须最小。使用GIS可以做到这一点吗? 为了澄清,最好是可以生成有序网格,因为这样可以保证最多的点数。但是,约束很少会允许这样做,因此最好删除点以允许偏移量更好地适合约束。
17 algorithm  point 

3
聚集无向线
我正在寻找一种有效的方法来对线进行聚类,而与线的方向无关。这意味着,纽约和洛杉矶之间的路线应与洛杉矶和纽约之间的另一方向的路线位于同一群集中。起点/终点位置应相似(即,圣地亚哥到长岛的位置应与LA-NY在同一群集中,但旧金山和波士顿可能不在同一位置),并且没有中间点。输入数据将类似于此示例: (通过维基百科,通过日本维基百科GFDL或CC-BY-SA-3.0的仙后座甜蜜) 我以前曾尝试过预先对线进行排序,例如使它们全部从西向东延伸,但是这并不能解决从北向南或以其他方式延伸的线的问题。 您知道有什么算法可以解决这个问题吗?我一直在寻找,但是除了算法来计算无向片段的平均方向外,我还没有发现任何有用的远程帮助,因此我必须使用错误的搜索词。

5
将多边形简化为线串?
我想简化一些将河流表示为线串的多边形。我假设多边形中的孔可以省略。任何人都有一个好主意,如何简单地做到这一点? 如果可以直接在postgis中或通过其他开源工具完成,那将很好,但是简短的算法描述就足够了。

4
从DEM中提取堤坝?
我确实有1x1米的DEM和.las组成的.las中的原始LiDAR点云。我需要提取河堤(堤坝的最高点)到矢量特征(点,折线)。 对算法或现有工具有任何想法吗? 堤防在第一个图像上为浅灰色,下面是堤防示例区域的点云图像。在蓝色的河中心线。 从DEM提取线性特征的任何工具吗? 我相信我需要像ENVI的空间特征提取模块(第7页)之类的东西,但是没有ENVI的部分,因为我负担不起:)

5
聚类轨迹((x,y)点的GPS数据)并挖掘数据
在分析GPS数据集时,我有2个问题。 1)提取轨迹我有一个庞大的数据库,记录着形式的GPS坐标(latitude, longitude, date-time)。根据连续记录的日期时间值,我试图提取此人遵循的所有轨迹/路径。例如; 比方说,时间到了M,结(x,y)对一直在不断变化N。之后N,(x,y)成对的变化减小,此时我得出结论,从时间M到N可以称为轨迹。提取轨迹时遵循的一种体面方法吗?有什么可以建议的知名方法/方法/算法吗?您是否想建议我以有效的方式维护这些观点的数据结构或格式?也许,对于每个轨迹,找出速度和加速度会有用吗? 2)挖掘轨迹一旦我遵循了所有轨迹/采取了路径,如何比较/组合它们?我想知道起点或终点是否相似,那么中间路径如何比较? 如何比较2条路径/路线,并得出结论是否相似。此外; 如何将相似的路径聚集在一起? 如果您能指出我对这件事的研究或类似内容,我将不胜感激。 开发将使用Python,但是欢迎各种库建议。 我正在打开完全相同的问题/programming/4910510/comparing-clustering-trajectories-gps-data-of-xy-points-and-mining-the-data在StackOverflow中。以为我会在这里得到更多答案...

1
检测分支多边形形状?
我有一个包含数百万个多边形的矢量层,可以连续覆盖。我需要根据它们的形状对其进行分类。我已经在使用景观生态学中的几个形状指标,例如紧密度(4piA / P ^ 2),平均宽度(2A / P),形状编号(P / sqrt(A)),我也看到了计算的圆度/紧凑度的答案多边形? 我的问题是所有这些指标都仅使用面积和周长的某种比率。即使是分形维数索引也仅使用面积和周长(2ln(0.25P)/ ln(A))。但是,如何区分两个具有相同面积和周长但形状完全不同的多边形?像这样的分支多边形A: 我试图以与弯曲的条带B相同的面积和周长进行绘制。我所有已知的索引对于它们都将是相同的。但是对我来说,区分简单的条带(包括弯曲的新月形)和复杂的分支形状非常重要。 我有意将多边形B显示为弯曲的条带,而不是直线的条带,因为我知道相关的外接圆索引可以检测到细长的笔直形状,但是我的多边形也可能具有相同的外接圆。即使我构造凸包并计算面积比Apolygon / Aconvex,在这里也可能非常相似。 那么,如何在矢量数据中自动清晰地区分分支多边形A和多边形B?(将它们转换为栅格将需要非常小的像元大小,巨大的数据集和内存不足,因此这是不可能的)。是否有其他形状索引包含其他参数?理想情况下,该方法不仅可以区分清楚分支的多边形,还可以区分C和D: 我唯一的想法是构造凸包,然后从其凸包中删除多边形,并计算它留下的(大)块的数量(逐个多边形而不是整个图层擦除多边形)。这可能表明边界的复杂性。 我欢迎数学解决方案/算法,以后将在Python中实现。

2
有没有找到网络中最长的最短路径的最佳算法?
我有大量的线性网络,我想找到每个网络沿网络彼此距离最远的两端(在下图中,它是D到K)。解决此问题的强力解决方案是为每对起点计算沿网络的最短路径,但是我有数百个网络,其中有数千个端点,因此计算每个可能的路径都非常繁重。 有没有一种在不使用蛮力的情况下进行计算的最佳方法?我可以根据一些聪明的规则排除一些要点吗? 编辑:为了澄清我的问题,我添加了@Alex Tereshenkov提到的最长路径的图示。黑色路径是最长路径算法(最长路径,不重复任何顶点)的结果。以我为例,假设您从任何字母进入网络,并且需要尽可能快地驶向另一个字母。哪两个字母最难加入?

1
匹配不同长度的片段
我正在尝试将较小的段与较大的段进行匹配,这些段最可能与以下段相关:相对紧密,相似的方位并且彼此相对。 这是我拥有的数据的典型示例: 在这里,我需要将段652与198969匹配,而使711和707不匹配任何内容。 我一直在寻找不同的方法,尤其是Hausdorff距离(基于此处的答案)。我使用PostGIS进行了计算,但结果却很奇怪:例如,我得到的最短距离是在707和198985之间,而652到198969的距离要比到198985的距离大(我可以在需要时添加查询和结果)。 Hausdorff实际上是解决此问题的正确方法吗?还有其他方法吗?我想到了简单地对我提到的参数(距离,方位等)创建一组检查的方法,但是我担心不得不添加一大堆条件来处理边缘情况或诸如阈值之类的事情面对对方。 更新:我发现了一种似乎可以接受的折衷方法: 我首先找到了我要匹配的蓝色部分中10个最接近的黑色部分(使用PostGIS <->运算符),它们相距不到10米。 然后,我通过找到每个黑色片段上蓝色片段末端的最近点来创建一个新片段(使用ST_ClosestPoint),并过滤出长度小于蓝色片段90%的结果(这意味着片段不是面,或者轴承差异大于〜20°) 然后,我得到按距离和Hausdorff距离(如果有)排序的第一个结果。 可能需要做一些微调,但目前看来可以接受。如果我错过了一些边缘情况,仍在寻找其他方法或其他检查来运行。

3
计算多边形的圆度/紧密度?
我正在尝试找到定量描述各种多边形形状的方法。在我的项目中,这些多边形代表湖泊,河流,泻湖和公园。因此,它们几乎可以是任何形状。一种简单的度量标准是计算周长与面积的关系,这充其量只是一种稍微有用的度量标准。但是我也非常想能够谈谈多边形的“圆度”。或在地图上如何“压缩”形状。 我可以想到的唯一简便方法是计算每个多边形相对于该多边形(我已经拥有)的边界框的面积。但这似乎是一个糟糕的解决方案。 所以现在我正在考虑这样的事情-以多边形的质心为基础,添加一系列面积增加的缓冲区(例如50%,100%,150%),然后比较每个缓冲区与原始多边形。一个完美的圆在100%处将具有完美的重叠,我可以使用50%和150%的缓冲区来判断每个多边形的差异程度和方式。 但是,即使那样感觉也很麻烦,而且对于其他人可能已经发现更好的解决方案,它就像一个糟糕的解决方法。 作为参考,我至少需要能够查看所得的各种多边形形状的索引,并能够对其来源进行有根据的猜测(河流?树突状水库?湖/泻湖?公园? ?)

8
寻找行人专用的路由引擎
我看到的大多数提供行人路线选择的应用程序都足以满足许多需求,但并不是最佳选择:您不能穿越城镇广场等开放空间,路线位于街道中间等。 您是否有网站或应用程序的示例确实具有行人专用的路由?


10
查找不规则多边形质心(标签点)的算法
我需要在Google地图中找到不规则形状的多边形的质心(或标签点)。我正在显示用于包裹的InfoWindows,并且需要一个锚定InfoWindow的位置,该窗口一定会在表面上。参见下面的图片。 实际上,我不需要任何Google Maps专用的东西,只是在寻找一种如何自动找到这一点的想法。 我的第一个想法是通过取平均经纬度和经度并从那里随机放置点来找到“假”质心,直到找到与多边形相交的点。我已经有了多边形点代码。在我看来,这简直是“骇客”。 我应该注意,我无权访问任何输出几何图形的服务器端代码,因此无法执行ST_PointOnSurface(the_geom)之类的操作。

1
有聪明的旅行推销员吗?
除了笑话,我遇到的路由问题几乎是旅行商问题(TSP): 定义起点 终点与起点重合 每个节点都必须被访问 总成本应降至最低 两年前,我认为TSP将是一个完美的选择,因此我通过tsp_solve和协和式处理了一些示例数据。幸运的是,很快就很明显,TSP最短路径不是真正的最短路径,因为通过不切实际地要求对节点进行一次精确访问就使问题变得更加容易。这张图片只是一步一步地尝试优化计算解决方案,并且已经节省了最长使用边缘的距离。 当我试图找到通往地图/监视站点子集的最佳路由时,问题再次浮出水面。位置和道路网络数据非常准确和精确,因此这样的练习很有意义。 我已经看过TSP的概括,但是没有找到合适的算法。最小的生成树不考虑分支返回(这里的第一个解决方案要多花费3个)。据我了解,最短路径问题最终仅关心两个节点,而那些不在最佳路径中的节点将被忽略。车辆路径问题的一个特例似乎最合适,尽管我不知道它是否考虑非直接路径。 我的问题:是否有解决此问题(家庭)的名称,定义?您将使用什么算法和工具来解决它? 我敢肯定这会占用大量计算资源,但我对常规(无限资源)和实用答案都感兴趣。

4
如何概括海岸线?
我有大量的数据点,它们基本上代表了世界的海岸线。我不知道确切的分辨率,但我会说它在5-10m附近。 想象一组代表锯齿状海岸线的点。在1m分辨率下,我们可以看到所有细节,并且需要50个数据点才能正确表示海岸,但是,在10km分辨率下,海岸看起来像一条直线,我们只需要2个点。 我正在编写一个映射应用程序,它将需要数据从“全行星”分辨率缩放到“街道”分辨率。我需要一些帮助来降低我的数据点的分辨率,以及随后获得更大分辨率的数据量。 我一直在阅读有关Vector-Tiling的信息,并认为这将是最好的解决方案(我已经在做类似的事情了),但是,在低分辨率下,我的数据集仍然很大,这意味着花费[相对]长的时间时间,高分辨率的速度很快,因为“有效”数据集很小(整个子集)。 我试图确定如何获取大型数据集并减小其规模,以使“全行星”视图的图块数据处于可管理的大小。如何从较大的完整数据集创建图块子数据集? 我很高兴使用工具,但我想自己做,以了解它是如何完成的。

2
在Google地图上绘制白天和黑夜
我想在任意时间点在Google地图上绘制白天/黑夜。我熟悉生成地图图块;我只是在寻找一种算法来告诉我地球上的某个特定点当前处于白天还是黑夜,或者以其他方式将日/夜界面的曲线绘制到地图上。 我已经进行了一些搜索,但是可能我对这里的问题域甚至还不了解,无法知道要搜索的术语! 有任何想法吗?不一定是完美的-基本上,我正在将日出和日落照片的Flickr地理位置数据(及其“拍摄日期”时间戳)与现实进行比较,这是为了帮助我对其进行可视化。

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.