Skip to main content

An open data processing pipeline for US energy data

Project description

Project Status: Active PyTest Status Codecov Test Coverage Read the Docs Build Status ruff pre-commit CI Zenodo DOI Schedule a 1-on-1 chat with us about PUDL. Follow Catalyst Cooperative on Mastodon Follow Catalyst Cooperative on LinkedIn Follow @catalyst.coop on BlueSky The PUDL Dataset on Kaggle PUDL in the AWS Open Data Registry

What is PUDL?

The PUDL Project (pronounced puddle) is an open source data processing pipeline that makes US energy data easier to access and use programmatically.

Hundreds of gigabytes of valuable data are published by US government agencies, but it’s often difficult to work with. PUDL takes the original spreadsheets, CSV files, and databases and turns them into a unified resource. This allows users to spend more time on novel analysis and less time on data preparation.

The project is focused on serving researchers, activists, journalists, policy makers, and small businesses that might not otherwise be able to afford access to this data from commercial sources and who may not have the time or expertise to do all the data processing themselves from scratch.

We want to make this data accessible and easy to work with for as wide an audience as possible: anyone from a grassroots youth climate organizers working with Google sheets to university researchers with access to scalable cloud computing resources and everyone in between!

PUDL is comprised of three core components:

Raw Data Archives

PUDL archives all our raw inputs on Zenodo to ensure permanent, versioned access to the data. In the event that an agency changes how it publishes data or deletes old files, the data processing pipeline will still have access to the original inputs. Each of the data inputs may have several different versions archived, and all are assigned a unique DOI (digital object identifier) and made available through Zenodo’s REST API. You can read more about the Raw Data Archives in the docs.

Data Pipeline

The data pipeline (this repo) ingests raw data from the archives, cleans and integrates it, and writes the resulting tables to SQLite and Apache Parquet files, with some accompanying metadata stored as JSON. Each release of the PUDL software contains a set of DOIs indicating which versions of the raw inputs it processes. This helps ensure that the outputs are replicable. You can read more about our ETL (extract, transform, load) process in the PUDL documentation.

Data Warehouse

The SQLite, Parquet, and JSON outputs from the data pipeline, sometimes called “PUDL outputs”, are updated each night by an automated build process, and periodically archived so that users can access the data without having to install and run our data processing system. These outputs contain hundreds of tables and comprise a small file-based data warehouse that can be used for a variety of energy system analyses. Learn more about how to access the PUDL data.

What data is available?

PUDL currently integrates data from:

High Priority Target Datasets

If you’re interested in any of these datasets, we’d love to integrate them into PUDL. Get in touch!

How do I access the data?

For details on how to access PUDL data, see the data access documentation. A quick summary:

Organizations using PUDL

This is a partial list of organizations that have used PUDL in their work. If your organization uses PUDL we’d love to list you here! Please open a pull request or email us at hello@catalyst.coop!

Contributing to PUDL

Find PUDL useful? Want to help make it better? There are lots of ways to help!

Licensing

In general, our code, data, and other work are permissively licensed for use by anybody, for any purpose, so long as you give us credit for the work we’ve done.

Contact Us

About Catalyst Cooperative

Catalyst Cooperative is a small group of data wranglers and policy wonks organized as a worker-owned cooperative consultancy. Our goal is a more just, livable, and sustainable world. We integrate public data and perform custom analyses to inform public policy (Hire us!). Our focus is primarily on mitigating climate change and improving electric utility regulation in the United States.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

catalystcoop_pudl-2024.11.0.tar.gz (46.1 MB view details)

Uploaded Source

Built Distribution

catalystcoop.pudl-2024.11.0-py3-none-any.whl (3.5 MB view details)

Uploaded Python 3

File details

Details for the file catalystcoop_pudl-2024.11.0.tar.gz.

File metadata

  • Download URL: catalystcoop_pudl-2024.11.0.tar.gz
  • Upload date:
  • Size: 46.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for catalystcoop_pudl-2024.11.0.tar.gz
Algorithm Hash digest
SHA256 91d3ba4aefb6ac4d9e346da7f89c7013e81afa8b00edd049e38f2bdd83bdf8c0
MD5 67f33eb4cbbcda013020bf4249f87ad6
BLAKE2b-256 d3779869c451dfbdd0675cd1242f6d507609e301fe91b5152fc39780e8eec5f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for catalystcoop_pudl-2024.11.0.tar.gz:

Publisher: release.yml on catalyst-cooperative/pudl

Attestations:

File details

Details for the file catalystcoop.pudl-2024.11.0-py3-none-any.whl.

File metadata

File hashes

Hashes for catalystcoop.pudl-2024.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 769b291fb55a541d579941f10b4a52d81cb53e778abbdee3c2b619f55818937d
MD5 a422578fe4b513198927174129d921b2
BLAKE2b-256 a103c40970b1567511d96c0d59970264c2576bf33c1fc6daa252bc77538825c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for catalystcoop.pudl-2024.11.0-py3-none-any.whl:

Publisher: release.yml on catalyst-cooperative/pudl

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page