나는 벡터 (폴리 라인) shapefile을 가지고 있으며 각 라인의 시작점과 끝점 (노드)을 검색 하고이 점으로 shapefile을 만들어야합니다. 그런 다음 폴리 라인 속성 테이블에 포인트 ID를 기준으로 각 라인의 시작점과 끝점을 추가해야합니다.
ArcGIS Desktop 또는 QGIS에서 간단한 방법으로 어떻게 할 수 있습니까?
나는 벡터 (폴리 라인) shapefile을 가지고 있으며 각 라인의 시작점과 끝점 (노드)을 검색 하고이 점으로 shapefile을 만들어야합니다. 그런 다음 폴리 라인 속성 테이블에 포인트 ID를 기준으로 각 라인의 시작점과 끝점을 추가해야합니다.
ArcGIS Desktop 또는 QGIS에서 간단한 방법으로 어떻게 할 수 있습니까?
답변:
그것은 GDAL을위한 하나의 라이너입니다. 이 명령은 선택된 속성으로 시작 노드에서 shapefile을 작성합니다.
ogr2ogr -f "ESRI Shapefile" -dialect sqlite output.shp -sql "select ST_StartPoint(geometry), attribute_1, attribute_2, attribute_3 from input" input.shp
엔드 포인트에 ST_EndPoint를 사용하십시오.
QGIS 플러그인 "라인을 따라 포인트 찾기"가 있습니다. 시작 및 끝점을 파생 시키려면 끝점 추가를 선택하고 가장 긴 줄보다 긴 간격을 사용 하십시오.
ArcGIS 솔루션을 위해 선에 점을 만드는 지오 프로세싱 도구를 만들었습니다.
다운로드하여 여기에서 코드를 볼 수 있습니다 : 선에 점 작성
유형에 대해 시작 / 종료 지점을 선택하려고합니다. 각 폴리 라인의 시작점과 끝 점이 포함 된 새 점 피쳐 클래스가 작성됩니다.
출력 점 피처 클래스에는 LineOID라는 필드가 있으며이 필드에는 작성된 폴리 라인의 OID가 기록됩니다. 그렇게하면 속성 데이터를 다시 결합 할 수 있습니다.
다음은 매개 변수 설정 방법의 스크린 샷입니다.
속성 테이블에 종점 좌표를 추가하기 위해 ArcGIS를 사용하여 필드 계산기를 사용할 수 있습니다 (형상을 만들 필요 없음). 필드 이름, 필드 계산기를 클릭 한 다음 아래 한 줄로 Python 구문을 사용하십시오 (예 : X 좌표).
!shape.firstPoint.X!
!shape.lastPoint.X!
모든 것이 안에 있습니다!
ArcGIS에서 고급 라이센스가있는 경우 데이터 관리 도구 상자-> 기능 도구 세트-> 피쳐 정점을 포인트로 도구를 사용하여 양쪽 끝 옵션을 사용할 수 있습니다. 라인의 모든 속성이 유지됩니다. 그러나 원래 선 피쳐 클래스에 필드를 추가하고 해당 값이 포인트에 유지되도록 선에서 피쳐 ID를 계산해야합니다. 라인에 다른 고유 값 필드가있는 경우 도구를 실행 한 후 FID에 가입하고 계산할 수 있습니다. 마지막 옵션은 일대 다 옵션으로 공간 결합을 수행하고 잘못된 속성을 가진 사본을 제거하는 것입니다.