Ero sivun ”Helsingin seudun liikennemalli” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
(→‎R malli: alustavaa koodia)
pEi muokkausyhteenvetoa
 
(10 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{arviointi|moderator=Teemu R|stub=Yes}}
{{arviointi|moderator=Teemu R|stub=Yes}}
[[Luokka:Tarkastettavaa koodia]]


== Rajaus ==
== Rajaus ==
Rivi 6: Rivi 7:


== Määritelmä ==
== Määritelmä ==
=== Muuttujat ===
*[[:en:Distance matrix in the Helsinki metropolitan area]]
*[[:en:Trip rate on a workday in the Helsinki metropolitan area]]
*[[:en:Bus routes in the Helsinki metropolitan area]]


=== R malli ===
=== R malli ===
<rcode graphics = "1">
<rcode graphics = "1">
library(OpasnetBaseUtils)
library(OpasnetUtils)
trips <- op_baseGetData("opasnet_base", "Op_en2625")
 
bus.routes <- op_baseGetData("opasnet_base", "Op_en5336")
bus.routes <- opbase.data("Op_en5336")
distance <- op_baseGetData("opasnet_base", "Op_en5322", include = 14299, exclude = 53098)
 
buses <- data.frame()
buses <- data.frame()
for (i in levels(bus.routes$Route_id)) {
for (i in levels(bus.routes$Route_id)) {
temp <- bus.routes[bus.routes$Route_id == i, c("Route_id", "Time_id", "Route_order", "Result.Text")]
temp <- bus.routes[bus.routes$Route_id == i, c("Route_id", "Time_id", "Route_order", "Result")]
temp <- temp[order(temp$Route_order),]
temp <- temp[order(temp$Route_order),]
temp <- data.frame(Route_id = temp$Route_id[1], Time_id = temp$Time_id[1], From = temp$Result.Text[1:(length(temp$Result.Text) - 1)],  
for (j in 1:length(temp$Result)) {
To = temp$Result.Text[2:length(temp$Result.Text)])
temp2 <- data.frame(Route_id = temp$Route_id[1], Time_id = temp$Time_id[1], From = temp$Result[j], To = temp$Result[-j])
# delay between "stops" should be calculated, as well as the times when buses start
# delay between "stops" should be calculated, as well as the times when buses start; this is not needed when we assume that a bus can pick up
#temp <- merge(temp, distance[,c("From", "To", "Result")])
# anyone during an hour and deliver them anywhere on the route while running the route in both directions
#temp$Delay <- c(0, temp$Result[-nrow(temp)]) / 20 #speed
#temp <- merge(temp, distance[,c("From", "To", "Result")])
#temp$Time <- temp$Time + temp$Delay
#temp$Delay <- c(0, temp$Result[-nrow(temp)]) / 20 #speed
buses <- rbind(buses, temp)
#temp$Time <- temp$Time + temp$Delay
colnames(temp)[3:4] <- c("To", "From") # returning buses (if they do that, i dont know)
buses <- rbind(buses, temp2)
temp <- temp[,c(1,2,4,3)]
}
buses <- rbind(buses, temp)
}
}


trips.bus <- merge(trips, buses)
trips <- opbase.data("Op_en2625")


buses.per.stop <- tapply(trips.bus$Result, trips.bus[,c("From", "To", "Time")], length)
trips.time.sum.margins <- data.frame(Time = seq(1, 24.8, 0.2), Time.hour = rep(1:24, each = 5))
 
trips <- merge(trips, trips.time.sum.margins)
trips <- tapply(trips$Result, trips[,c("Mode", "Time.hour", "From", "To")], sum)
trips <- as.data.frame(as.table(trips))
colnames(trips)[5] <- "Result"
 
trips.bus <- merge(trips[trips$Mode == "Public"], buses)
 
buses.per.stop <- tapply(trips.bus$Result, trips.bus[,c("From", "To", "Time.hour")], length)
buses.per.stop <- as.data.frame(as.table(buses.per.stop))
colnames(buses.per.stop)[4] <- "Buses.per.stop"
 
trips.bus.2 <- merge(trips[trips$Mode == "Public"], buses.per.stop)
trips.bus.2$Result <- trips.bus.2$Result / trips.bus.2$Buses.per.stop
 
trips.bus.2 <- merge(trips.bus.2, buses)
 
trips.bus.3 <- tapply(trips.bus.2$Result, trips.bus.2[,c("Route_id", "Time.hour")]) # Passengers per hour per bus route assuming one bus goes in
# both directions and given passengers are divided evenly among buses going into same destinations
trips.bus.3 <- as.data.frame(as.table(trips.bus.3))
trips.bus.3$Active <- trips.bus.3$Freq > minlevel # test whether number of passengers is higher than minumum required to run
trips.bus <- merge(trips.bus, trips.bus.3)
 
trips.possible <- tapply(trips.bus$Active, trips.bus[,c("Time.hour", "From", "To")], sum)
trips.possible <- as.data.frame(as.table(trips.possible))
trips.possible$Possible <- trips.possible$Freq > 0 # test whether at least 1 bus route that includes the considered trip is active
 
trips.bus.2 <- merge(trips[trips$Mode == "Public"], trips.possible)
 
distance <- opbase.data("Op_en5322") #include = 14299, exclude = 53098  What these should be in base2 ????!?!?


gc()
gc()
Rivi 80: Rivi 116:


# bus emis: 44 - 54 * 10^-2 lkm^-1; ref: N. Nylund, K. Erkkilä, T. Hartikka 2007 http://www.vtt.fi/inf/pdf/tiedotteet/2007/T2372.pdf p.31
# bus emis: 44 - 54 * 10^-2 lkm^-1; ref: N. Nylund, K. Erkkilä, T. Hartikka 2007 http://www.vtt.fi/inf/pdf/tiedotteet/2007/T2372.pdf p.31
</rcode>
</rcode>
{{kommentti|#:|Jostain eriskummallisesta syystä, koodi on äärettömän hidasta ajamaan serverillä. Arvaan syyksi keskusmuistin loppumisen, jonka jälkeen kiintolevy tulee käyttöön, joka luonnollisesti hidastaa operointia roimasti. gc funktion mukaan erään ajon maksimi muistin käyttö oli yli 3 Gb (<nowiki>http://fi.opasnet.org/fi/Special:R-tools?id=13136726070</nowiki>).|--[[Käyttäjä:Teemu R|Teemu R]] 19. elokuuta 2011 kello 15.44 (EEST)}}
{{kommentti|#:|Mallin pitäisi nyt laskea toteutuvat bussireitit ja sovittaa niitä mahdollisesti toteutettaviin trippeihin, mutta jossain kohti on bugi ja debuggaaminen on vaikeaa kun ei oma kone jaksa tätä pyörittää.|--[[Käyttäjä:Teemu R|Teemu R]] 22. elokuuta 2011 kello 15.52 (EEST)}}


== Katso myös ==
== Katso myös ==


*[[:en:Composite traffic]]
* [[:op_en:Composite traffic]]
*[[:en:Composite traffic model]]
* [[:op_en:Composite traffic model]]
* [[Kustannus-hyötyarviointi yhdistelmäliikenteestä Helsingissä]]
* [[Ytrips Oy]]
* [[Helsingin seudun liikennemalli]]
* [[Osallistuva kaupunkisuunnittelu Joensuussa]]
* [[Joensuun keskustan liikennemalli J1]]
 
== Viitteet ==
 
<references/>
 
==Aiheeseen liittyviä tiedostoja==
 
{{mfiles}}
 
{{eracedu}}

Nykyinen versio 22. elokuuta 2013 kello 10.39


Rajaus

Tarkastellaan julkisten kulkuvälineiden tuen suuruuden vaikutusta liikenteen (yksityisautoilun ja bussien osalta) kokonaiskustannuksia (otetaan huomioon pienhiukkas- ja kasvihuonekaasupäästöt, bussin kuljettajien palkka, polttoaineen hinta) pääkaupunkiseudulla.

Määritelmä

Muuttujat

R malli

+ Näytä koodi

--#: Jostain eriskummallisesta syystä, koodi on äärettömän hidasta ajamaan serverillä. Arvaan syyksi keskusmuistin loppumisen, jonka jälkeen kiintolevy tulee käyttöön, joka luonnollisesti hidastaa operointia roimasti. gc funktion mukaan erään ajon maksimi muistin käyttö oli yli 3 Gb (http://fi.opasnet.org/fi/Special:R-tools?id=13136726070). --Teemu R 19. elokuuta 2011 kello 15.44 (EEST)

--#: Mallin pitäisi nyt laskea toteutuvat bussireitit ja sovittaa niitä mahdollisesti toteutettaviin trippeihin, mutta jossain kohti on bugi ja debuggaaminen on vaikeaa kun ei oma kone jaksa tätä pyörittää. --Teemu R 22. elokuuta 2011 kello 15.52 (EEST)

Katso myös

Viitteet


Aiheeseen liittyviä tiedostoja

<mfanonymousfilelist></mfanonymousfilelist>