회선 단순 기능을 토폴로지 네트워크로 변환하는 방법?


12

Gdal / OGR을 사용하면 shp, kml 또는 PostGIS 라인 레이어를 노드 및 세그먼트 네트워크로 변환하여 networkx와 같은 패키지에 사용할 수 있습니까?


2
OGR과 NetworkX는 둘 다 지원한다고 말하지만 GML전자는 Geography Markup Language후자를 의미합니다 Graph Modelling Language.
fmark

답변:



2

GDAL이 지원하는 가져 오기 가능한 그래프 형식형식networkx 목록 에서 볼 때 그러한 변환이 가능한지 의심됩니다.


그것은 엉터리 거래입니다. 그렇다면 어떻게 네트워크 분석을 할 수 있습니까?
dassouki

@dassouki-오픈 소스 프로젝트를 시작하십시오! 그것은 내 목록에 있지만 지금은 내려갑니다. 다른 사람들이 관심이 있다면 이것에 대해 협력 할 수있는 기회를 원합니다.
fmark

@fmark는 이미 transpotools.com을 가지고 있습니다
dassouki

@dassouki-신나는 소리! 프로젝트는 어떤 단계에 있습니까? 홈페이지는 말합니다 TranspoTools Will be here shortly. Google 코드 저장소에 코드가 있습니까? 내가 볼 수있는 모든 것이 비어있었습니다.
fmark

@dassouki-확인하기 위해, 나는 운송 분석 분야에 대해 많이 알지 못하지만 (이 단계에서 GIS 관심은 네트워크 거리를 계산하는 것 이상으로 멀지 않습니다), ogr2networkx유형 도구 에서 협력하게되어 기쁩니다 .
fmark

2

어떤 종류의 네트워크 분석을하고 싶은지 구체적으로 언급하지는 않았지만 라우팅에 관심이 있다면 몇 가지 옵션이 있습니다.

PgRouting http://pgrouting.postlbs.org/ 는 PostGIS의 데이터와 연동하여 라우팅 분석을 수행합니다. 최단 경로 Dijkstra, 최단 경로 A *, 최단 경로 슈팅 스타 및 TPS (traveling salesperson) 알고리즘을 지원합니다. 주행 거리 계산도 수행합니다. PgRouting을 사용하는 예제 앱 목록은 http://pgrouting.postlbs.org/wiki/pgRoutingDemo PgRouting이 Ride the City http://www.ridethecity.com/앱을 구동하는 곳에서 찾을 수 있습니다 .

OpenRouter 프로젝트 http://wiki.osgeo.org/wiki/OpenRouter. 이 프로젝트는 흥미로워 보이지만이 시점에서는 특히 성숙하지는 않습니다.

(인용 된 URL에 대해 사과하지만> 1 URl을 게시하기에 충분한 신뢰가 없습니다 ...)


당신을 위해 +1. 데이터 제한과 현재 postgis를 버리고 있다는 사실 때문에 openstreet 및 postgis 데이터에서 벗어나려고합니다. 우리는 일반적으로 Openstreet보다 훨씬 나은 자체 데이터를 제공하지만 동시에 pgrouting으로 제한하고 싶지 않습니다. 다른 문제는 우리가 pythonic 또는 arcgis 친화적 인 가비지 수집 또는 중국 우편 배달부 또는 여행자 판매원 문제를 구현하고 싶다고 가정 해 봅시다.
dassouki

SpatiaLite를 보셨습니까? 이는 파일 기반 및 플랫폼 독립적 인 OpenSource 공간 데이터베이스를 제공합니다. 사용하지는 않았지만 SpatiaLite < gaia-gis.it/spatialite/spatialite-network-2.3.1.html >
DavidF의

또한 NetworkX를 주목 해 주셔서 감사합니다. 이것은 정말 멋진 파이썬 모듈처럼 보입니다.
DavidF

2

나는 대답이 달려 있다고 생각합니다. 대부분의 GIS 형식에는 인접 정보가 명시 적으로 포함되어 있지 않습니다 (예 : .shp에는 간단한 기능으로 가득 찬 표시기가 없어 두 기능이 공통 엔드 포인트를 공유 함을 나타냅니다). 이는 네트워크에서 직접 읽을 수있는 거래 차단기입니다.

코드를 간략히 살펴보면, scw로 연결된 유틸리티 네트워크 패키지는 엔드 포인트가 비트마다 동일한 경우에만 해당 정보를 다시 발견하는 것처럼 보입니다. 이것은 당신을 포함한 대부분의 요구에 충분할 것입니다! (실제로는 엉망진창이기 때문에 나는 이것에 대해 틀릴 수 있습니다.)

예를 들어, 네트워크에서 두 개의 모서리가 교차하는 새 노드를 만들거나 겹치는 끝점을 약간 다르게 만드는 섭동을 처리하려는 경우보다 강력한 방법을 원한다면 접근 방식을 찾아야합니다. 지오메트리를보다 깊이 검사합니다.

불행히도 잘못된 플랫폼, 언어 및 기하학적 기본 요소 인 다각형에서 네트워크 인접 정보를 복구하기 위해 Boundary Generator 와 비슷한 작업을 수행했습니다 . 그러나 견고성 문제에 접근하는 방법에 대한 통찰력이있을 수 있습니다.


+1 ... 잘못된 플랫폼의 의미가 무엇인지 잘 모르겠습니다. 나는 당신의 설명을 이해하고 있으며, 데이터를 노드와 가중치로 변환 할 수 없다는 것이 정말 불쾌합니다. shp 파일에서 수행하는 프로그램은 TransCAD와 EMME2 / 3
뿐입니다.

"잘못된 플랫폼"이란 방금 경계 생성기가 ArcGIS 환경 용으로 작성되었음을 의미합니다. :) OGR을 사용하려면 약간의 적응이 필요합니다. (다각형의 우연한 가장자리가 아니라 선에서 우연한 끝점을 발견하는 데 필요한 새로운 코드가 많이 필요할 것입니다. 시간이 있으면 다음 버전에 추가 할 수 있습니다. 매우 유용 할 것 같습니다. .)
댄 S.

0

MarineMap 에는 작업에 적합 할 수있는 몇 가지 지장코드 가 있습니다.


cooldesigns.ca에서 ogr2netx ahmed의 목표를 달성하기 위해 이것을 논의 할 수 있습니다.
dassouki
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.