선 모양 파일을 노드와 링크가있는 CSV로 변환하는 방법은 무엇입니까?


12

선형 모양 파일을 다음 형식의 CSV 파일로 변환하는 방법이 있습니까?

Node_1, Node_2, attribute_1, ...., attribute_x
     1       2       "hello"        567845.334

GDAL / OGR2OGRPostGIS를 살펴 보았고 데이터를 원하는 형식으로 변환하지 않는다고 생각합니다.

올바른 방향으로 안내하면 스크립트를 작성하여 신경 쓰지 않습니다.


귀하의 예에서 Node_1, Node_2는 기능의 실제 좌표입니다. 예를 들어, 실제로 shapefile에서 토폴로지를 내보내고 싶다고 가정합니다. Node_1과 마찬가지로 FNODE, Node_2는 TNODE, 형상은 한 번만 저장됩니다. 그렇다면 대답이 매우 다르므로 토폴로지를 빌드하려면 OGR 이외의 항목이 필요합니다.
Ragi Yaser Burhum

@ rburhum 고전적인 네트워크 알고리즘으로 테이블을 구현하고 싶습니다. 형식은 일반적으로 노드 1에서 노드 2로 X의 비용입니다
dassouki

답변:


8

OGR (OGR2OGR)에 포함 된 유틸리티 프로그램 은이를 직접 수행하지는 않지만 OGR을 사용하여이 작업을 수행하는 것은 매우 쉽습니다.

OGR에서 지원하는 언어로 스크립트 / 프로그램을 작성해야합니다. shapefile을 열고 각 피처를 읽고 점 + 데이터를 CSV 형식으로 쓰도록 할 수 있습니다.

Wiki샘플 C ++ 코드는 실제로 이에 필요한 거의 모든 OGR API 호출을 보여줍니다.


신속한 답변에 감사드립니다. SHP에서 CSV 파일로 출력되는 gdal.org/ogr/ogr%5Fapitut.html 첫 번째 파이썬 예제를 보고 있습니다. 이 예제는 포인트 레이어에 대해 수행되었습니다. 라인 레이어에 대해 변환 할 때 중요한 차이점이 있습니까? 노드 이름의 형식은 무엇입니까? 숫자입니까? 모든 노드 이름이 포함 된 다른 포인트 레이어에 연결할 수 있습니까?
dassouki

라인에서 기능은 ogr.wkbPoint 대신 ogr.wkbLine이됩니다. feature.GetFieldAsString (col)을 사용하여 이름을 문자열로 반환 할 수 있습니다. OGR에서 직접 "연결"을 처리 할 수있는 방법이 없으므로 다른 데이터 테이블을 열고 직접 검색하거나 GIS에서 이름을 복사해야합니다.
Reed Copsey

말이 되네요. 글쎄, 나는 그것을 시도하고 내가 어떻게 만드는 방법에 대한 업데이트를 유지합니다. 나는이 모든 것을하고 있으므로 라인 레이어에서 네트워크 분석을 수행 할 수 있습니다.
dassouki
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.