https://github.com/catalyst-cooperative/rmi-energy-communities

Partnership between Catalyst and RMI to identify energy communities as defined by the Inflation Reduction Act

https://github.com/catalyst-cooperative/rmi-energy-communities

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.0%) to scientific vocabulary

Keywords from Contributors

parallel generic energy-system-model projection distributed transformers archiving mesh interpretability optimizer
Last synced: 11 months ago · JSON representation

Repository

Partnership between Catalyst and RMI to identify energy communities as defined by the Inflation Reduction Act

Basic Info
  • Host: GitHub
  • Owner: catalyst-cooperative
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 9.28 MB
Statistics
  • Stars: 4
  • Watchers: 2
  • Forks: 2
  • Open Issues: 14
  • Releases: 0
Created almost 4 years ago · Last pushed 12 months ago
Metadata Files
Readme Funding License Code of conduct

README.rst

.. readme-intro

.. image:: https://github.com/catalyst-cooperative/rmi-energy-communities/workflows/tox-pytest/badge.svg
   :target: https://github.com/catalyst-cooperative/rmi-energy-communities/actions?query=workflow%3Atox-pytest
   :alt: Tox-PyTest Status

.. image:: https://img.shields.io/codecov/c/github/catalyst-cooperative/rmi-energy-communities?style=flat&logo=codecov
   :target: https://codecov.io/gh/catalyst-cooperative/rmi-energy-communities
   :alt: Codecov Test Coverage

.. image:: https://img.shields.io/pypi/pyversions/catalystcoop.cheshire?style=flat&logo=python
   :target: https://pypi.org/project/catalystcoop.cheshire/
   :alt: Supported Python Versions

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/psf/black>
   :alt: Any color you want, so long as it's black.

This repository is a collaboration between RMI and Catalyst Cooperative
to identify energy communities as defined by the Inflation Reduction Act.

Installation
============
To install the software in this repository, clone it to your computer using git.
If you're authenticating using SSH:

.. code:: bash

   git clone git@github.com:catalyst-cooperative/rmi-energy-communities.git

Or if you're authenticating via HTTPS:

.. code:: bash

   git clone https://github.com/catalyst-cooperative/rmi-energy-communities.git

Then in the top level directory of the repository, create a ``conda`` environment
based on the ``environment.yml`` file that is stored in the repo:

.. code:: bash

   conda env create --name energy_comms --file environment.yml

Note that the software in this repository depends on
`the dev branch `__ of the
`main PUDL repository `__,
and the ``setup.py`` in this repository indicates that it should be installed
directly from GitHub. This can be a bit slow, as ``pip`` (which in this case is
running inside of a ``conda`` environment) clones the entire history of the
repository containing the package being installed. How long it takes will depend on
the speed of your network connection. It might take ~5 minutes.

To generate the outputs in this repo you will need a pre-processed data archive for
PUDL to access. When you extract that archive you will need to tell PUDL where to
find it by putting the path to
that data in a file called ``.pudl.yml`` in your home directory.
For more instructions on setting up PUDL with the necessary data and settings
to generate the outputs in this repo, you can
`read the PUDL docs `__.

Generating Outputs
==================

To generate output dataframes of the qualifying energy community areas you can run
the following commands from your command line once the ``energy_comms`` package is
installed. There will be the county FIPS and name for every record, so for an
MSA that qualifies under the employment criteria, there will be a record for each
county in that MSA. If a Census tract qualifies under the coal criteria, the
``county_id_fips`` and ``county_name`` column will contains the FIPS and name for
the county that the tract is contained in. For more information about what these
qualifying criteria mean, see the below section on IRA criteria.

**Command Line Arguments:**

``--coal_area``: The type of qualifying area for the coal criteria.
Options are ``tract`` and ``county``. The legislative text specifies
tract and the default value for this argument is tract.

``--brownfields_area``: The type of qualifying area for the brownfields
criteria. Options are ``tract`` and ``county``. The legislative text doesn't
specify what areas should qualify by this criteria. The default value is tract.

``--update_employment_data``: Whether to use a fresh download of QCEW and LAU
data for the employment criteria.

``--output_filepath``: Absolute or relative file path to save the pickled output
dataframe.

**Commands:**

To save a pickled dataframe of all areas that qualify as an energy community and the
criteria they qualify by, you can run:

.. code:: bash

   get_all_qualifying_areas --coal_area tract --brownfields_area tract  --output_filepath all_qualifying_areas.pkl

To get just the counties or census tracts that qualify under the coal
closures community criteria run:

.. code:: bash

   get_coal_qualifying_areas --coal_area tract --output_filepath coal_qualifying_areas.pkl

To get the counties or census tracts that qualify under the
brownfields criteria run:

.. code:: bash

   get_brownfields_qualifying_areas --brownfields_area tract

To get the metropolitan statistical areas and non-metropolitan statistical
areas that qualify under the employment criteria run:

.. code:: bash

   get_employment_qualifying_areas --update_employment_data True

**Without Command Line:**

To generate these output dataframes not from the command line, you can call
the functions in the ``energy_comms.coordinate`` module.


**Output Dataframe Columns:**

``county_id_fips``, ``county_name``, ``state_id_fips``, ``state_name``,
``state_abbr``: County/state FIPS, name, abbreviation for every record.

``tract_id_fips``, ``tract_name``: Tract FIPS/name for records whose criteria is
on the tract level (brownfields or coal criteria only).

``geoid``: ``county_id_fips`` or ``tract_id_fips`` depending on the area level of
the brownfields and coal criteria, ``county_id_fips`` for the employment criteria
since this criteria specifies qualifying MSAs.

``site_name``: The mine name, plant name, brownfield site name, or MSA name for
the employment criteria.

``qualifying_criteria``: The criteria that qualifies the record, values are
``coalmine``, ``coal_plant``, ``coal_mine_adjacent_tract``,
``coal_plant_adjacent_tract``, ``brownfield``, or ``fossil_fuel_employment``.

``qualifying_area``: The area type that qualifies a record under its
``qualifying_criteria``, values are ``tract`` for the coal criteria, ``point``
for the brownfields criteria, ``MSA`` for the employment criteria.

``latitude``, ``longitude``: Latitude and longitude of the coal mine, coal plant,
or brownfield. Will be null for employment criteria records and records that
qualify due to adjacency to a coal plant or mine.

``site_geometry``, ``area_geometry``: The shape geometry of the site - a point for
brownfields and coal criteria records, null for other records. The shape geometry
for the area type of the qualifying criteria for that record (tract or county for
brownfields and coal criteria, county for employment criteria). The
``area_geometry`` shape matches the FIPS code in ``geoid``.


Inflation Reduction Act Energy Communities Criteria
===================================================

The IRA defines an energy community as an area that qualifies by at least
one of the following outlined criteria:

1. A Brownfield Site
2. A metropolitan statistical area or non-metropolitan statistical area which
   meets both of these requirements:
   - has at any time after Dec. 31 2009, had .17% or greater direct employment
   or 25% or greater local tax revenues related to the fossil fuel industry
   (extraction, processing, transport, storage of coal, oil, natural gas)
   - has an unemployment rate at or above the national average unemployment rate
   for the previous year.
3. A census tract in which after Dec 31, 1999 a coal mine has closed, or after
   after Dec 31, 2009 a coal-fired electric generating unit has been retired. Or
   a census tract that is directly adjoining an aforementioned census tract.


Development
===========

To run the pre-commit hooks before you commit code run:

.. code:: bash

   pre-commit install

Thank You
=========

Thank you to Resources for the Future for generously sharing with
us their own work and insight on identifing energy communities. You can view their
report on IRA energy communities
`here `__.

Owner

  • Name: Catalyst Cooperative
  • Login: catalyst-cooperative
  • Kind: organization
  • Email: hello@catalyst.coop
  • Location: United States of America

Catalyst is a small data engineering cooperative working on electricity regulation and climate change.

GitHub Events

Total
  • Push event: 33
Last Year
  • Push event: 33

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 265
  • Total Committers: 5
  • Avg Commits per committer: 53.0
  • Development Distribution Score (DDS): 0.449
Past Year
  • Commits: 265
  • Committers: 5
  • Avg Commits per committer: 53.0
  • Development Distribution Score (DDS): 0.449
Top Committers
Name Email Commits
Katie Lamb k****b@c****p 146
dependabot[bot] 4****] 86
pre-commit-ci[bot] 6****] 27
mariacastillo21 m****7@g****m 5
mariacastillo21 8****1 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: over 2 years ago

All Time
  • Total issues: 8
  • Total pull requests: 93
  • Average time to close issues: 23 days
  • Average time to close pull requests: 5 days
  • Total issue authors: 1
  • Total pull request authors: 4
  • Average comments per issue: 0.25
  • Average comments per pull request: 0.39
  • Merged pull requests: 69
  • Bot issues: 0
  • Bot pull requests: 78
Past Year
  • Issues: 8
  • Pull requests: 92
  • Average time to close issues: 23 days
  • Average time to close pull requests: 3 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 0.25
  • Average comments per pull request: 0.38
  • Merged pull requests: 69
  • Bot issues: 0
  • Bot pull requests: 78
Top Authors
Issue Authors
  • katie-lamb (8)
Pull Request Authors
  • dependabot[bot] (61)
  • katie-lamb (14)
  • pre-commit-ci[bot] (11)
  • mariacastillo21 (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (61) github_actions (9) rmi (4)

Dependencies

.github/workflows/bot-auto-merge.yml actions
  • ridedott/merge-me-action v2 composite
  • tibdex/github-app-token v1 composite
.github/workflows/tox-pytest.yml actions
  • 8398a7/action-slack v3 composite
  • actions/checkout v3 composite
  • codecov/codecov-action v3.1.3 composite
  • conda-incubator/setup-miniconda v2.2.0 composite
docker/Dockerfile docker
  • condaforge/mambaforge 4.12.0-0 build
environment.yml pypi
pyproject.toml pypi
  • Shapely >1.8.0,<2.1
  • beautifulsoup4 >=4.11,<4.13
  • catalystcoop-pudl @ git+https://github.com/catalyst-cooperative/pudl@dev
  • geopandas >=0.11,<0.14
  • openpyxl >=3,!=3.1.1,<4
  • pandas >=1.5,<2
  • plotly >=5.11,<5.16
  • pygeos >=0.11,<0.15
  • sqlalchemy >=1.4,<2