查找沿河的点之间的距离(线性参考)


10

我是gis的新手,并为此感到震惊。我有一个由小线串(折线)组成的河流网络。在不同的shapefile中,我在河上有几个工作站的位置。我需要找到从每个车站到河尾的沿河距离。

问题是我没有一条完整的河线。而且没有通用属性可以用来合并或合并线串。另外,一些车站在支流上。

在此处输入图片说明

因此,最重要的是,我需要建立包括支流的大型河流网络并执行班轮参考。但是我不知道该怎么做。任何帮助深表感谢。请尽可能清楚地说明。

如果您需要更多信息,请发表评论。


3
您正在使用什么软件平台?
TheSteve0 2011年

我尝试了arcmap arcinfo。但这压倒了有关线性引用的信息。然后我转到了pgRouting和QGIS。仍在挣扎。
Naresh

您可以访问ArcGIS Network Analyst扩展程序吗?我认为有可能使用您的河流来建立网络数据集,然后找到最短的距离确实很容易。
radek

Answers:


2

我会同意威尔。您的主要问题是定义每条折线的原点。什么是“河流”?我将假设支流是从支流的0->​​长度开始的独立“路线”。然后,对于主要河流,我将保持不变,但是在这种情况下,我将从所有组成的折线创建一条合并的折线。我认为一旦有了,您就“几乎”在那里。然后:将所有合并的折线转换为测量的折线(PolylineM)-包括支路。然后,您便有了“路由网络”。从那时起,只需找到沿每个路线的路线的距离即可。我想测站位置是在XY中定义的?还有-另一个猜测-他们没有完全落在河顶,他们吗?无论如何,您都将需要一种方法来找到车站从每条河流或三分之三开始处的距离。从理论上讲,如果一个站位于河流和支流的交汇处,则它可能有两个位置(每个位置一个)。

要找到此位置,您可以使用ArcMap工具,但是已经有一段时间没有使用它们了,所以记不起我的头了。另一方面,如果将shapefile(?)导入PostGIS,则可以使用ST_Line_Locate_Point。该功能:

返回介于0和1之间的浮点数,表示LineString上与给定Point点最近的点的位置,以总2d线长的一部分表示。

这意味着您可以找到沿河的位置乘以(合并的)河段长度。最后说明-如果您使用PostGIS,则不必执行创建PolylineM的步骤,仅ArcGIS要求使用它进行线性参考。

希望这有道理!


我的车站正好在支流或河流上。愚蠢的事情是,没有一条大河,只有一小部分线。我可以看到一条大河bt,数据本身没有任何共同的属性可以构成一条大河。另外,我有度数的坐标,所以当我在arcmap中创建路线时,我得到的度数是度数吗?我认为那没有道理。我必须将wgs84的坐标转换为其他投影。是的,我在PostGIS中导入了shapefile。
Naresh

1

从我同样的问题来看,

如何沿给定距离沿线创建点

以下有用的链接出现了。
grass.osgeo.org/gdp/html_grass63/lrs.html
wiki.faunalia.it/dokuwiki/doku.php/qgis/lrs

我不会因为缺乏努力而完成任务。我相信您将遇到的乏味正在提名每条折线的来源。


2
我取得了一些进展。我可以使用pGrouting找到最短路径,但是我需要更新“节点”。现在,我在postgresql中创建一个节点表,并使用该表创建一个我要灌输的网络。但是我需要在表中添加不在终端节点处的自定义节点。愚蠢的方法是在站点处分割折线,使其自动成为节点。还在工作。请尽快更新。
Naresh
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.