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


12

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

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

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

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


귀하의 예에서 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.