https://github.com/catalyst-cooperative/rmi-ferc1-eia

A collaboration with RMI to integrate FERC Form 1 and EIA CapEx and OpEx reporting

https://github.com/catalyst-cooperative/rmi-ferc1-eia

Science Score: 36.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
    1 of 10 committers (10.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.7%) to scientific vocabulary

Keywords from Contributors

transformation emissions parallel energy-system-model pudl natural-gas ghg ferc etl epa
Last synced: 10 months ago · JSON representation

Repository

A collaboration with RMI to integrate FERC Form 1 and EIA CapEx and OpEx reporting

Basic Info
  • Host: GitHub
  • Owner: catalyst-cooperative
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 487 MB
Statistics
  • Stars: 3
  • Watchers: 3
  • Forks: 3
  • Open Issues: 31
  • Releases: 0
Created almost 7 years ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

tox-pytest codecov code style

This repository is a collaboration between RMI and Catalyst Cooperative to connect FERC Form 1 plant records, EIA plant records and depreciation study records at the most granular level.

Installation

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

sh git clone git@github.com:catalyst-cooperative/rmi-ferc1-eia.git

Or if you're authenticating via HTTPS:

sh git clone https://github.com/catalyst-cooperative/rmi-ferc1-eia.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:

sh conda env create --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.

The environment.yml file also specifies that the Python package defined within this repository should be installed such that it is editable. This will allow you to change the modules that are part of the repository and have the installed software reflect your changes.

If you want to make changes to the PUDL software as well, you can clone the PUDL repository into another directory (outside of this repository), and direct conda to install the package from there. A commented out example of how to do this is included in environment.yml. NOTE: if you want to install PUDL in editable mode from a locally cloned repo, you'll need to comment out the dependency in setup.py as it may otherwise conflict with the local installation (pip can't resolve the precedence of different git based versions).

After any changes to the environment specification, you'll need to recreate the conda environment. The most reliable way to do that is to remove the old environment and create it from scratch. If you're in the top level rmi-ferc1-eia directory and have the pudl-rmi environment activated, that process would look like this:

sh conda deactivate conda env remove --name pudl-rmi conda env create --file environment.yml conda activate pudl-rmi

In order to use this repository, you will need a recent copy of the PUDL database. You You can either create one for yourself by running the ETL pipeline, or you can follow the instructions in the PUDL examples repository to download the pre-processed data alongside a Docker container.

To work with the pre-processed data outside of the Docker container, you will need to tell the PUDL software where to find that data on your computer. When you extract the pre-processed data archive, it will include a directory named pudl_data -- you need to put the path to that directory in a file called .pudl.yml in your home directory. The contents will need to look like the following (but with real paths...):

yml pudl_in: /path/to/your/downloaded/pudl_data pudl_out: /the/same/path/to/pudl_data

NOTE: If you get to a point where you need or want to run the PUDL ETL for yourself, you will need to reset these paths to another location so that you don't accidentally overwrite the pre-processed data.

Tests

This repo finally has some tests! wahoo! Unfortunately, there are memory issues getting in the way of letting us run all of the tests via github actions (PUDL issue #1457).

Regenerate All Outputs & Validate

The full CI tests can be run via pytest or tox. This will take a while because it regenerates all of the outputs and then runs relatively quick tests on those outputs.

sh pytest test/integration/rmi_out_test.py

OR

sh tox

Validate Existing Outputs

If you have recently processed output cached in the output directory (pudl_rmi.OUTPUTS_DIR) and just want to test the consistency of the outputs, there is a quick test to run. This test checks whether the processing of the data has or has not introduced errors. There are known errors being stored in the input directory (pudl_rmi.INPUTS_DIR). We expect most of these error exist because of missing connections between datasets.

Only run these tests if you know your cached outputs are up to date and consistent with each other.

sh pytest test/integration/rmi_out_test.py::test_consistency_of_data_stages

Process Overview

Below is a visual overview of the main processes in this repo: Design overview:

Each of the outputs shown above have a dedicated module:

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: 12
Last Year
  • Push event: 12

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 525
  • Total Committers: 10
  • Avg Commits per committer: 52.5
  • Development Distribution Score (DDS): 0.465
Past Year
  • Commits: 56
  • Committers: 6
  • Avg Commits per committer: 9.333
  • Development Distribution Score (DDS): 0.536
Top Committers
Name Email Commits
cbz c****l@c****p 281
Austen Sharpe a****e@g****m 76
Zane Selvans z****s@c****p 60
Katie Lamb k****b@c****p 47
pre-commit-ci[bot] 6****] 20
e-belfer e****r@b****u 14
dependabot[bot] 4****] 11
Austen Sharpe 8
jrea 5****i 5
sammardell 5****l 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: over 2 years ago

All Time
  • Total issues: 56
  • Total pull requests: 44
  • Average time to close issues: 5 months
  • Average time to close pull requests: 2 months
  • Total issue authors: 4
  • Total pull request authors: 7
  • Average comments per issue: 0.63
  • Average comments per pull request: 1.25
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 36
Past Year
  • Issues: 21
  • Pull requests: 23
  • Average time to close issues: 9 days
  • Average time to close pull requests: 21 days
  • Issue authors: 3
  • Pull request authors: 4
  • Average comments per issue: 0.76
  • Average comments per pull request: 0.61
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 20
Top Authors
Issue Authors
  • cmgosnell (18)
  • aesharpe (18)
  • e-belfer (16)
  • swinter2011 (4)
Pull Request Authors
  • dependabot[bot] (32)
  • pre-commit-ci[bot] (3)
  • cmgosnell (2)
  • e-belfer (2)
  • zaneselvans (2)
  • katie-lamb (1)
  • bendnorman (1)
Top Labels
Issue Labels
rmi (39) ferc_eia (11) deprish (7) Epic (7) deprish_eia (3) deprish_ferc (3) modernize (3) bug (1) glue (1) performance (1) eia_pp (1) override (1) tests (1)
Pull Request Labels
dependencies (32) github_actions (16) rmi (13)

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/cache v3.0.5 composite
  • actions/checkout v3 composite
  • codecov/codecov-action v3.1.0 composite
  • conda-incubator/setup-miniconda v2.1.1 composite
docker-compose.yml docker
  • catalystcoop/pudl-rmi latest
pyproject.toml pypi
  • catalystcoop-pudl @ git+https://github.com/catalyst-cooperative/pudl@main
  • fuzzywuzzy >=0.18,<0.19
  • pandas >=1.5,<3.0
  • python-levenshtein >=0.20,<1.0
  • recordlinkage >=0.14,<0.16
  • sqlalchemy >=1.4,<3.0
environment.yml pypi
  • simpledbf *