ArcGIS Desktop 또는 QGIS에서 선 shapefile의 각 라인에 대한 시작점과 끝점을 검색합니까?


15

나는 벡터 (폴리 라인) shapefile을 가지고 있으며 각 라인의 시작점과 끝점 (노드)을 검색 하고이 점으로 shapefile을 만들어야합니다. 그런 다음 폴리 라인 속성 테이블에 포인트 ID를 기준으로 각 라인의 시작점과 끝점을 추가해야합니다.

ArcGIS Desktop 또는 QGIS에서 간단한 방법으로 어떻게 할 수 있습니까?


2
ArcGIS에서 고급 라이센스가있는 경우 데이터 관리 도구 상자-> 기능 도구 세트-> 피쳐 정점을 포인트로 도구를 사용하여 양쪽 끝 옵션을 사용할 수 있습니다. 라인의 모든 속성이 유지됩니다. 그러나 원래 선 피쳐 클래스에 필드를 추가하고 해당 값이 포인트에 유지되도록 선에서 피쳐 ID를 계산해야합니다. 라인에 다른 고유 값 필드가있는 경우 도구를 실행 한 후 FID에 가입하고 계산할 수 있습니다. 마지막 옵션은 일대 다 옵션으로 공간 결합을 수행하고 잘못된 속성을 가진 사본을 제거하는 것입니다.
Richard Fairhurst

이것이 귀하의 질문에 대답합니까? "Python / arcpy로 시작점과 끝점 좌표를 어떻게 검색합니까?" gis.stackexchange.com/q/31684/8104
Aaron

비슷한 접근법을 시도했지만 길을 잃었습니다. 다시 해보도록하겠습니다. 가장 좋은 방법은 누구나이 작업을 모두 수행하여 나중에 동일한 절차를 수행 할 수있는 매크로를 만드는 것입니다. 건배!
user51651

@RichardFairhurst 방법, 아마도 대답으로 제안되어야합니다. 그것이 내가 역사적으로 한 방식입니다
bwp8nt

답변:


8

그것은 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를 사용하십시오.


정말 고마워요!이 작업을 완료했을 수도 있지만 프로그래밍 기술이없는 다른 사람들이 작업을 수행 할 수 있도록보다 단순한 (시각적) 무언가를 찾고있었습니다.
user51651

그 명령을 어디에 쓰나요?
blue_chip

명령 행으로 Linux에서는 일반 쉘을 사용하십시오. Windows에서는 명령 창을 사용하지만 환경에 올바른 경로가 있는지 확인하십시오. Osgeo4w 쉘이 자동으로 수행합니다.
user30184


6

QGIS 솔루션 : 필드 계산기에서 xat 및 yat를 사용하여 각각의 인덱스 0 (시작) 및 -1 (끝)을 사용하여 선 벡터 파일의 시작 및 끝 노드 (좌표)를 추출 할 수 있습니다.

xat(0)    
yat(0)
xat(-1)
yat(-1)

5

ArcGIS 솔루션을 위해 선에 점을 만드는 지오 프로세싱 도구를 만들었습니다.

다운로드하여 여기에서 코드를 볼 수 있습니다 : 선에 점 작성

유형에 대해 시작 / 종료 지점을 선택하려고합니다. 각 폴리 라인의 시작점과 끝 점이 포함 된 새 점 피쳐 클래스가 작성됩니다.

출력 점 피처 클래스에는 LineOID라는 필드가 있으며이 필드에는 작성된 폴리 라인의 OID가 기록됩니다. 그렇게하면 속성 데이터를 다시 결합 할 수 있습니다.

다음은 매개 변수 설정 방법의 스크린 샷입니다.

여기에 이미지 설명을 입력하십시오


이것은 위대한 이안입니다! 다운로드하여 테스트하고 최대한 빨리 피드백을 보내 드리겠습니다. 이 도구는 내가 필요로하는 데 유용 할 것이며 프로세스를 더 잘 자동화하는 데 도움이 될 것입니다! 감사합니다!
user51651

안녕하세요 Ian, Idk 이유는 있지만 도구를 ArcGIS 10.0 또는 10.1에서 작동시킬 수 없습니다 ... 도구 상자에 추가했지만 점심 식사는하지 않습니다 ... = /
user51651

@ user51651 오류 메시지가 나타 납니까? 10.0에서는 작동하지 않지만 10.1 이상에서는 작동해야합니다. 지오 프로세싱 메뉴로 이동 한 다음 결과입니다. 거기에 메시지가 있습니까?
ianbroad

3

속성 테이블에 종점 좌표를 추가하기 위해 ArcGIS를 사용하여 필드 계산기를 사용할 수 있습니다 (형상을 만들 필요 없음). 필드 이름, 필드 계산기를 클릭 한 다음 아래 한 줄로 Python 구문을 사용하십시오 (예 : X 좌표).

!shape.firstPoint.X!

!shape.lastPoint.X!

모든 것이 안에 있습니다!


이것은 정말 좋은 대답입니다. 이것이 가능하다는 것을 몰랐습니다. 필드 계산기에서 스냅 샷을 찍으면 작업에 익숙하지 않은 사람들에게 도움이 될 수 있습니다. 나는 당신이 M 값으로 이것을 할 수 있다고 가정합니까?
bwp8nt

2

QGIS에서는 특정 정점 추출 도구를 사용 하십시오 . 설정 버텍스와 indices0 얻을 포인트를 시작하고 -1 엔드 포인트 또는 얻을 -1 0 모두를 얻을 수 있습니다.

QGIS 추출 특정 정점

설명을 참고하십시오.

첫 번째 정점은 인덱스 0에 해당하고 두 번째 정점에는 인덱스 1 등이 있습니다. 음의 인덱스는 형상의 끝에서 정점을 찾는 데 사용할 수 있습니다. 예를 들어 -1의 인덱스는 마지막 정점에 해당합니다. 2는 두 번째 마지막 정점 등에 해당합니다.


1

ArcGIS에서 고급 라이센스가있는 경우 데이터 관리 도구 상자-> 기능 도구 세트-> 피쳐 정점을 포인트로 도구를 사용하여 양쪽 끝 옵션을 사용할 수 있습니다. 라인의 모든 속성이 유지됩니다. 그러나 원래 선 피쳐 클래스에 필드를 추가하고 해당 값이 포인트에 유지되도록 선에서 피쳐 ID를 계산해야합니다. 라인에 다른 고유 값 필드가있는 경우 도구를 실행 한 후 FID에 가입하고 계산할 수 있습니다. 마지막 옵션은 일대 다 옵션으로 공간 결합을 수행하고 잘못된 속성을 가진 사본을 제거하는 것입니다.

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