GitHunt
JA

Jakub-Espandr/MetriCalc

A modern, cross-platform desktop app for calculating classification metrics from confusion matrices. Includes XLSX export, real-time language switching, and batch processing with responsive UI.

MetriCalc Logo

MetriCalc

(Born4Flight | FlyCamCzech)

UAV AreaCalc Metri-Calc Interface

Overview

MetriCalc is a clean, efficient tool designed to calculate key statistical metrics from confusion matrices exported from ArcGIS Pro or other platforms. With support for single and batch processing, multi-language output, and polished export to Excel, MetriCalc is ideal for rapid performance evaluation in classification tasks.


✨ Features

  • Modern & Responsive UI

    • Built with PySide6 for a fast, native user experience
    • Segmented tabs for single and batch processing workflows
  • Internationalization (i18n)

    • Toggle between Czech and English for both interface and output
    • Instant language switching without restart
  • Metric Computation

    • Reads semicolon-delimited confusion matrix .csv files
    • Calculates:
      • Precision (User Accuracy)
      • Recall (Producer Accuracy)
      • F1-score
      • Overall Accuracy
      • Kappa Index
    • Reports metrics per class and macro average
  • Batch Processing

    • Process all .csv files in a selected folder
    • Two export modes:
      • One Excel per file
      • One Excel file with multiple sheets
  • Excel Export

    • XLSX output with localized metric headers
    • Two sheets per result:
      • Metrics: Computed values
      • Data: Raw confusion matrix
  • Performance

    • Asynchronous background thread keeps the interface responsive
    • Real-time progress bar with cancel option

πŸ“¦ Requirements

  • Python 3.8+
  • PySide6 >= 6.5.0
  • pandas >= 1.5.0
  • scikit-learn >= 1.2.0
  • openpyxl >= 3.1.0

πŸš€ Quick Start

# Clone the repository
git clone https://github.com/Jakub-Espandr/MetriCalc.git
cd MetriCalc

# Install dependencies
pip install -r requirements.txt

# Run the application
python main.py

πŸ› οΈ Usage

  1. Open the app and select Single or Batch tab
  2. Load .csv confusion matrix or folder
  3. Choose output location
  4. Select language: πŸ‡¨πŸ‡Ώ ČeΕ‘tina / πŸ‡ΊπŸ‡Έ English
  5. Click Start Processing

πŸ“ Project Structure

MetriCalc/
β”œβ”€β”€ main.py
β”œβ”€β”€ core/            # Metric calculations and logic
β”œβ”€β”€ ui/              # PySide6 GUI components
β”œβ”€β”€ utils/           # Helpers and localization
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ fonts/
β”‚   └── icons/
β”œβ”€β”€ requirements.txt
└── LICENSE

πŸ” License

This project is licensed under the Non-Commercial Public License (NCPL v1.0)
Β© 2025 Jakub EΕ‘pandr – Born4Flight, FlyCamCzech

See the LICENSE file for full terms.


πŸ™ Acknowledgments

  • Built with ❀️ using PySide6, pandas, and openpyxl
Jakub-Espandr/MetriCalc | GitHunt