지도에서 "터미널"도시 찾기


13

끝 이있는 마을 / 도시를 찾고 싶습니다 . 즉, 나는 X 킬로미터 떨어진 최대 한 마을에 연결된이 마을이 필요합니다 .

이 알고리즘이 어떻게 호출되는지 궁금합니다 (이전에 누군가 비슷한 것을 만든 것 같습니다).

이를위한 도구가 있습니까? 이 개념을 어떻게 부릅니까?

예 :

 City ------------ Village 1 ------- Village 2 ------ Village 3 - - - [ Mountain]
                    \                 \                                \
                     Village 4         |                                Road
                     |                  \                            in mountains
                     Village 5----------Village6---------Village7 - - - - -  

만큼 산 도로 이상 Xkm보다, Village 3그리고 Village 7내게로 간주 될 수 단말기 가 (각각 V2, V6) 하나 개의 마을로 연결되어 있기 때문에.

그렇지 않으면 열린 데이터로 하나를 만들고 싶습니다.


내가 시도한 것 :

내 국가 (루마니아)의 OSM 데이터를 다운로드하고 마을과 도시를 데이터베이스로 가져옵니다. 데이터베이스에서 위치 정보 기능을 사용하여 나는보다가없는 마을을 찾을 수있어 X의 의 반경 마을 R의 킬로미터.

그러나이 경우에는 위의 예와 같이 마을이 산의 반대편에있을 수 있기 때문에이 경우에는 해결책이 아니지만 좋은 방법은 없습니다 (또는 전혀 방법이 없습니다).


3
개념은 연결성이며, 그래프 이론에서 '노드'가 갖는 '에지'수로 표시됩니다. 무게 임계 값 이상으로 가장자리를 걸러 낸 후 한쪽 가장자리가있는 노드를 찾고 있습니다. 실제 솔루션은 사용중인 도구, 언어 또는 소프트웨어에 따라 다릅니다.
— RoperMaps

@RoperMaps 아직 도구를 설정하지 않았지만 일반적으로 묻습니다 (그리고 누군가가 전에 이와 같은 것을 만든 경우). 나는 이것을 확장하여 점수 (노드가 가지고있는 X보다 몇 가지 짧은 길이)를 제공합니다. 점수가 클수록 더 많이 연결됩니다 (그리고 더 적은 터미널 ). 내가 그것을 빌드한다면 아마도 Node.js를 사용하여 일부 그래프를 파싱하지만 다른 누군가가 전에 그것을했는지 궁금해 할 것입니다. : D
— Ionică Bizău

@RoperMaps 나는 이것을 위해 OSM을 사용할 수 있다고 생각하지만, 그것이 매우 어렵다는 것을 알게됩니다 (예 : 노드를 연결하는 방법이 있지만이 노드는 단지 도시가 아닌 점입니다). 그래프 에서 리프 를 찾 거나 내 경우에 좀 더 확장 된 알고리즘을 작성할 수는 있지만 OSM 데이터를 사용하는 방법을 잘 모르겠습니다 (또는 OSM보다 쉬운 방법이 있습니까?).
— Ionică Bizău

어떤 소프트웨어를 사용하고 있습니까? 실제 거리 나 조류 비행 거리에서 일하십니까?
— radouxju

@radouxju 첫 번째 작업 프로토 타입은 조류 비행 거리 (좌표를 기준으로 한 반경)였습니다. 다시 시작이긴하지만 제가 원하는 것이 아닙니다. Node.js에서 MongoDB를 사용하여 스크립트를 작성했습니다. 나는 실제 거리를 선호합니다. 예를 들어 언덕 위의 도로가없는 언덕으로 분리 된 두 마을이 있다면, 그들 사이의 거리는 가장 짧은 도로가됩니다.
— Ionică Bizău

답변:


2

하나의 피처 만 끝 / 터미널 포인트를 반환하는 경우 (도로 fc에서) 지오메트리를 선택하는 각 끝 / 터미널 포인트 버퍼의 좌표를 검색하는 선 지오메트리를 단계별로 수행 해야하는 것으로 보입니다. 하나는 아니고 반복됩니다. 이것이 의미가 있기를 바랍니다 ...


글쎄, 어떻게 그렇게?
— Ionică Bizău

Modelbuilder를 사용하여 파이썬으로 내보낼 수 있습니다. ArcObjects는 또 다른 경로이지만 더 복잡합니다. 이전에 Modelbuilder를 사용해 본 적이 있습니까?
— user17260

"touches"옵션으로 공간을 선택하면 시작할 수 있습니다. 선택 세트를 접촉하지 않는 선택 세트로 반전하면 원래 선택 세트를 좁힐 수 있습니다.
— user17260

Modelbuilder를 사용하지 않았습니다. OSM 데이터와의 첫 상호 작용이므로 단계별 답변이 필요합니다. : D 그것에 대한 자습서를 찾기조차 매우 어렵습니다.
— Ionică Bizău

와우, 그것은 큰 요청입니다. ArcMap의 ArcInfo 라이센스에 액세스 할 수 있습니까?
— user17260

2

Graphab 또는 Conefor 와 같은 가로 연결을 계산하기위한 소프트웨어와 QGIS 를 사용하여이를 달성 할 수 있습니다 . 예를 들면 다음과 같습니다.

  • 끌어서 놓거나 OpenStreetMap 플러그인을 사용하여 OSM 데이터를 QGIS로 가져옵니다.
  • 데이터를 모양으로 저장 (오른쪽 클릭)
  • 여기에 설명 된대로 Conefor 플러그인을 사용하여 노드 및 연결 파일을 생성 하십시오.
  • Conefor를 사용하여 각 노드 및 링크의 중요도를 계산하십시오. "엔드 노드"는 연결에 중요하지 않습니다. BC (IIC) 메트릭을 사용할 수 있다고 생각합니다. "특정 노드를 통과하는 모든 패치 쌍 사이의 최단 경로 수 (...) [및]의 길이 (링크 수)를 고려하기 때문입니다. 특정 노드가 관련된 패치 사이의 경로 " ( 여기 참조 )

나는 이것을 테스트 할 수 없었습니다-불행히도 지금 충분한 시간이 없습니다. 그러나 약간의 조정이 열려 있으면 작동 할 수 있다고 생각합니다. 예를 들어, 수동으로 (너무 많지 않은 경우) 또는 지오 프로세싱 기능과 장애물이 포함 된 모양을 사용하여 장애물의 양쪽 (산 등)에있는 두 개의 노드를 연결하는 링크를 제거해야합니다. .


감사합니다! 곧 시도합니다. [그리고] 길이 (링크 수) — 거리를 킬로미터 단위로 알려줍니다 (그렇지 않은 경우 어떻게 얻을 수 있습니까?)?
— Ionică Bizău

점 사이의 거리를 확보하기 위해 QGIS 이외의 다른 소프트웨어를 사용하지 않아도됩니다. 예를 들어 여기 와 여기 를 참조 하십시오 . 사용되는 거리 단위는 레이어 좌표계에 따라 다릅니다.
— Mefimefi

또한 가로 연결에 중점을 둔 도구에 대한 자세한 정보가 필요하면 이 Researchgate 토론
— Mefimefi

QGIS가 약간 버그가 있음을 발견했지만 (적어도 맥북에서는) 마지막 링크는 유용합니다. 답변도 확인합니다. 감사!
— Ionică Bizău

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.