Bagaimana cara mengekstrak area kecil dari umpan GTFS besar?

11

Apakah ada alat yang mendukung penggalian wilayah kecil dari umpan GTFS yang lebih besar? Perpustakaan Transitfeed Google berisi alat Gabung tetapi tidak ada alat Ekstrak / Klip, sejauh yang saya bisa lihat. Perpustakaan lain yang saya temukan hanya dapat membaca dan memplot data tetapi tidak mendukung manipulasi.

Info latar belakang: Feedvalidator Transitfeed menunjukkan banyak kesalahan untuk file GTFS saya. Saya ingin mengekstrak wilayah minat saya untuk menilai kualitas lokal.


Rekomendasi di Twitter mengarahkan saya ke FME yang memiliki pembaca GTFS dan penulis. Alur kerja sederhana saya terdiri dari pembaca GTFS (kiri bawah), pembaca Shapefile (kiri atas, untuk bidang poligon yang menarik), clipper dan penulis GTFS untuk output (hanya menulis berhenti dan membentuk file untuk sekarang tetapi akhirnya saya ' Saya ingin semua file):

masukkan deskripsi gambar di sini

Masalahnya sejauh ini adalah bahwa bentuk output konten (titik oranye) tidak mengandung semua titik input (hijau) yang berada dalam bidang kuning yang menarik:

masukkan deskripsi gambar di sini

(Sumber data: https://transitfeeds.com/p/helsinki-regional-transport/735/latest/download )


Menggunakan "Buat Agregat" = "Tidak", bentuk yang terpotong tampak lengkap

masukkan deskripsi gambar di sini

tapi pasti berhenti tidak

masukkan deskripsi gambar di sini

underdark
sumber
Apakah mungkin membagikan file bentuk dan ruang kerja yang Anda gunakan dalam contoh di atas? Saya sadar Anda tidak dapat membagikan data GTFS itu sendiri.
Ken Bragg
Angka merah di ruang kerja menunjukkan fitur yang tidak dapat dipotong. Mengklik dua kali akan membukanya di inspektur data sehingga Anda dapat melihat apa itu. Saya menduga mereka adalah fitur tanpa geometri.
Ken Bragg
Ya, itu semua fitur dari file non-geometri, sejauh yang saya tahu.
underdark

Jawaban:

6

Ini harus dimungkinkan di FME 2016. Karena kami tidak dapat menulis agregat ke GTFS, pengaturan di Clipper diperlukan "Buat Agregat" = "Tidak" untuk mencegah FME dari membuat agregat ketika fitur kliping menghasilkan beberapa bagian. Ruang kerja yang saya uji ada di sini: https://www.dropbox.com/s/b02hd7shefybtmw/gtfs2gtfs.fmw?dl=0 Berdasarkan data sampel Helsinki di sini: https://t.co/wAZHmUS5HN masukkan deskripsi gambar di sini

Ken Bragg
sumber
Terima kasih, saya harus mencobanya kembali di kantor. Btw, apakah ada cukup "ilmu hitam" / logika untuk memiliki juga file GTFS yang tidak mengandung koordinat sendiri (misal, route.txt dan trips.txt) terpotong?
underdark
Anda dapat bergabung dengan atribut data non-spasial dengan pembuat fitur atau bergabung dengan pengembang referensi resmi.google.com/transit/gtfs/reference tetapi tidak semua data Helsinki diisi sehingga bergabung tidak akan sepenuhnya bekerja.
Mapperz
Ya seperti yang ditunjukkan @Mapperz, kita perlu menggunakan transformator FeatureMerger untuk bergabung dengan geometri terpotong dengan fitur non-spasial. Misalnya perjalanan dapat ditemukan dengan menggunakan FeatureMerger untuk bergabung di shap_id dan kemudian catatan kalender dapat ditemukan dengan menggabungkan dengan perjalanan di service_id. Saya mulai mengerjakan ini di sini: dropbox.com/s/b02hd7shefybtmw/gtfs2gtfs.fmw?dl=0
Ken Bragg
1
Saya melihat masalah dan saya pikir solusinya ;-) Atribut parent_station pada berhenti di Helsinki sampel data memiliki beberapa kosong (sebagaimana diizinkan dalam spesifikasi) tetapi mereka tampaknya karakter spasi sehingga FME tidak akan menulis mereka karena mereka tidak dapat memenuhi tipe data sebagaimana ditentukan oleh FME. Kami memberlakukan bilangan bulat atau nol. Anda dapat memperbaikinya menggunakan transformer AttributeManager untuk mengatur atribut menjadi nol jika bukan bilangan bulat. Lihat tangkapan layar di sini: screencast.com/t/dvsWfoYe
Ken Bragg
2
Jika hal di atas tidak membantu, kami akan senang bekerja sama dengan Anda lebih dekat mengenai hal ini melalui dukungan Perangkat Lunak Aman ( safe.com/support ) dan kami dapat memposting ringkasan di sini ketika kami telah menyelesaikan semuanya. Atau lanjutkan di sini jika Anda mau.
Ken Bragg
5

Jika Anda mengetahui rute yang berada di wilayah Anda yang paling padat, Transformer GTFS dapat memberi Anda GTFS yang jauh lebih kecil.

Dengan demikian, itu akan menghapus semua perjalanan, bentuk, berhenti, stop_times dan kalender yang tidak termasuk rute yang dipertahankan.

Jika Anda ingin menghapus route_id 1 dan menyimpan route_id 3, file transformasi Anda akan terlihat seperti:

{"op":"retain","match":{"file":"routes.txt","route_id":"1"}}
{"op":"remove","match":{"file":"routes.txt","route_id":"3"}}
Tony Laidig
sumber
1
Meskipun tidak ideal, itu bisa menjadi solusi terbaik yang tersedia. Berdasarkan uraian tersebut, saya berasumsi bahwa Transformer juga memfilter semua file terkait hanya berisi info dari rute yang dipertahankan.
underdark
1

Saya baru saja menemukan twalcari / gtfs-filter , utilitas yang bagus untuk memfilter GTFS dengan membatasi mode kotak, waktu, dan / atau (klasik).

Holger Bruch
sumber