Büyük bir GTFS özet akışından küçük bir alan nasıl çıkarılır?


11

Daha büyük bir GTFS özet akışından küçük bir bölgeyi çıkarmayı destekleyen bir araç var mı? Google'ın Transitfeed kütüphanesinde bir Birleştirme aracı var ancak gördüğüm kadarıyla Ayıkla / Klip aracı yok. Bulduğum diğer kütüphaneler sadece verileri okuyabilir ve çizebilir, ancak manipülasyonu desteklemez.

Arka plan bilgisi: Transitfeed Feedvalidator, GTFS dosyam için birçok hata gösteriyor. Yerel kaliteyi değerlendirmek için ilgilendiğim bölgeyi çıkarmak istiyorum.


Twitter'daki öneriler beni hem GTFS okuyucuya hem de yazara sahip olan FME'ye yönlendirdi. Basit iş akışım bir GTFS okuyucu (sol alt), Shapefile okuyucu (ilgi alanı çokgen için sol üst), bir kesme makinesi ve çıktı için bir kesme makinesi ve bir GTFS yazıcıdan oluşuyor (yalnızca şimdilik durur ve şekiller dosyaları yazıyorum ama sonunda ben ' tüm dosyaları isteyeceksiniz):

resim açıklamasını buraya girin

Şimdiye kadarki sorun, çıktı şekillerinin içeriğinin (turuncu noktalar) sarı ilgi alanındaki tüm giriş noktalarını (yeşil) içermemesidir:

resim açıklamasını buraya girin

(Veri kaynağı: https://transitfeeds.com/p/helsinki-regional-transport/735/latest/download )


"Toplama Oluştur" = "Hayır" kullanıldığında, kırpılan şekiller tamamlanmış gibi görünüyor

resim açıklamasını buraya girin

ama duraklar kesinlikle değil

resim açıklamasını buraya girin


Yukarıdaki örnekte kullandığınız şekil dosyasını ve çalışma alanını paylaşmak mümkün müdür? GTFS verilerini paylaşamayacağınızın farkındayım.
Ken Bragg

Çalışma alanındaki kırmızı sayılar kırpılamayan özellikleri gösterir. Üzerine çift tıkladığınızda veri denetçisinde açılacak, böylece ne olduklarını görebilirsiniz. Sanırım geometrik olmayan özellikler.
Ken Bragg

Evet, bunlar geometri dışı dosyalardaki tüm özellikler, anlayabildiğim kadarıyla.
underdark

Yanıtlar:


6

Bu FME 2016'da mümkün olmalıdır. GTFS'ye toplamalar yazamadığımız için, kırpılan özellik birden fazla parçaya neden olduğunda FME'nin toplama oluşturmasını önlemek için Clipper'da "Agregalar Oluştur" = "Hayır" a ayar gereklidir. Test ettiğim çalışma alanı: https://www.dropbox.com/s/b02hd7shefybtmw/gtfs2gtfs.fmw?dl=0 Buradaki Helsinki örnek verilerine dayanarak: https://t.co/wAZHmUS5HN resim açıklamasını buraya girin


Teşekkürler, bunu ofiste tekrar denemek zorunda kalacağım. Btw, kendi başlarına koordinat içermeyen GTFS dosyalarının da kırpılması için yeterli "kara büyü" / mantık var mı (örn. Route.txt ve trips.txt)?
underdark

Mekansal olmayan veri özelliklerini bir referans alıcıyla veya marangozla resmi referans geliştiricileri.google.com/ transit/gtfs/reference ile birleştirebilirsiniz, ancak tüm Helsinki verileri doldurulmaz, böylece birleştirmeler tam olarak çalışmaz.
Mapperz

Evet @ @Mapperz'nin işaret ettiği gibi, kırpılmış geometrileri uzamsal olmayan özelliklerle birleştirmek için FeatureMerger transformatörünü kullanmamız gerekiyor. Örneğin, shap_id'e katılmak için FeatureMerger kullanılarak geziler bulunabilir ve daha sonra service_id'deki trip ile birleştirilerek takvim kayıtları bulunabilir. Burada çalışmaya başladım: dropbox.com/s/b02hd7shefybtmw/gtfs2gtfs.fmw?dl=0
Ken Bragg

1
Sorunu görüyorum ve çözüm olduğunu düşünüyorum ;-) Helsinki örnek verilerindeki duraklardaki parent_station özniteliği (spesifikasyonda izin verildiği gibi) bazı boşluklara sahiptir, ancak beyaz boşluk karakterleri gibi görünüyorlar, bu nedenle FME, FME tarafından tanımlanan veri türünü karşılamıyor. Tamsayı veya null uyguluyoruz. Özniteliği bir tamsayı değilse null olarak ayarlamak için AttributeManager dönüştürücüsünü kullanarak bunu düzeltebilirsiniz. Buradaki ekran görüntüsüne
Ken Bragg

2
Yukarıdakiler yardımcı olmazsa, Güvenli Yazılım desteği ( safe.com/support ) aracılığıyla sizinle bu konuda daha yakından çalışmaktan memnuniyet duyarız ve her şeyi çözdüğümüzde burada bir özet gönderebiliriz. Veya isterseniz devam edin.
Ken Bragg

5

En yoğun bölgenizdeki rotaları biliyorsanız, GTFS Transformer size çok daha küçük bir GTFS verebilir.

Bunu yaparken, tutulan rotalara dahil olmayan tüm seyahatleri, şekilleri, durakları, durma zamanlarını ve takvimleri kaldıracaktır.

Route_id 1'i kaldırmak ve route_id 3'ü korumak istiyorsanız, dönüşüm dosyanız şöyle görünecektir:

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

1
İdeal olmasa da, mevcut en iyi çözüm olabilir. Açıklamaya dayanarak, Transformer'ın sadece ilgili yolları yalnızca tutulan rotaların bilgilerini içerecek şekilde filtrelediğini varsayıyorum.
underdark

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.