나는이 질문이 내가 생각하는 것과 똑같은 일을하려고한다는 것을 알았습니다. 나는 모든 것을 arcpy를 통해 끝내기를 원했습니다. 포인트 이벤트가 없기 때문에 선형 참조를 사용하는 것이 의미가 없었습니다 (LR을 사용하여 가져 오는 방법을 알 수 없었습니다). 내가 사용한 결과의 핵심은
line = arcpy.Polyline(arrayPts)
pt = line.positionAlongLine (0.99, 'True')
이를 위해서는 Arc 10.1 이상이 필요합니다. 이것이 내가 보유한 ArcInfo 라이센스 수준 (OP 지정 ArcView) 이하에서 사용 가능한지 여부를 파악할 수 없었습니다.
위의 예에서 고정 거리가 아닌 전체 선 길이의 백분율로 포인트를 원했습니다. 이를 위해 두 번째 선택적 인수를에 제공했습니다 positionAlongLine
. 절대 거리 만 지정하려면 두 번째 인수를 건너 뜁니다. doc이 있습니다.
풀러 코드 샘플은
import numpy
ptsList = list()
id = 0
with arcpy.da.SearchCursor('flFL', ["SHAPE@"]) as cursor:
for row in cursor:
arrayPts = row[0].getPart()
line = arcpy.Polyline(arrayPts)
pt = line.positionAlongLine (0.99, 'True')
ptsList.append((id, (pt.getPart().X, pt.getPart().Y)))
id += 1
array = numpy.array([ptsList], \
numpy.dtype([('idfield',numpy.int32),('XY', '<f8', 2)]))
SR = arcpy.Describe("flFL").spatialReference
arcpy.da.NumPyArrayToFeatureClass(array, 'nsegSamplePts', ['XY'], SR)
'flFL'
포인트를 찾을 선의 특징 레이어입니다. 꽤 빠르게 실행됩니다. NumPyArrayToFeatureClass
내 모든 포인트를 featureClass로 되돌릴 수있는 아주 좋은 방법이었습니다 (동료 커티스에게 감사드립니다!). w / 실험하고 Append_management
있었지만 그것은 조금 느립니다.