Skip to content

Asbuga/Ukrainian-NPPs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

34 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Š Ukrainian NPPs: Open Data Analysis

Nuclear Energy Open Data Python Status

Table of Contents

About

This project explores open datasets on radioactive emissions and discharges from
nuclear power plants (NPPs) in Ukraine. Using Python, Pandas, and Plotly, we
analyze environmental indicators across several stations and visualize quarterly
changes over time.
All data is retrieved from publicly available government sources.

Examples

plot_index_radioactive_releas_all_stations plot_co_60_dump_all_stations

🎯 Goal

Better understand trends in emission levels and present the data in an
accessible, interactive format.

πŸ’‘ Why This Project Matters

Ukraine's energy sector, especially nuclear energy, is vital and sensitive.
However, public data on its status is often fragmented or not easily accessible.

This project makes Ukrainian NPP (Nuclear Power Plant) data:

  • πŸ“‚ Accessible β€” parsed and structured from open government sources
  • πŸ” Usable β€” cleaned and pre-processed for analysis
  • πŸ” Reusable β€” exposes data for other developers, analysts, or watchdogs

By offering an interface (API and visuals in the future), this tool can help:

  • Analysts monitor energy safety and trends
  • NGOs use this data for transparency reports
  • Developers integrate it into educational or civic tech tools

πŸ§ͺ Technologies | Stack

  • Backend: Python, Request
  • Data Analysis: Pandas, Plotly
  • Development Tools: Poetry, Ruff, Black
  • Testing: Unittest, Pytest
  • Notebooks: Jupyter Notebook

πŸ“‚ Data Source

πŸ” Key Features

  • Fetch real-time datasets
  • Process Excel reports into structured DataFrames
  • Build interactive, filterable visualizations (Plotly)
  • Analyze radioactive emissions, discharges, and thresholds
  • Modular structure and reusable components

πŸ“ˆ Use Case

This project allows researchers and developers to explore environmental metrics
such as:

  • Inert radioactive gas emissions (IRG)
  • Iodine radionuclides index
  • Long-living isotopes
  • Cs-137 and Co-60 emissions/discharges
  • Quarterly and annual release indexes

πŸš€ Quickstart

Follow these steps to set up and run the project:

Prerequisites

Steps

  1. Clone the repository:

    git clone https://github.com/Asbuga/Ukrainian-NPPs.git
    cd Ukrainian-NPPs
  2. Create and activate your environment with Poetry:

    poetry install

Now you're ready to explore the project!

πŸ““ Run the notebook

To analyze data or visualize results, you can use Jupyter Notebook. Follow these
steps:

Run Jupyter Notebook:

poetry run jupyter notebook

Now you can explore and analyze the data interactively!

🧠 Project Structure

β”‚
β”œβ”€β”€β”€.github                      # GitHub-specific configuration folder
β”‚   └───workflows
β”‚           ci.yml               # GitHub Actions CI workflow (e.g., for testing, linting)
β”œβ”€β”€β”€common                       # Core Python modules for shared logic
β”‚   β”‚   client.py                # Likely contains client logic
β”‚   β”‚   translate_text.py        # Module for text translation functionality
β”‚   β”‚   utils.py                 # Utility/helper functions
β”‚
β”œβ”€β”€β”€docs                         # Project documentation
β”‚   └───img                      # Images used in READMI.md
β”‚           co_60_dump_all_stations.png
β”‚           index_radioactive_releas_all_stations.png
β”‚
β”œβ”€β”€β”€notebook                     # Jupyter notebooks for research and prototyping
β”‚       research.ipynb           # Analytical  notebook
β”‚
β”œβ”€β”€β”€tests                        # Test suite for the project
β”‚   └───unit                     
β”‚           test_client.py      # Tests for the `client.py` module
β”‚           test_data_format.py # Tests for data formatting logic
β”‚           test_translat       # Tests for translate text.
β”‚
β”‚   .pre-commit-config.yaml      # Configuration for pre-commit hooks
β”‚   LICENSE                      
β”‚   poetry.lock                  # Locked versions of dependencies (used by Poetry)
β”‚   pyproject.toml               # Project configuration and dependency definitions (Poetry)
β”‚   README.md                    # Project overview and instructions

πŸ§ͺ Testing

To ensure the project is working correctly, you can run the test suite. Follow
these steps:

  1. Activate the virtual environment.

  2. Run the tests using pytest:

    poetry run pytest

    For a more detailed output, use the verbose mode:

    poetry run pytest -v

This will execute all unit and integration tests and provide a summary of the
results.

⚠️ License & Data Usage

All datasets are sourced from data.gov.ua and distributed under the Creative
Commons Attribution 4.0 License (CC BY 4.0).
Make sure to attribute the original source if you reuse the data.

πŸ‘¨β€πŸ’» My Role

This project was created as a part of my learning path and personal interest in
open data and energy infrastructure in Ukraine.
My main responsibilities and skills demonstrated here include:

  • πŸ”§ Data Processing: Data parsing, cleaning, transformation using Python
    & Pandas
  • πŸ“Š Data Analysis: Exploratory data analysis of NPP metrics, preparing it for
    visualization
  • 🧱 Project Structure: Organizing code for clarity, scalability, and future
    API integration

πŸ“š What I Learned / Built Here

  • Processing open government data: collection, cleaning, transformation
  • Working with tabular sources (CSV, XLSX) using Pandas
  • Building graphs/visualizations using Plotly
  • Organizing the project structure for scaling

πŸ‘¨β€πŸ’» Author

Andrii Buha
Python Backend Developer | Django & FastAPI | Data Processing

If you're interested in collaboration, feedback, or hiring β€” feel free to
reach out:

πŸ“¬ LinkedIn
πŸ’» GitHub

πŸ› οΈ Development plans

  • REST API
  • Tests
  • Deploy

About

Analysis and interactive visualization of radioactive emissions from Ukrainian nuclear power plants using open government data.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors