ฉันพบคำถามนี้พยายามทำสิ่งที่ฉันคิดว่าเป็นสิ่งเดียวกัน ฉันต้องการมันทั้งหมดทำผ่าน arcpy การใช้การอ้างอิงเชิงเส้นไม่สมเหตุสมผลสำหรับฉันเพราะฉันยังไม่มีเหตุการณ์ในจุด (และฉันไม่สามารถหาวิธีใช้ LR เพื่อให้ได้มา) ปมของสิ่งที่ฉันใช้คือ
line = arcpy.Polyline(arrayPts)
pt = line.positionAlongLine (0.99, 'True')
สิ่งนี้ต้องใช้ Arc 10.1 หรือสูงกว่า; ฉันไม่สามารถทราบได้ว่าสิ่งนี้มีให้ต่ำกว่าระดับสิทธิ์ใช้งาน ArcInfo ที่ฉันมีหรือไม่ (ระบุ OPView ArcView)
ในตัวอย่างด้านบนของฉันฉันต้องการจุดที่ไม่ได้อยู่ที่ระยะทางคงที่ แต่โดยเปอร์เซ็นต์ของความยาวบรรทัดโดยรวม positionAlongLine
การทำเช่นนี้ผมจัดมาอาร์กิวเมนต์ตัวเลือกที่สองที่จะ คุณข้ามอาร์กิวเมนต์ที่สองหากคุณต้องการระบุระยะห่างที่แน่นอน นี่คือเอกสาร
ตัวอย่างโค้ดแบบเต็มคือ
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 (ขอบคุณ Curtis เพื่อนร่วมงานของฉันสำหรับส่วนนั้น!) เคยทดลอง w / Append_management
แต่มันช้าไปหน่อย