Add initial raport generator

This commit is contained in:
2025-12-03 00:36:34 +01:00
commit f884460eb0
5 changed files with 2260 additions and 0 deletions

89
run_pipeline.sh Executable file
View File

@@ -0,0 +1,89 @@
#!/bin/bash
# PGE Energy Report Processing Pipeline
# Complete workflow from CSV conversion to visualization dashboard
set -e # Exit on error
# Configuration
INPUT_FILE="$1"
OUTPUT_DIR="${2:-output}"
BUY_PRICE="${3:-1.4}"
SELL_PRICE="${4:-0.2}"
BASE_FILENAME=$(basename "$INPUT_FILE" .csv)
PYTHON_CMD="/home/postio-admin/pge-raport/.venv/bin/python"
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${BLUE}🔌 PGE Energy Report Processing Pipeline${NC}"
echo "=================================================="
# Check if input file provided
if [ -z "$INPUT_FILE" ]; then
echo -e "${RED}Error: Please provide input CSV file${NC}"
echo "Usage: $0 <input_file.csv> [output_directory] [buy_price] [sell_price]"
echo "Default prices: buy=1.4 PLN/kWh, sell=0.2 PLN/kWh"
exit 1
fi
# Check if input file exists
if [ ! -f "$INPUT_FILE" ]; then
echo -e "${RED}Error: Input file not found: $INPUT_FILE${NC}"
exit 1
fi
echo -e "${YELLOW}📋 Configuration:${NC}"
echo " Input file: $INPUT_FILE"
echo " Output directory: $OUTPUT_DIR"
echo " Base filename: $BASE_FILENAME"
echo " Energy prices: Buy=$BUY_PRICE PLN/kWh, Sell=$SELL_PRICE PLN/kWh"
echo ""
# Step 1: Convert CSV data
echo -e "${BLUE}📊 Step 1: Converting CSV data...${NC}"
$PYTHON_CMD raport_convert.py "$INPUT_FILE" --output-dir "$OUTPUT_DIR"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ Data conversion completed${NC}"
else
echo -e "${RED}✗ Data conversion failed${NC}"
exit 1
fi
echo ""
# Step 2: Generate charts
echo -e "${BLUE}📈 Step 2: Generating visualizations...${NC}"
$PYTHON_CMD visualize_data.py "$BASE_FILENAME" --data-dir "$OUTPUT_DIR" --output-dir "$OUTPUT_DIR/charts" --buy-price "$BUY_PRICE" --sell-price "$SELL_PRICE"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ Chart generation completed${NC}"
else
echo -e "${RED}✗ Chart generation failed${NC}"
exit 1
fi
echo ""
# Step 3: Create HTML dashboard
echo -e "${BLUE}🌐 Step 3: Creating HTML dashboard...${NC}"
$PYTHON_CMD create_dashboard.py "$BASE_FILENAME" --charts-dir "$OUTPUT_DIR/charts" --output "$OUTPUT_DIR/dashboard.html"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ Dashboard creation completed${NC}"
else
echo -e "${RED}✗ Dashboard creation failed${NC}"
exit 1
fi
echo ""
# Summary
echo -e "${GREEN}🎉 Pipeline completed successfully!${NC}"
echo "=================================================="
echo -e "${YELLOW}📁 Generated files:${NC}"
echo " Data files: $OUTPUT_DIR/*-hourly.csv, *-daily.csv, *-weekly.csv, *-monthly.csv"
echo " Charts: $OUTPUT_DIR/charts/*.png"
echo " Dashboard: $OUTPUT_DIR/dashboard.html"
echo ""
echo -e "${BLUE}🌐 Open dashboard in browser:${NC}"
echo " file://$(pwd)/$OUTPUT_DIR/dashboard.html"