310 likes | 325 Views
Discover how Delaware County, Ohio's Board of Elections and GIS department collaborated to create an open source election reporting system, ensuring accurate and efficient reporting of election results. Learn about their challenges, solutions, and the benefits of leveraging open source technology.
E N D
Leveraging Open Source For Timely Election Reporting Robert Parsons GIS Director Delaware County Ohio GIS Conference September 23 – 25, 2019 Hyatt Regency Columbus Columbus, Ohio
Open Source Election Reporting • Delaware County Facts • Area: 547 Sq. Miles • Pop: 200,000+ • Founded: February 10, 1808 • Precincts: 164 • Registered Voters: 139,500+
Open Source Election Reporting • Board of Elections: • Governs General, Primary and Special Elections • Country Wide to Village candidate and Issues • Also multi-county jurisdictions • County Career Centers; Fire Districts • Complicated Spatial Exercise • For any one precinct there can be multiple ballots • Multiple school districts • Multiple library districts • Township and City
Open Source Election Reporting • Board of Elections: • Precincts • Based on Registered Voters • State Law requires no more than 1400 voters per precinct • Precinct Doppler radar warnings go off when 1200 voters are reached • Addresses, Addresses, Addresses • Registered Voters can have addresses all over the world • BOE works closely with GIS Department
Open Source Election Reporting • Board of Elections and GIS • We work together on: • Addresses ( very important ) • Sometimes we encounter issues between Engineer’s Office and USPS • Great way to Quality Control • Precinct polygon construction • Not deciding on “where” which is the BOE responsibility • We draw what they need and make suggestions if needed • Precinct lines do go through houses • Depends on where the bedroom is
Open Source Election Reporting • Board of Elections and GIS • We work together on: • Election Day Maps • GIS produces maps and map books of precincts • These are provided to each Voting location • Can be used to identify where a person can vote
Open Source Election Reporting • Results Viewer Project Inception • Board of Elections wanted a results website • Similar to Franklin and Stark Counties • Contacted several vendors • Cost and time were issues • The Board of Elections contacted GIS • Could we build it? • Did we have the bandwidth? • Did we have the time?
Open Source Election Reporting • Results Viewer Project Inception • What did we have to work with • ArcGIS Server • ArcSDE/ SQL Server • ArcGIS Javascript API • ES&S Unity EMS • Text File Output • Did we have the bandwidth? • Did we have the time?
Open Source Election Reporting Output File On Election Night
Open Source Election Reporting • 1st Iteration • Created a Results Table • From the First Text File • Precincts FC • Python script to: • Truncate tables • Import the text file. • Import Joined Feature Class
Open Source Election Reporting • 1st Iteration • Polls close at 7:30 PM • The first run loads all the Absentee Ballots • It is the same file that is uploaded to the State • Regular updates start • The First run loads all the Absentee Ballots • The website will not update until the first precinct into the Board of Elections gets processed
Open Source Election Reporting • 1stIteration • Polling locations process each machine after the polls close • Each machine must be closed by a rep from both parties • All of the machine voting devices are secured • They are delivered to the board by a representative from both parties • The Board then processes the precincts • The script runs every 15 minutes • To pickup the changes • Based on timestamp of the 2nd Text file
Open Source Election Reporting • 1st Iteration-After Action Review • Users experience extremely slow response times • 4-cluster ArcGIS Server configuration • Maxed out on Memory • Had to shut down all other services • The truncates and reloads of the tables and feature classes caused the issues • It was a good first effort but we needed something new
Open Source Election Reporting • 2nd Iteration • We chose to remove the Database and Feature class processing • We converted the two text files to a combined .json file • Converted our Precinct shapes to a GeoJSON • We created a web service for the JSON files using ASP.NET Web API
Open Source Election Reporting • 2nd Iteration • Leaflet gave us the ability to: • JSON and GeoJSON files • Our web services • Basemaps from esri • Built for small simple datasets • Our precincts fit the bill • Symbolize on the fly • Running scroll of races and issues
Open Source Election Reporting • 2nd Iteration • Alter the text file which identifies the Candidates and Issues • Added a value for the “field” Name • Each Race and Candidate and Issue get a unique field name • Added a value for the “prec” field • Which precincts vote for what • Values of ALL or List of Precincts
Open Source Election Reporting • 2nd Iteration • Python Script to convert output of the two text files to json • Uploads the file to Web Server • Leaflet App is constantly asking the Web Server for fresh data
Open Source Election Reporting • 2nd Iteration • Text Files to JSON • Added “field” • For each candidate or issue • Added “prec” • Dictionary List of all the precincts that vote for the candidate or issue
Open Source Election Reporting • 2nd Iteration-After Action Review • Customer (BoE) and Users were: • Very pleased with the speed and response • Very pleased with the look and feel • Very pleased with the mobile version as well • GIS Department • Very pleased with web service response • Web server not pegged
Open Source Election Reporting • 3rd Iteration • The Board of Elections bought a new election reporting system • UnisynOpenElect Voting Solution • Output has changed from a text file to an XML • XML looks far more complicated • Export of the ballots-results all in one file • One line of python converts it to json • However just one line of code in python converts
Open Source Election Results • http://www.delco-gis.org/liveelectionresults/ • Works on mobile as well
Open Source Election Reporting • 3rd Iteration • How does it work • User Selects a contest from a drop-down menu • Contains the Contest Name and the Associated ID • The system searches for the matching ID in the json • For that contest it finds the candidate vote counts by Precinct ID • Matches the PrecinctIDs to display the precincts symbolized
Open Source Election Reporting • Future • Presentation tweaks • What can we do to make it faster • Implement any other changes from vendor • Results viewer for all years • Continue to work with Board of Elections on the Audit of addresses
Open Source Election Results • Volunteer to work an Election • You get a feel for the Electoral process • You are a part of something that has been going on for 243 years • Check with your job because they may support you
Thank You for Attending • Robert Parsons • rparsons@co.delaware.oh.us