วิธีการแยกพื้นที่เล็ก ๆ จากฟีด GTFS ขนาดใหญ่?


11

มีเครื่องมือที่สนับสนุนการแยกส่วนเล็ก ๆ จากฟีด GTFS ที่ใหญ่กว่าหรือไม่? ไลบรารี Transitfeedของ Google มีเครื่องมือผสาน แต่ไม่มีเครื่องมือแยก / คลิปเท่าที่ฉันเห็น ห้องสมุดอื่น ๆ ที่ฉันค้นพบสามารถอ่านและเขียนพล็อตข้อมูลได้ แต่ไม่รองรับการปรับเปลี่ยน

ข้อมูลความเป็นมา: Transitfeed Feedvalidator แสดงข้อผิดพลาดมากมายสำหรับไฟล์ GTFS ของฉัน ฉันต้องการแยกภูมิภาคที่สนใจเพื่อประเมินคุณภาพท้องถิ่น


คำแนะนำใน Twitter ชี้ให้ฉันเห็น FME ซึ่งมีทั้งผู้อ่าน GTFS และนักเขียน ขั้นตอนการทำงานที่เรียบง่ายของฉันประกอบด้วยตัวอ่าน GTFS (ด้านล่างซ้าย), ตัวอ่าน Shapefile (มุมซ้ายบน, สำหรับพื้นที่รูปหลายเหลี่ยมที่น่าสนใจ), clipper และตัวเขียน GTFS สำหรับเอาท์พุท (เขียนเฉพาะจุดหยุดและไฟล์รูปร่าง จะต้องการไฟล์ทั้งหมด):

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

ปัญหาที่เกิดขึ้นคือการส่งออกรูปร่างเนื้อหา (จุดสีส้ม) ไม่ได้มีจุดอินพุต (สีเขียว) ทั้งหมดซึ่งอยู่ในพื้นที่สีเหลืองที่น่าสนใจ:

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

(แหล่งข้อมูล: https://transitfeeds.com/p/helsinki-regional-transport/735/latest/download )


ใช้ "สร้างมวลรวม" = "ไม่" รูปร่างที่ถูกตัดดูเหมือนจะเสร็จสมบูรณ์

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

แต่จุดหยุดไม่แน่นอน

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


เป็นไปได้ไหมที่จะแชร์ไฟล์รูปร่างและพื้นที่ทำงานที่คุณใช้ในตัวอย่างด้านบน ฉันรู้ว่าคุณไม่สามารถแบ่งปันข้อมูล GTFS ได้
Ken Bragg

ตัวเลขสีแดงในเวิร์กสเปซบ่งบอกถึงคุณลักษณะที่ไม่สามารถตัดได้ การคลิกสองครั้งที่มันจะเปิดพวกเขาในตัวตรวจสอบข้อมูลเพื่อให้คุณสามารถดูว่าพวกเขาคืออะไร ฉันเดาว่ามันเป็นคุณสมบัติที่ไม่มีรูปทรงเรขาคณิต
Ken Bragg

ใช่มันคือคุณสมบัติทั้งหมดจากไฟล์ที่ไม่ใช่รูปทรงเรขาคณิตเท่าที่ฉันสามารถบอกได้
underdark

คำตอบ:


6

สิ่งนี้ควรเป็นไปได้ใน FME 2016 เนื่องจากเราไม่สามารถเขียนมวลรวมลงใน GTFS จำเป็นต้องมีการตั้งค่าใน Clipper "Create Aggregates" = "ไม่" เพื่อป้องกัน FME จากการสร้างมวลรวมเมื่อคุณลักษณะที่ตัดออกเป็นหลายชิ้น พื้นที่ทำงานที่ฉันทดสอบอยู่ที่นี่: https://www.dropbox.com/s/b02hd7shefybtmw/gtfs2gtfs.fmw?dl=0 อ้างอิงจากข้อมูลตัวอย่างของ Helsinki ที่นี่: https://t.co/wAZHmUS5HN ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณฉันจะต้องลองกลับไปที่สำนักงาน Btw, มี "black magic" / ลอจิกเพียงพอที่จะมีไฟล์ GTFS ที่ไม่มีพิกัดด้วยตนเอง (เช่น route.txt และ trip.txt) หรือไม่
underdark

คุณสามารถเข้าร่วมแอตทริบิวต์ข้อมูลที่ไม่ใช่เชิงพื้นที่กับ Featuremerger หรือ Joiner ที่มีการอ้างอิงอย่างเป็นทางการDevelopers.google.com/transit/gtfs/referenceแต่ไม่ใช่ว่าข้อมูลทั้งหมดของ Helsinki นั้นจะมีการรวมเข้าด้วยกัน
Mapperz

ใช่ @Mapperz ชี้ให้เห็นว่าเราจำเป็นต้องใช้หม้อแปลง FeatureMerger เพื่อเข้าร่วมรูปทรงเรขาคณิตที่ถูกตัดพร้อมกับคุณสมบัติที่ไม่เชิงพื้นที่ ตัวอย่างเช่นการเดินทางสามารถพบได้โดยใช้ FeatureMerger เพื่อเข้าร่วมใน shap_id และจากนั้นจะพบระเบียนปฏิทินโดยการรวมกับการเดินทางบน service_id ฉันเริ่มต้นทำงานที่นี่: dropbox.com/s/b02hd7shefybtmw/gtfs2gtfs.fmw?dl=0
Ken Bragg

1
ฉันเห็นปัญหาและฉันคิดว่าวิธีแก้ปัญหา ;-) แอตทริบิวต์ parent_station ที่จุดหยุดในข้อมูลตัวอย่างของเฮลซิงกิมีช่องว่าง (ตามที่ได้รับอนุญาตในสเปค) แต่ดูเหมือนว่าพวกเขาจะเป็นอักขระช่องว่างสีขาวดังนั้น FME จะไม่เขียนเพราะ ไม่ตรงกับประเภทข้อมูลตามที่กำหนดโดย FME เรากำลังบังคับใช้จำนวนเต็มหรือ null คุณสามารถแก้ไขได้โดยใช้ตัวแปลง AttributeManager เพื่อตั้งค่าแอททริบิวเป็นโมฆะหากไม่ใช่จำนวนเต็ม ดูภาพหน้าจอที่นี่: screencast.com/t/dvsWfoYe
Ken Bragg

2
หากสิ่งที่กล่าวมาข้างต้นไม่ได้ช่วยให้เรายินดีที่จะทำงานร่วมกับคุณอย่างใกล้ชิดมากขึ้นผ่านการสนับสนุนซอฟต์แวร์ที่ปลอดภัย ( safe.com/support ) และเราสามารถโพสต์สรุปได้ที่นี่เมื่อเราแก้ไขทุกอย่างแล้ว หรือดำเนินการต่อที่นี่หากคุณต้องการ
Ken Bragg

5

หากคุณรู้เส้นทางที่อยู่ในภูมิภาคของคุณอย่างไม่ตั้งใจเครื่องGTFS Transformerสามารถมอบ GTFS ที่เล็กกว่าให้คุณได้

ในการทำเช่นนั้นจะเป็นการลบทริปรูปร่างหยุด stop_times และปฏิทินทั้งหมดที่ไม่รวมเส้นทางที่เก็บไว้

หากคุณต้องการลบ route_id 1 และเก็บ route_id 3 ไฟล์แปลงของคุณจะมีลักษณะดังนี้:

{"op":"retain","match":{"file":"routes.txt","route_id":"1"}}
{"op":"remove","match":{"file":"routes.txt","route_id":"3"}}

1
ในขณะที่ไม่เหมาะที่อาจเป็นทางออกที่ดีที่สุด จากคำอธิบายฉันคิดว่า Transformer จะกรองไฟล์ที่เกี่ยวข้องทั้งหมดเพื่อให้มีข้อมูลของเส้นทางที่ถูกเก็บไว้เท่านั้น
underdark

1

ฉันเพิ่งเจอtwalcari / gtfs-filterซึ่งเป็นยูทิลิตี้ที่ดีในการกรอง GTFS ด้วยการ จำกัด กล่องเวลาและ / หรือ (คลาสสิก) โหมดการเดินทาง

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