Skip to content

4haiderali/Outfile-Viewer

Repository files navigation

πŸ“Š Outfile Viewer

Python Version Streamlit License: MIT Platform: Windows

A desktop application for parsing and visualising PSCAD/EMTDC simulation output files (.out), built for power system engineers who work with large volumes of simulation results.

PSCAD generates .out files containing hundreds of channels across multiple simulation runs. Outfile Viewer replaces manual inspection with an interactive interface β€” load files, select channels, plot waveforms, compare runs, and export to Excel, all without touching the raw text.

Also supports .txt, .log, and .dat output files from other engineering simulation tools.

🎯 What It Does

Instead of manually scrolling through thousands of lines of raw simulation output:

βœ… Automatic Parsing β€” Extracts tables, metadata, statistics, and diagnostics
βœ… Waveform Plotting β€” Select and plot any channel from .out files interactively
βœ… Multi-File Comparison β€” Compare results across simulation runs side-by-side
βœ… Data Exploration β€” Filter, search, and derive new columns on the fly
βœ… Export Reports β€” Generate Excel reports with charts and analysis
βœ… Full Privacy β€” Everything runs locally on your machine (no cloud, no telemetry)


πŸš€ Getting Started

Installation (Windows)

  1. Download the installer from Releases
  2. Run OutfileViewerSetup.exe and follow the installer
  3. Launch from Start Menu or desktop shortcut
  4. The app opens automatically in your browser at http://localhost:8600

First Run

  1. Click "Load sample demo file" in the sidebar to see sample data
  2. Or upload your own .out, .txt, .log, or .dat file
  3. Explore the tabs:
    • Overview β€” Risk summary & key metrics at a glance
    • Data β€” Browse tables and raw data
    • Analysis β€” Derived metrics and trends
    • Compliance β€” Run compliance checks
    • Reports β€” Export to Excel with charts

πŸ“‹ Supported File Formats

.out Files (Primary Format)

Standard engineering simulation output files with sections like:

SUMMARY STATISTICS
TABLE DATA (optional)
PDF OUTPUT (optional)
DIAGNOSTICS

.txt, .log, .dat Files

Text-based output files with similar structure. The parser attempts to extract:

  • Metadata β€” Run parameters, dates, versions
  • Tables β€” Structured data (statistics, results)
  • Statistics β€” Summary metrics
  • Diagnostics β€” Warnings, errors, debug info

See File Format Specification β†’


πŸ’» Features Overview

πŸŽ›οΈ Core Tabs

Tab What It Does
OVerview Executive summary: risk score, key metrics, status indicators
Data Browse parsed tables, view raw data, inspect structure
Analysis Trend analysis, statistics, aggregations, derived columns
Derived & Units Create calculated columns, override unit definitions
Compliance Automated compliance checks against rules
Compare Side-by-side comparison of multiple files
Filter & Search Advanced filtering, search by keyword or pattern
Notes Attach session notes and annotations
Reports Export analysis as Excel with charts and summaries
Project Save/load full workspaces (files + analysis state)
Raw & Diagnostics Inspect raw file contents, parser diagnostics
Admin (hidden) Session management, debug tools

πŸ”§ Key Features

  • Multiple File Support β€” Analyze 10+ files in one session
  • Session History β€” Access previously uploaded files instantly
  • Unit Management β€” Override default units for any column
  • Derived Columns β€” Create computed columns with expressions
  • Smart Parsing β€” Handles irregular formatting and malformed data
  • Export to Excel β€” Full reports with pivot tables & charts
  • Workspace Projects β€” Save analysis state for later

πŸ› οΈ Development Setup

Prerequisites

  • Python 3.8 or higher
  • pip or conda

Installation (Dev)

# Clone the repository
git clone https://github.com/4haiderali/Outfile-Viewer.git
cd Outfile-Viewer

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run the app
streamlit run app.py

The app will start at http://localhost:8501 (Streamlit's default dev port). The app runs entirely on your machine. No data is sent externally.

Full Development Guide β†’


πŸ“ Project Structure

Outfile-Viewer/
β”œβ”€β”€ app.py                      # Main Streamlit entry point
β”œβ”€β”€ launcher.py                 # Windows desktop app launcher
β”œβ”€β”€ out_viewer/                 # Core application package
β”‚   β”œβ”€β”€ tabs/                   # Analysis tabs (Overview, data, etc.)
β”‚   β”œβ”€β”€ context.py              # Shared application state (AppContext)
β”‚   β”œβ”€β”€ constants.py            # App configuration
β”‚   β”œβ”€β”€ session_data.py         # File parsing & session management
β”‚   β”œβ”€β”€ export.py               # Export functionality
β”‚   └── ...                     # Other modules
β”œβ”€β”€ requirements.txt            # Python dependencies
β”œβ”€β”€ VERSION.txt                 # Version number
β”œβ”€β”€ OutfileViewerInstaller.iss  # Windows installer config (Inno Setup)
β”œβ”€β”€ Setup.bat                   # Setup script
└── docs/                       # Documentation
    └── file_format.md          # Input file specification


🀝 Contributing

We welcome contributions! Whether it's bug reports, feature requests, or code:

  1. Read CONTRIBUTING.md for guidelines
  2. Check DEVELOPMENT.md for architecture details
  3. Open an issue to discuss changes before submitting a PR

❓ FAQ

Q: Does it send data to the cloud?

A: No. Everything runs locally on your machine. No data leaves your computer.

Q: Can I use it on Mac/Linux?

A: Currently Windows-only (uses Windows-specific tray icon). Mac/Linux support possible with community contribution.

Q: What if my file doesn't parse?

A: Check docs/file_format.md for format requirements. Post an issue with a sample file (sanitized) and we'll investigate.

Q: Can I use this at work?

A: Yes! It's MIT licensed. See LICENSE for full terms.

Q: How do I report a bug?

A: Open an issue with:

  • Your file format (if possible, sanitized sample)
  • Steps to reproduce
  • Expected vs actual behavior
  • Error message from the browser console (F12)

πŸ“ License

This project is licensed under the MIT License β€” see LICENSE for details.


πŸ“§ Support


πŸŽ‰ Acknowledgments

Built with ❀️ using:

  • Streamlit β€” The fastest way to build data apps
  • Pandas β€” Data analysis library
  • Plotly β€” Interactive visualizations
  • openpyxl β€” Excel file generation

Made by @4haiderali

About

Streamlit-based viewer for engineering .out, .txt, .log, and .dat output files.

Topics

Resources

License

Contributing

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors