GithubHelp home page GithubHelp logo

vkoves / electrify-chicago Goto Github PK

View Code? Open in Web Editor NEW
12.0 5.0 6.0 24.64 MB

Learn about Chicago's most polluting buildings, and what they can do to clean up their act!

Home Page: http://electrifychicago.net

JavaScript 2.61% Vue 82.03% SCSS 1.59% Python 13.40% Shell 0.13% Dockerfile 0.25%
chicago chicago-data-portal climate-change electrification

electrify-chicago's Introduction

Hi there, I'm Viktor πŸ‘‹πŸ» πŸ‘¨πŸ»β€πŸ’»

I’m Viktor KΓΆves, a front-end engineer and web accessibility specialist who is passionate about creating user experiences that are intuitive, beautiful, and accessible.

Find me on the web

electrify-chicago's People

Contributors

abhinav-chdhary avatar alexkcode avatar derekeder avatar gaylem avatar granttchart avatar pldorn avatar suragnuthulapaty avatar viennguyen2026 avatar vkoves avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

electrify-chicago's Issues

Add Pie Chart For Energy Use by Type

All energy uses are in a standard unit (kBTU) and so we should be able to easily show how much energy a building gets from each source, like so:

It might be worth getting feedback on whether this is useful, but I think it's good to show off if a building has low usage in some areas that's offset by, say, high district heat use.

Update Data to 2022

The city data has been updated as of Jan 8th, 2024 with new 2022 data! We're currently on 2021 data, so we should update our data.

Screenshot from 2024-01-09 20-37-06

Interesting note: It seems IIT buildings no longer reported πŸ•΅πŸ»β€β™‚οΈ

Add Automated Tests for Cleaning All Years Data

As the site gets more complex, it's important we validate core behaviors, including:

  • Buildings rendering properly with a wide variety of properties (new data, old data, with district chilling, without, with natural gas use an without)
  • Validating our data process works properly and generates correct calculations (we could make a small test CSV with 100 buildings and check calculations)

Provide Context On Stats By Property Type

Provide context on building type for emissions intensity (grocery is usually high for instance). This might look like saying "_x median for this type" or just listing the median of that type.

Tag Loyola Buildings & Missing Other Buildings

Loyola is another big Chicago university, so we should find and tag those. Here's a starting list from Rachel at Climate Reality:

Some unflagged IIT buildings:
IIT Research Tower @ 10 West 35th St
Illinois Institute of Technology @ 3300 South Federal Street
Pritzker Science Center @ 3105 S Dearborn St

Some unflagged DePaul buildings:
CDM Center @ 243 S Wabash Ave
Thomas P. Levan Center @ 2322 N Kenmore Ave
McCabe Hall @ 900 W Benden Ave
College of Education Building @ 2247 N Halstead Ave
Peter V. Byrne Hall @ 2219 N Kenmore Ave
Munroe Hall @ 2312 N Clifton Ave
Seton Hall (listed as 2325 N Sheffield on electrifychicago.net, but 2425 in DePaul’s own listing)
Belden-Racine Hall @ 2311 N Racine Ave
Arts & Letters Hall @ 2315 N Kenmore Ave
Arthur J Schmitt Academic Center @ 2320 N Kenmore Ave
Lewis & O’Malley @ 25 E Jackson Blvd
Daley Center @ 14 E Jackson Blvd
990 W Fullerton Ave
John T Richardson Library @ 2350 N Kenmore Ave
1150 W Fullerton

An unflagged Northwestern building:
Chicago Campus 2 @ 251 E Huron St

Some unflagged University of Chicago buildings:
Laird Bell Law Quadrangle @ 1111 E 60th St
Kersten Physics Teaching Center @ 5720 S Ellis Ave
Gleacher Center @ 450 N Cityfront Plz
Social Sciences Research Building @ 1126 E 59th St

Some Loyola University of Chicago buildings, to get us started with a new Loyola large building owner page:
Damen Student Center @ 6511 N Sheridan Rd
Corboy Law Center @ 25 E Pearson St
Norville Center - Gentile Center @ 6526 N Winthrop
Mundelein Center @ 1020 W Sheridan Rd
Halas Recreation Center @ 6458 N Winthrop Ave
Crown Center @ 1001 1025 W Loyola Ave

Add Graph For Emissions Over Time On Building Details (Requires Integrating Full Data Source)

Blocked by issue #73, which will integrate the full data source.

Buildings like Keating may still be very high emitters, but they also have had emissions (and natural gas use) decrease over time, so to give a full picture it would be good to integrate historical data into a line graph showing the emissions over time.

This would also make it so that if we get, say, 2021 emissions data the old data would still be available and you could see the change YoY.

Since we have lots of fields you might want to see over time, we'd probably want to make the graph interactive, letting the user travel between different visualizations, but defaulting to a really useful one, like GHG intensity.

Investigate Moving To Docker For An Easier Setup

We should look into how we can use Docker to ensure a consistent development environment for all of our volunteers.

  • Investigate setup for frontend only site (Hack for LA has a frontend-only site, we could look at how they set theirs up with Docker)
  • Implement and test locally
  • Propose changes to setup instructions for README

Add Price Estimates for Electricity and Gas Use

Since all properties are in Chicago, we could use an average price per therm and do some calculations to show how much we think a property is spending on gas and electric use. This would be useful for activists to be able to pitch to building owners that they are spending way more than other buildings.

We may even be able to make an estimated cost per square foot!

A helpful resource: https://www.bls.gov/regions/midwest/news-release/AverageEnergyPrices_Chicago.htm

2021 Data

Using 2021 data from the source above because it's our latest year data, we could put that in a constant

July 2021 Chicago gas price per Therm: $1.101
July 2021 Chicago electric price per kWh: $0.147

Fix Loud Errors on Gridsome Build

Running a prod build generates a lot of loud errors we should investigate, potentially about generating pages for buildings without emissions.

Fix pandas data type interpretation

For certain fields the data type is being interpreted as something undesirable before being converted, changing the data institutionally. For example, this happens with 'Latitude', 'Longitude', which gets truncated as a float type before it gets converted to a string type. This could be happening with other columns as well, but only those two columns are confirmed. We should give the pandas read_csv method fixed data types (at least for the columns we care about and have fixed type information for) to read the data.

Figure Out A Way to Get Ward Data For All Buildings

The original data had ward numbers but from some quick checks it was wrong. We should figure out a way to bring in ward data and make it so:

  1. All buildings show the ward they are in
  2. We can have a filter by ward

This would be helpful so alderpeople can contact offending buildings in their ward and use that in things like zoning conversations.

Relates to issue #30

Upgrade Project to Node 18 or Above

Node is on version 22, and before our Docker work, many folks had issues because we use Node 18. Although the dependency isn't an issue anymore, we should make sure we're up to date. Let's see how we can do it, will likely require upgrading Gridsome

Add Pagination To Search Page So You Can Explore More Data

Now especially that we are loading in tens of thousands of buildings, we should add pagination to the search page, otherwise you can't even view all buildings of a certain type, like so:

Screenshot from 2023-08-30 11-53-49

The issue is that Gridsome has a Pager component, but it's mostly intended for static use, while the search page is client-side.

We may also want to add more filtering or order tools, but that can be a separate issue.

Create Map Of All Properties in Data Set

This would be useful so folks can explore areas around their home and work and click around to properties. To start this could just be a map with interactive points to view basic details or jump to the details page, but ideally we should color rank each dot to indicate good and bad buildings by GHG intensity.

Median Multiplier Is Missing

The X times the median building line is missing from all buildings (see Crown Hall) making it harder to see how many times worse a building is:

The multiplier (e.g. 90x the median building) should still be in the code but it isn't rendering for some reason.

Add Municipal Property Owners (City of Chicago, CHA, CPS, etc.)

Let's look up city of Chicago buildings, including police, fire, public housing, etc. Then we can add the property owners into the buildings-custom-info.constant.vue, where you have to:

  1. Configure a new owner (look at say, Northwestern) with logos a key you'll use to tag buildings, and a name
  2. Tag specific buildings with the new owner by their ID (shown at the top of a building's details page after "Chicago Building ID")

This PR may be a helpful guide: PR #8

Calculate Potential Fines Based on Number of Non-Submitting Buildings

Calculate the total amount of potential fines based on the number of non-compliant buildings in the data according to this ordinance: https://www.chicago.gov/content/dam/city/progs/env/EnergyBenchmark/SO2017-7060.pdf

  1. Get latest Environment Sustainable dataset from the Chicago Data Portal here. The export can be found here:
    Chicago_Energy_Benchmarking_20240220_superset.csv
  2. Find number of buildings not in compliance with city emission data requirements and their associated square footage.
  3. Map buildings to fine levels based on building square footage.
  4. Sum total fines based on those fines associated to the buildings

Buildings that are non-compliant will show "Not Submitted" in the Reporting Status column of the data. The data in the link shown above should already be filtered.

Improve Search with Filters by Sector & Show More Results

For climate folks looking to compare properties, it's really useful to filter by property type, which you can currently search by, but it'll often show other matches.

It would also be good to show more than 50 results (perhaps with pagination) or be able to sort by lowest GHG emissions. Either way, it's currently unclear from the bottom of the search page that results are being truncated after 50.

Screenshot from 2023-05-27 21-55-25

Rankings By Type Aren't Useful

When ranking buildings by type, the rankings aren't useful:

Screenshot from 2023-06-20 21-21-17

This is because different categories are vastly different sizes, like data centers (3 buildings) or K12 (89 buildings). So we should likely do something like:

  1. If 1-2 properties, no rankings (best 1 among 2 is useless)
  2. If 3 - 5 properties do top 1 best/worst
  3. If 6 - 8 properties do top 2 best/worst
  4. If 9 - 15 properties do top 3 best/worst
  5. If > 20 properties do top 5 best/worst

Fix IIT Buildings Having Incorrect Location

For some reason all IIT buildings are mapped to this location by the Dearborn Homes:

image

We should create a new overrides.json (or corrections.json) that can be used to overwrite fields for buildings in the data pipeline, and fix the IIT building locations manually.

Add Mobile Menu to Cleanup Header

On mobile, the header is getting increasingly cluttered:

We should add a hamburger style mobile menu and make it so that you don't see all those options by default.

Update Site with Newly Released 2021 Emissions Data

Exciting news, our data source got updated!

image

We should re-pull the main CSV and update the site with the 2021 data. This is a good opportunity for some data pipeline tuning, since I did a lot of manual work originally, and we should expect annual updates. Some things to do may be:

  1. Create a clear data workflow README
  2. Have a dataset info JSON file or something so we can store the year the data is relevant for
  3. Figure out how to handle buildings that no longer reported data in 2021 (see comment below)
  4. ???

Add Autocomplete For Header Search Bar

For the search bar in the header on the main page (where it says "Search property name/address"), it would be nice if it would show suggestions of buildings as you type, similar to how on the Map page you can filter by location and it suggests places/addresses from Google Maps.

Integrate Full Data Source (Historic Data)

Depends on #89.

Currently we are only feeding the "latest year" (the last year of data that we have, not necessarily the current year) to the frontend of the website. We should track the below fields over time so that we can build further data visualizations (e.g. issue #4).

Fields to track over time:

  • Submission Status (so we know if they skipped a year?)
  • Square Footage
  • TotalGHGEmissions
  • GHGIntensity
  • SiteEUI
  • SourceEUI
  • ENERGYSTARScore
  • ElectricityUse
  • NaturalGasUse
  • DistrictSteamUse
  • DistrictChilledWaterUse

The main script for this change should be src/data/scripts/clean_and_pare_down_data_current_year.py. The current thinking is we either modify that component to do what we want or, more ideally, we create a new script that outputs to a different file to maintain the stability of current processes.

This should output to a separate CSV file in the dist (e.g. buildings_across_years.csv) so that building list pages and search pages don't need to do a bunch of complex filtering. Also the current ranking UI might break. We'd basically have a latest data set (what we have right now) and the historical data we can query building by building.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.