Ero sivun ”Helsingin seudun liikennemalli” versioiden välillä
(→R malli: katsotaan mahtuvatko tarvittavat datat muistiin) |
pEi muokkausyhteenvetoa |
||
(12 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( | library(OpasnetUtils) | ||
trips <- | |||
# | bus.routes <- opbase.data("Op_en5336") | ||
buses <- data.frame() | |||
for (i in levels(bus.routes$Route_id)) { | |||
temp <- bus.routes[bus.routes$Route_id == i, c("Route_id", "Time_id", "Route_order", "Result")] | |||
temp <- temp[order(temp$Route_order),] | |||
for (j in 1:length(temp$Result)) { | |||
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; this is not needed when we assume that a bus can pick up | |||
# anyone during an hour and deliver them anywhere on the route while running the route in both directions | |||
#temp <- merge(temp, distance[,c("From", "To", "Result")]) | |||
#temp$Delay <- c(0, temp$Result[-nrow(temp)]) / 20 #speed | |||
#temp$Time <- temp$Time + temp$Delay | |||
buses <- rbind(buses, temp2) | |||
} | |||
} | |||
trips <- opbase.data("Op_en2625") | |||
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() | |||
# Costs, need to be modified to fit the new scenario | |||
test3 <- as.data.frame(as.table(tapply(test2$vehicle.kilometers, test2$Type, sum))) | |||
colnames(test3) <- c("Type", "vehicle.kilometers") | |||
fuel.cons.emis.CO2 <- data.frame(Type = c("n.full.8.cars", "n.full.4.cars", "n.4.cars.3.pas", "n.4.cars.2.pas", "n.4.cars.1.pas"), | |||
Consumption = c(8.7, 5.7, 5.7, 5.7, 5.7) / 100, Emis.factor.CO2 = c(232, 153, 153, 153, 153)) | |||
emis.factor.PM <- 0.1 # gkm^-1 | |||
fuel.price <- 1.374 # 4.8. average cost of a liter of diesel fuel in Finland | |||
maint.price <- 0.0582 # €km^-1 | |||
driver.salary <- 2313 / 160 * 1.35 # €h^-1 | |||
test3 <- merge(test3, fuel.cons.emis.CO2) | |||
test3$Fuel.cost <- test3$vehicle.kilometers * test3$Consumption * fuel.price | |||
test3$Maint.cost <- test3$vehicle.kilometers * maint.price | |||
test3$Emis.CO2 <- test3$vehicle.kilometers * test3$Emis.factor.CO2 | |||
test3$Emis.PM <- test3$vehicle.kilometers * emis.factor.PM | |||
test3$Driver.cost <- test3$vehicle.kilometers / speed * driver.salary | |||
PM.lethality <- c(-7.223e-004, 5.640e-006, 4.228e-005, 5.987e-005, 8.013e-005, 1.150e-004, 2.037e-004, 2.939e-004, 3.598e-004, 4.132e-004, | |||
4.640e-004, 5.139e-004, 5.662e-004, 6.233e-004, 6.854e-004, 7.577e-004, 8.441e-004, 9.519e-004, 1.093e-003, 1.314e-003, 2.805e-003) | |||
PM.lethality <- median(PM.lethality) # deaths / kg | |||
value.of.life <- (2e6 + 0.98e6) / 2 # runif(n, 0.98e6, 2e6) # € / death | |||
emis.price.PM <- PM.lethality * value.of.life # 201.879 # €kg^-1 | |||
emis.price.CO2 <- 10e-3 # runif(n, 5e-3, 40e-3) # €kg^-1, the price of CO2 allowances fluctuates quite a bit, in 8.8.2011 they | |||
# were going for 10.74 € per ton of CO2 equivalent | |||
test3$CO2.cost <- test3$Emis.CO2 * emis.price.CO2 | |||
test3$PM.cost <- test3$Emis.PM * emis.price.PM | |||
# 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 == | ||
*[[: | * [[:op_en:Composite traffic]] | ||
*[[: | * [[: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
Moderaattori:Teemu R (katso kaikki)
Sivun edistymistä ei ole arvioitu. Arvostuksen määrää ei ole arvioitu (ks. peer review). |
Lisää dataa
|
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
- 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
--#: 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
- op_en:Composite traffic
- op_en:Composite traffic model
- Kustannus-hyötyarviointi yhdistelmäliikenteestä Helsingissä
- Ytrips Oy
- Helsingin seudun liikennemalli
- Osallistuva kaupunkisuunnittelu Joensuussa
- Joensuun keskustan liikennemalli J1
Viitteet
Aiheeseen liittyviä tiedostoja
<mfanonymousfilelist></mfanonymousfilelist>