GeNet'e Giriş: Ağ Senaryosu Oluşturucu
Kasia, Arup'un Şehir Modelleme Laboratuvarında aracı tabanlı modellerle çalışan bir veri bilimcisidir.
Arup'un Şehir Modelleme Laboratuvarında, şehirlerin, bölgelerin ve ulusların daha sürdürülebilir, eşitlikçi ve daha sağlıklı gelecekler planlamasına yardımcı olmak için aracı tabanlı modeller oluşturuyoruz. Her yeni model oluşturduğumuzda, insanların seyahat etme yollarını temsil edecek bir ağ oluşturmamız gerekir. Gelecek senaryolarını düşündüğümüzde, mevcut ağı değiştirmek zorundayız.
Yardımcı olması için GeNet'i (Network Scenario Generator) geliştirdik. Ve halkı etkileyen kararların şeffaf olması gerektiğine inandığımız için açık kaynak yaptık. Ayrıca, ağ oluşturmanın herkes için basit bir süreç haline gelmesi için bu projeyi geliştirmek isteyen işbirlikçiler olduğunu umuyoruz.
GeNet, bu tür ağların kullanımına, değiştirilmesine, doğrulanmasına ve görselleştirilmesine yardımcı olmak için bellekte çok modlu taşıma ağlarını temsil etmek için kullanılır.
Bu kim için?
Şu anda, araç en çok mevcut MATSim ağlarını kullanarak senaryolar oluşturmak için kullanışlıdır. MATSim , aracı tabanlı taşıma simülasyonlarını uygulamak için açık kaynaklı bir yazılımdır. Hâlâ GeNet'i geliştiriyoruz — bir gün desteklenen diğer formatları görmek isteriz. GeNet, OSM'den yol ağları ve GTFS'den toplu taşıma (PT) çizelgeleri oluşturmak için yöntemler sunar. Programları ağ üzerinde yakalamak ve yönlendirmek için işlevsellik sağlamak için devam eden bir geliştirme var, böylece bir ağ oluşturma süreci tamamlanıyor.
Motivasyon
Şehir Modelleme Laboratuvarı içinde birlikte çalıştığımız ağlar büyük ve karmaşıktır. Bu araç bize ağlarla etkileşime geçmek için basit bir python arayüzü sağlar. Bu çalışmanın ana motivasyonu, ağlarda yapılan değişiklikleri daha kolay hale getirmek ve herhangi bir değişikliği izlenebilir hale getirmekti. GeNet, düzenlemeleri ağda kaydeden bir değişiklik günlüğü tutar. Altyapıyı kaldırmak veya eklemek gibi değişikliklere izin veriyoruz. Bir değişiklik uygulandığında, ağımızın hala geçerli olup olmadığını kontrol etmek istiyoruz — GeNet, ağ grafiğinde grafiği, toplu taşıma programını ve programın rotasını doğrulamak için yöntemler içerir. Ağı doğrulamanın bir diğer önemli parçası da aslında ona bakmaktır. Ağ değerlendirme sürecini kolaylaştırmak için birden fazla geojson oluşturan ve dosya çıktılarını şekillendiren yöntemler ekledik.
GeNet Ağı
Çok modlu bir ulaşım ağı ile, yürüme, bisiklet, tren, otobüs ve ayrıca araba veya sürüş gibi kenarlarında depolanan farklı modlara sahip bir ağ grafiğini kastediyoruz ve bu grafikle ilişkili bir toplu taşıma programı var. GeNet'te iki ana sınıfımız vardır: aynı düğüm çifti arasında birden çok kenara sahip olabilen grafik hakkında bilgi içeren genet.Network, bu muhtemelen birden çok kenarın her birini benzersiz bir şekilde dizinleyen bağlantıların dizinlenmesi ve bir genet referansı . .Genet.Service lerden oluşan çizelge . Bir Hizmet, örneğin Piccadilly Londra Metro hattı gibi belirli bir toplu taşıma hattına karşılık gelir. Her Hizmet , sıralı bir dizi ile karakterize edilen bir dizi genet.Route'a sahip olacaktır.genet.Durdur s. Bir ağın geçerli bir çok modlu ağ olması için her genet.Route'un PT araçlarının hareketlerini tanımlayan genet.Network bağlantılarına geçerli bir referansı olması gerekir .
Özellikler
Aşağıda GeNet'i nasıl kullandığımıza dair birkaç örnek paylaşıyoruz. Tam özellik ve kullanım detayları GeNet'in wiki sayfalarında ve örnek jüpyter not defterlerinde bulunabilir .
Bir GeNet Ağı Kullanmak
Bir ağı yükleyebilmek ve düğümlerde ve bağlantılarda depolanan verilere erişebilmek, ağı tamamlayan yol fiyatlandırma bilgileri oluşturmak istediğimizde çok kullanışlı oluyor. Bu yollarda seyahat etmeyi seçerlerse, modeldeki acenteler tarafından ödenmesi gereken geçiş ücretlerini tanımlar. Ücretli olup olmadıklarını öğrenmek için bağlantılarda depolanan Açık Sokak Haritası (OSM) verilerini sorgularız.
değişiklik
GeNet'in arkasındaki en büyük motivasyon, ağ senaryolarını hızlı bir şekilde oluşturmaktı. GeNet, bağlantılarda zaten depolanan verileri eklemenize, kaldırmanıza ve değiştirmenize olanak tanır. Bunu, kullanıcı tanımlı koşullara dayalı olarak ilgi çekici bağlantıların çıkarılmasıyla birleştirmek, esnek ve güçlü bir araç sağlar. Bu, örneğin bir yol kapanması durumunda modellerimizdeki etmenlerin nasıl davranacağını test etmemizi sağlar. GeNet'in sınıf yöntemlerini kullanarak ağda yaptığınız tüm değişiklikler bir değişiklik günlüğünde izlenecektir.
Doğrulama
GeNet'te iki ana doğrulama akışı vardır. Bir Google Directions API anahtarınız varsa, ağınızdaki bağlantılar için Google hızlarını ayıklamak üzere yöntemlerimizi kullanmayı denemek isteyebilirsiniz. Bunları bağlantılarınıza atadığınız hızlarla karşılaştırabilir veya tamamen Google hızlarıyla değiştirebilirsiniz. Hızları değiştirmeyi düşünüyorsanız, ağınızın trafik koşullarıyla kirlenmesini önlemek için Google hızlarını gecenin bir yarısında topladığınızdan emin olun — bunu modele bırakalım;).
İkinci doğrulama yöntemi daha pragmatiktir. MATSim'de ev yapımı ağlarla simülasyonlar çalıştırırken geçmişte yaptığımız hataları yapmamızı engelleyen bir testler paketidir. Testler şunları içerir: ağın modal alt grafiklerinin güçlü bağlantısının değerlendirilmesi, toplu taşıma Tarifesinin geçerliliğinin kontrol edilmesi ve ağ bağlantıları ile tüm toplu taşıma hizmetlerinin yönlendirmesi arasındaki ilişkinin kontrol edilmesi.
görselleştirme
Her GeNet sınıfının hızlı bir çizim yöntemi vardır, ancak bizim favorimiz , iş akışımızın bir kısmını otomatikleştiren standart çıktılar üretme yöntemidir . Bu, üst düzey Çizelge istatistikleri içeren standart geojson'lar, şekil dosyaları ve CSV'lerden oluşan bir pakettir . Bunlar, ağı teknik olmayan paydaşlarla paylaşmak ve ağın uygun şekilde kurulduğunu kanıtlamak için kullanılabilir. Bu yöntem, bir ağ oluşturduğumuzda veya değiştirdiğimizde ihtiyacımız olan çıktıları hızlı bir şekilde üretmemizi sağlar.
Sonuçlar
Şimdilik GeNet ağırlıklı olarak MATSim ağlarına hitap ediyor. Fazladan okuma ve yazma yöntemleri yazarak ve GeNet'in içine giren bazı kaçınılmaz kırışıklıkları ortadan kaldırarak onu bu tek simülasyon paradigmasının ötesine genişletmek harika olurdu. Diğer ağlarla çalışıyorsanız ve bu gönderiyi okumaktan keyif aldıysanız, github'da GeNet'e göz atın . Yorumlarınız veya önerileriniz için minnettarız ve insanların projeye dahil olup kodlarını ve/veya deneyimlerini projeye kattıklarını görmekten çok mutlu oluruz — nasıl katkıda bulunabileceğinize dair bazı fikirlerin yer aldığı katkı kılavuzunun bağlantısı buradadır . .

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































