강을 따라 점 사이의 거리 찾기 (선형 참조)


10

나는 gis를 처음 접했고 충격을 받았다. 작은 선 줄 (폴리 라인)로 구성된 강 네트워크가 있습니다. 다른 shapefile에서 강에 여러 스테이션의 위치가 있습니다. 각 역에서 강 끝까지 강을 따라 거리를 찾아야합니다.

문제는 완전한 강줄이 하나도 없다는 것입니다. 그리고 줄 문자열을 통합하거나 병합하는 데 사용할 수있는 공통 속성이 없습니다. 또한 일부 방송국은 지류에 있습니다.

여기에 이미지 설명을 입력하십시오

결론은 지류를 포함하여 넓은 하천 네트워크를 만들고 라이너 참조를 수행해야한다는 것입니다. 그러나 나는 이것을하는 법을 모른다. 도움을 주시면 감사하겠습니다. 가능한 한 명확하게 설명하십시오.

더 자세한 정보가 필요하면 의견을 말하십시오.


3
어떤 소프트웨어 플랫폼을 사용하고 있습니까?
TheSteve0

나는 arcmap arcinfo 시도했다. 그러나 선형 참조에 대한 정보를 지나치게 비난했습니다. 그런 다음 pgRouting 및 QGIS로 옮겼습니다. 여전히 고군분투.
Naresh

ArcGIS Network Analyst 확장 프로그램에 액세스 할 수 있습니까? 나는 당신의 강을 사용하여 네트워크 데이터 세트를 구축하는 것이 가능할 것이라고 생각합니다.
radek

답변:


2

BWill에 동의합니다. 주요 문제는 각 폴리 라인의 원점을 정의하는 것입니다. '강'은 무엇입니까? I는 지류가 지류의 0-> 길이에서 시작하는 독립형 "경로"라고 가정합니다. 그런 다음 주 강에도 동일하게 적용되지만이 경우 모든 구성 폴리 라인에서 병합 된 폴리 라인을 만듭니다. 일단 당신이 '거의'거기에 있다고 생각합니다. 그런 다음 : 병합 된 모든 폴리 라인을 지류를 포함하여 측정 된 폴리 라인 (PolylineM)으로 변환합니다. 그런 다음 '라우트 네트워크'가 있습니다. 그때부터 각 역의 경로를 따라 거리를 찾는 문제가 있습니다. 스테이션 위치가 XY로 정의되어 있다고 생각합니까? 또 다른 추측으로는 강 위에 정확히 떨어지지 않습니다. 그들은 할? 어쨌든 각 강 또는 지류의 시작에서 역의 거리를 찾는 방법이 필요합니다. 이론적으로 스테이션이 강과 지류의 교차점에있는 경우 2 개의 위치 (각각 1 개)를 가질 수 있습니다.

이 위치를 찾으려면 ArcMap 도구를 사용할 수 있지만 한동안 사용하지 않았으므로 내 머리 꼭대기를 기억할 수 없습니다. 반면 shapefile (?)을 PostGIS로 가져 오면 ST_Line_Locate_Point를 사용할 수 있습니다 . 이 기능 :

LineString에서 주어진 Point에 가장 가까운 점의 위치를 ​​나타내는 0과 1 사이의 부동 소수점을 총 2d 선 길이의 일부로 반환합니다.

그러면 강을 따라 위치를 찾은 것과 강의 길이를 곱한 것을 찾을 수 있습니다. 마지막 참고 사항-PostGIS를 사용하는 경우 PolylineM을 만드는 단계를 거치지 않아도됩니다. ArcGIS 만 선형 참조를 위해 필요합니다.

이것이 의미가 있기를 바랍니다!


내 방송국은 지류 나 강에 있습니다. 어리석은 것은 큰 강이없고 작은 선분 만 있다는 것입니다. 데이터 자체가 강을 가득 채울 수있는 공통 속성이없는 큰 강을 볼 수 있습니다. 또한 좌표가도이므로 아크 맵으로 경로를 만들 때 길이가도 단위로 표시됩니까? 나는 그것이 이해가되지 않는다고 생각합니다. 좌표를 wgs84에서 다른 투영으로 변환해야합니다. 그리고 네, PostGIS에서 shapefile을 가져 왔습니다.
Naresh

1

같은 성질에 대한 나의 질문에서

주어진 거리를 따라 선을 따라 점을 만드는 방법

다음과 같은 유용한 링크가 나타났습니다.
grass.osgeo.org/gdp/html_grass63/lrs.html
wiki.faunalia.it/dokuwiki/doku.php/qgis/lrs

노력 부족으로 내 임무를 완수하지는 않습니다. 나는 당신이 경험할 테디 움이 각 폴리 라인의 기원을 지명하고 있다고 생각합니다.


2
나는 약간의 발전을 이루었다. pGrouting을 사용하여 최단 경로를 찾을 수 있지만 "노드"를 업데이트해야합니다. 지금은 postgresql에서 노드 테이블을 만들고이를 사용하여 pgrouting에 공급하는 네트워크를 만듭니다. 그러나 최종 노드가 아닌 테이블에 사용자 정의 노드를 추가해야합니다. 여전히 작동합니다. 곧 업데이트하십시오.
Naresh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.