กำลังเรียกจุดเริ่มต้นและจุดสิ้นสุดของแต่ละบรรทัดในไฟล์ shapefile ใน ArcGIS Desktop หรือ QGIS?


15

ฉันมี shapefile แบบเวกเตอร์ (polyline) และฉันจำเป็นต้องดึงจุดเริ่มต้นและจุดสิ้นสุดของแต่ละบรรทัด (โหนด) และสร้าง shapefile ด้วยจุดเหล่านี้ จากนั้นฉันต้องเพิ่มตารางแอตทริบิวต์ polyline ของจุดเริ่มต้นและจุดสิ้นสุดสำหรับแต่ละบรรทัดตามในรหัสคะแนน

ฉันจะทำเช่นนั้นด้วยวิธีง่ายๆใน ArcGIS Desktop หรือ QGIS ได้อย่างไร


2
ใน ArcGIS หากคุณมีสิทธิ์ใช้งานขั้นสูงคุณสามารถใช้เครื่องมือการจัดการข้อมูล -> คุณลักษณะชุดเครื่องมือ -> คุณสมบัติยอดจุดเครื่องมือชี้ด้วยตัวเลือกปลายทั้งสอง คุณลักษณะทั้งหมดของบรรทัดจะถูกเก็บไว้ อย่างไรก็ตามคุณจะต้องเพิ่มเขตข้อมูลลงในคลาสคุณลักษณะบรรทัดดั้งเดิมของคุณและคำนวณ ID คุณลักษณะในบรรทัดของคุณเพื่อให้ค่านั้นคงอยู่ในตำแหน่ง หากคุณมีเขตข้อมูลค่าที่ไม่ซ้ำกันในบรรทัดของคุณคุณสามารถเข้าร่วมและคำนวณ FID หลังจากใช้เครื่องมือ ตัวเลือกสุดท้ายจะเกี่ยวข้องกับการทำ Spatial Join ด้วยตัวเลือก One To Many และลบสำเนาที่มีคุณลักษณะที่ไม่ดี
Richard Fairhurst

คำถามนี้ตอบคำถามของคุณหรือไม่? "ฉันจะดึงพิกัดเริ่มต้นและจุดสิ้นสุดด้วย Python / arcpy ได้อย่างไร" gis.stackexchange.com/q/31684/8104
แอรอน

ฉันลองใช้วิธีที่คล้ายกัน แต่หลงทางไป ฉันจะลองทำซ้ำ สิ่งที่ดีที่สุดคือการสร้างมาโครที่ทำงานทั้งหมดนี้เพื่อให้ทุกคนสามารถทำขั้นตอนเดียวกันหลังจากนั้น ไชโย!
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 ปลั๊กอิน"ค้นหาจุดตามเส้น" หากต้องการรับจุดเริ่มต้นและจุดสิ้นสุดให้เลือกเพิ่มจุดปลายทางโดยใช้ช่วงเวลาที่ยาวกว่าเส้นที่ยาวที่สุดของคุณ


6

วิธีการแก้ปัญหา QGIS: มันเป็นไปได้ที่จะสกัดโหนดเริ่มต้นและสิ้นสุด (พิกัด) ของไฟล์เวกเตอร์บรรทัดเพียงแค่ใช้ xat และ yat ในเครื่องคิดเลขฟิลด์โดยมีดัชนี 0 (เริ่ม) และ -1 (สิ้นสุด)

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

5

สำหรับวิธีการแก้ปัญหา ArcGIS ฉันได้ทำเครื่องมือการประมวลผลทางภูมิศาสตร์ที่สร้างคะแนนในบรรทัด

คุณสามารถดาวน์โหลดและดูรหัสได้ที่นี่: สร้างคะแนนบนเส้น

สำหรับประเภทคุณจะต้องเลือกจุดเริ่มต้น / สิ้นสุด สิ่งนี้จะสร้างคลาสคุณลักษณะจุดใหม่ที่มีจุดเริ่มต้นและจุดสิ้นสุดสำหรับแต่ละเส้น

คลาสคุณลักษณะจุดส่งออกจะมีเขตข้อมูลที่เรียกว่า LineOID ซึ่งบันทึก OID ของ polyline ที่สร้างขึ้น ด้วยวิธีนี้คุณสามารถเข้าร่วมข้อมูลแอตทริบิวต์ของคุณได้

นี่คือภาพหน้าจอของวิธีการตั้งค่าพารามิเตอร์:

ป้อนคำอธิบายรูปภาพที่นี่


นี่คือเอียนที่ยอดเยี่ยม! ฉันจะดาวน์โหลดและทดสอบและให้ข้อเสนอแนะแก่คุณโดยเร็ว ฉันคิดว่าเครื่องมือนี้มีประโยชน์สำหรับสิ่งที่ฉันต้องการและจะช่วยให้กระบวนการอัตโนมัติดีขึ้น! ขอขอบคุณ!
user51651

สวัสดีเอียน Idk ทำไม แต่ฉันไม่สามารถรับเครื่องมือของคุณเพื่อทำงานใน ArcGIS 10.0 หรือ 10.1 ... ฉันเพิ่มลงในกล่องเครื่องมือ แต่มันไม่ได้เป็นอาหารกลางวัน ... = /
user51651

@ user51651 คุณได้รับข้อความแสดงข้อผิดพลาดหรือไม่? มันใช้งานไม่ได้กับ 10.0 แต่มันควรใช้กับ 10.1 ขึ้นไป หากคุณไปที่เมนูการประมวลผลแล้วผลลัพธ์ มีข้อความอะไรบ้างไหม?
ianbroad

3

สำหรับการเพิ่มพิกัดของจุดสิ้นสุดในตารางแอตทริบิวต์โดยใช้ ArcGIS คุณสามารถใช้เครื่องคำนวณภาคสนาม (ไม่จำเป็นต้องสร้างรูปทรงเรขาคณิต) คลิกที่ชื่อฟิลด์เครื่องคิดเลขฟิลด์จากนั้นใช้ไวยากรณ์ Python ที่มีบรรทัดเดียวด้านล่าง (ตัวอย่างที่มีพิกัด X):

!shape.firstPoint.X!

!shape.lastPoint.X!

ทราบว่าทุกอย่างอยู่ในนั้น !!


นี่เป็นคำตอบที่ดีจริงๆฉันไม่รู้ว่ามันเป็นไปได้ ภาพรวมของมันใน Field Calculator อาจช่วยให้คนที่ไม่คุ้นเคยกับงาน ฉันคิดว่าคุณสามารถทำได้ด้วยค่า M เช่นกัน?
bwp8nt

2

ใน QGIS ใช้เครื่องมือดึงข้อมูล Vertices เฉพาะ ตั้งค่าดัชนีจุดสุดยอดเป็น0เพื่อรับจุดเริ่มต้นและ-1เพื่อรับจุดสิ้นสุดหรือ0, -1เพื่อรับทั้งสองจุด

QGIS แยกจุดเฉพาะ

บันทึกคำอธิบาย:

จุดสุดยอดแรกสอดคล้องกับดัชนี 0 จุดสุดยอดที่สองมีดัชนี 1 ฯลฯ ดัชนีลบสามารถใช้ในการค้นหาจุดยอดที่จุดสิ้นสุดของรูปทรงเรขาคณิตเช่นดัชนี -1 สอดคล้องกับจุดสุดสุดท้าย - 2 สอดคล้องกับจุดสุดยอดครั้งที่สอง ฯลฯ


1

ใน ArcGIS หากคุณมีสิทธิ์ใช้งานขั้นสูงคุณสามารถใช้เครื่องมือการจัดการข้อมูล -> คุณลักษณะชุดเครื่องมือ -> คุณสมบัติยอดจุดเครื่องมือชี้ด้วยตัวเลือกปลายทั้งสอง คุณลักษณะทั้งหมดของบรรทัดจะถูกเก็บไว้ อย่างไรก็ตามคุณจะต้องเพิ่มเขตข้อมูลลงในคลาสคุณลักษณะบรรทัดดั้งเดิมของคุณและคำนวณ ID คุณลักษณะในบรรทัดของคุณเพื่อให้ค่านั้นคงอยู่ในตำแหน่ง หากคุณมีเขตข้อมูลค่าที่ไม่ซ้ำกันในบรรทัดของคุณคุณสามารถเข้าร่วมและคำนวณ FID หลังจากใช้เครื่องมือ ตัวเลือกสุดท้ายจะเกี่ยวข้องกับการทำ Spatial Join กับตัวเลือก One To Many และลบสำเนาที่มีคุณลักษณะที่ไม่ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.