350 likes | 453 Views
Counting Trucks in PORTAL. Truck Count Estimates from Loop Detector Volume and Occupancy Data. Objective:. Obtain vehicle class data with high time and space resolution on Portland metro freeways. Why?. “ Green ” performance measures for PORTAL require VMT by class.
E N D
Counting Trucks inPORTAL Truck Count Estimates from Loop Detector Volume and Occupancy Data
Objective: • Obtain vehicle class data with high time and space resolution on Portland metro freeways
Why? • “Green” performance measures for PORTAL require VMT by class. • Emission rates, fuel consumption, and value of time all vary significantly with vehicle class. For example, cost of delay in 2007: Autos: $17.58/hr Heavy Trucks: $30.93
Use of Truck Counts More Precise Green Measures
Estimation Methods • 3 papers by Wang and Nihan (U. of Washington) • Truck counts from single-loop detector volume and occupancy data • 2000: regression model for effective vehicle lengths • 2001: 2-step method • 2003: 3-step method that includes period speed • (Used in previous PORTAL project)
Assumptions • Two very important assumptions: • Vehicle speeds constant for each period • At least 2 intervals per period have no LV’s SV = Short Vehicle (under 12 meters) LV = Long Vehicle (over 12 meters) *Both assumptions affected by period length
Raw Data from PORTAL • Raw data for multiple days and stations not easily available through PORTAL web interface • Direct access to PORTAL data possible through R (Thanks to Dr. Monsere for your help!) • Wiki page to guide you: http://wiki.cecs.pdx.edu/bin/view/ItsWeb/PORTALaccessR • (also link through ITSLabAdmin > RArchive )
Setup the Connection Steps: Setup driver Get to know PORTAL structure Use R scripts
R Script Establish Connection • ########################################################## • # • # Connect to PORTAL • # Need PostgreSQL ODBC driver installed on windows and configured • # Using R 2.7.1 (latest version) • # See \Equipment_Software\ODBCdrivers on Marston • # and readme.txt file • # • ########################################################## • #Set up the database connection to PORTAL • #================================= • library(RODBC) • portal <- odbcConnect("portal_ro", uid="portal_ro") # establish connection • sqlQuery(portal,"SET search_path = public, pg_catalog;") # sets the schema to public • # Extract Data • #================================= • hwy <- "I-205" • dirs <- c("NORTH","SOUTH","EAST","WEST") • dir <- dirs[1] • highwayID <- sqlQuery(portal, paste("SELECT highwayid FROM highways WHERE highwayname = '",hwy,"' AND direction = '", dir,"'", sep="")) • station <- "Stafford to I-205 NB" • query <- paste("SELECT stationid, length, milepost FROM stations WHERE highwayid = ",highwayID," AND locationtext = '",station,"'",sep="") • stationinfo <- sqlQuery(portal, query) • stationID <- stationinfo[,"stationid"] • query <- paste("SELECT detectorid, stationid, detectorclass, lanenumber FROM detectors WHERE stationid IN (",paste(stationID, collapse=", "),")",sep=" ") • detectorID <- sqlQuery(portal, query) • ramps <- detectorID[detectorID$detectorclass == 5, "detectorid"] • lanes <- detectorID[detectorID$detectorclass == 1, c("detectorid","lanenumber")] • if (!all(is.element(detectorID$detectorclass,c(1,5)))) print ("Other detector classes present!") • Data <- data.frame() • for (day in 23:23) { • year <- 2008 • month <- 1 • date <- ISOdate(day=day,year=year,month=month) • tablename <- paste("loopdata",format(date,"%Y_%m_%d"),sep="_") • fields <- "*" • query <- paste("SELECT",paste(fields, collapse=", "),"FROM",tablename,"WHERE detectorid IN (",paste(detectorID[,1], collapse=", "),")",sep=" ") • daily <- sqlQuery(portal, query) • Data <- rbind(Data,daily[daily$detectorid %in% lanes$detectorid,]) • } Defining SQL query Enacting SQL query
Wang Algorithm Step 1 • Separate intervals with all SV from those with possible LV • The two intervals with the lowest O/N are assumed to be all SV (EVL = SVmean) • Other interval EVLs calculated by comparing SV intervals’ O/N • Critical EVLs based on normalized distributions of SV and LV EVL = Effective Vehicle Length (per interval) O/N = Occupancy / Volume ratio
Progress If EVLi > EVLcrit, then possible LV’s
Wang Algorithm Step 2 • Estimate period speed (assumed constant) • From summed vol. and occ. of all SV-classified intervals in Step 1 • Uses mean SV length (5.48 meters)
Wang Algorithm Step 3 • Compute LV (trucks) in remaining intervals (non-SV) • Nearest-neighbor rule • Statistically closest “bin” of auto/truck distribution to match the interval’s EVL • 7-truck maximum • (if volume > 7)
Progress Aggregate intervals and periods to hourly vehicle mixes.
Now we have our truck counts... • ...but are they accurate?
Assumption Violation • Constant vehicle speeds violated • Overestimate LV: Low speeds appear as LV • Overestimate Speed: slower SV intervals removed • At least two all-SV intervals per period violated • Underestimate Speed: LV appear as slow SV • Underestimate LV: LV appear as slow SV
Occupancy Resolution 70mph = 103ft/sec 60mph = 88ft/sec 50mph = 73ft/sec 18ft SV 18ft / 88ft/s = 0.20sec = 1.0%occ BUT . . . 18ft / 73ft/s = 0.25sec = 1.2%occ AND . . . 18ft / 103ft/s = 0.18sec = 0.88%occ
So . . . A single short vehicle, rounding to 1 digit:
Differences to Previous PORTAL Implementation • Excluded zero occ., non-zero vol. intervals • 6-ft Loop lengths (instead of 4-ft) • Assumed maximum period speed • Variable period lengths (automated) • Use of ODOT-calculated speeds
Comparison With ATR Highly inaccurate during congestion (mph)
Method Selection • Depending on road conditions, most accurate methods: • 70mph max speed, 5 minute periods • 70mph max speed, automated variable periods • ODOT speeds (70mph max), 5 minute periods • ODOT speeds (70mph max), variable periods But we shouldn’t need the max speeds – is something wrong with the raw data?
Avg. Abs. % Diff: • 70max 22% • 70_VarPer 25% • ODOT 41% • ODOT_VarPer 38% • Prev. PORTAL 32%
Conclusion • These methods are still too inaccurate. • At best, around 20% difference in truck counts, as compared to ATR and manual counts • Some hourly percent errors over 100% • Next step is to ensure accuracy and resolution in volume and occupancy raw data.
Truck Counts in Action! Compared to static fleet: Average: 2% greater ($189) Max: 7% greater ($765)
THANK YOU! • Questions? • Comments?