Analysis of Filtered and Unfiltered Diesel Vehicles in Oregon
Executive Summary:
Oregon Department of Transportation (ODOT, diesels 26k lb. and up) and Department of Motor Vehicles (DMV, diesels under 26k lb.) records were obtained by Portland Clean Air in December 2023 and I was asked in February 2024 to conduct analysis, render visualizations, and deliver xlsx files with counts of filtered and unfiltered diesel vehicles per fleet. The problem of diesel air pollution is a serious health concern, and in the context of environmental eugenics and class warfare, it also is a matter of grave injustice.
The estimate of emissions in Portland metro area for personal diesel vehicles is a large portion of the lighter class (82%), relative to commercial (11%) and government (7%); however, when the heavy class fleets based in Oregon are considered, the proportions are different (24%, 74%, 2%, respectively); that takes neither operational frequency nor fuel efficiency into account, except for TriMet as detailed further on. The common logic is that an average heavy class commercial diesel vehicle operates for many times more hours and combusts a much larger volume of diesel than an average personal diesel vehicle.
Relative proportions of heavy class emissions are very likely underestimated on the assumptions used, and if fleets with more than 15 unfiltered heavy class diesel vehicles are required to filter all their vehicles, that filters over 40% of heavy class unfiltered diesel vehicles. To get over 50%, target those with 9 or more to replace or retrofit them. Over 40% of the lighter class unfiltered diesel fleet is operated by owners with more than 6 of them, and over 50% by those with 3 or more.
Concerns come to mind about legislative strategies, such as if a rule is created to limit the number of unfiltered heavy diesel vehicles per owner to 8 or fewer per operator, then owners may create new companies to shift unfiltered fleets to or sell them to companies with fewer than the limit to fund their transition. Alternative strategies to put filters on the outdated fleet or otherwise get them out of our neighborhoods entirely are preferable, of course.
2 hidden cells
DMV (< 26k Lb)
To begin the analysis...
...I downloaded the DEC 2023 xlsx files from Portland Clean Air and deleted unneeded columns in the original xlsx files for faster loading in Python, renaming them “DMV_DEC_2023_LITE” and “ODOT_DEC_2023_LITE” and handled each with unique logic.
References to vehicle “class” or “classes” (“light” or “heavy”) distinguish between DMV and ODOT, respectively. Let’s begin with DMV, and inspect the remaining columns:
The subset of current on-road registrations is selected by excluding rows where:
- “Title Status” is “CANCEL”
- “Cease Reason” is “Cancelled”
- “Plate Type” is “No Valid Plate”
- “Registration Expiration Date” is null or before the present year.
- “Gross Vehicle Weight” equals or exceeds 26k lb.
Active government fleets are handled separately, since their “Registration Expiration/Cease Date” is always “1999-12-31”, Cease Reason” is “No Valid Registration”, and “Title Status” is either “ISSUED” or “CANCEL”; except in the latter case or when weight equals or exceeds 26k lb., all diesel vehicles with a “Plate Type” of “Government Exempt Vehicle” are included. The column "Vehicle ID" has a unique identifier for each vehicle to avoid any double counting.
The reduction of rows from 846,787 in the prior display to 280,378 in the following one is due to cleaning out records according to the logic detailed above, where records most likely do not represent diesel vehicles currently operated on the roads of Oregon. Many are farm vehicles and other types of diesel powered equipment which are beyond the scope of this analysis. Null entries represent personal vehicles, with privacy protections covering the contact details.
Next, commercial vehicles are separated out from government and personal vehicles and grouped by Owner Name. Then, for each owner,the column 'Filtered' is assigned counts of vehicles made later than 2007 and 'Unfiltered' is assigned counts of vehicles made before 2008, since a requirement for filtration on new diesel vehicles was instituted in 2008, and a very small proportion of older vehicles are being retrofitted. References to “type” or “types” are about whether vehicles are 'Filtered' or 'Unfiltered', and “sector” or “sectors” are references to “government, commercial, private” fleet ownership.
Government fleets are sorted into types in the same way as commercial; the fleets are grouped by “Owner Name” and counts are summed per fleet for total “Filtered” and “Unfiltered” in those sectors for each unique "Vehicle ID". The displayed dataframe to follow includes government and commercial sector fleets. I added a Boolean column named “Is Gov”, set to “True” or “False” if the “Plate Type” is “Government Exempt Vehicle” or not, respectively.
The next procedure is zip code sortation. I compiled a list for Portland Metro area (Multnomah, Clackamas, Washington) from Zillow, and made another Boolean column “Is Metro”, set to “True” if a zip code in the “Address” appears in the list, or else “False”. The following displayed dataframe was saved as "dmv_summary.xlsx" and delivered to Portland Clean Air.