diff --git a/.gitignore b/.gitignore index a8d9578..2c58a75 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,5 @@ ipch/ *.mkv *.raw +gst_plugs/ +results/ \ No newline at end of file diff --git a/ROLLINGSUM_GUIDE.md b/ROLLINGSUM_GUIDE.md index f154214..957646d 100644 --- a/ROLLINGSUM_GUIDE.md +++ b/ROLLINGSUM_GUIDE.md @@ -157,7 +157,14 @@ uv run analyze_sma.py output.csv - Statistical summary (min/max/mean/std) - Threshold recommendations based on percentiles - Standard deviation-based suggestions -- Visualization plots (`output_analysis.png`) +- Visualization plots saved to `results/debug/` +- Archived CSV with timestamp in `results/debug/` + +**Output files are automatically organized:** +- `results/debug/output_YYYYMMDD_HHMMSS.csv` - Archived CSV +- `results/debug/output_analysis_YYYYMMDD_HHMMSS.png` - Analysis plots + +The `results/` directory is gitignored to keep your repository clean. ### Interpreting Results diff --git a/analyze_sma.py b/analyze_sma.py index a2582e3..c661dea 100644 --- a/analyze_sma.py +++ b/analyze_sma.py @@ -18,11 +18,17 @@ import pandas as pd import matplotlib.pyplot as plt import numpy as np from pathlib import Path +from datetime import datetime +import shutil def analyze_csv(csv_file: str = "output.csv"): """Analyze the rolling sum CSV data and generate insights.""" + # Create output directory + output_dir = Path("results/debug") + output_dir.mkdir(parents=True, exist_ok=True) + # Read the CSV try: df = pd.read_csv(csv_file) @@ -30,6 +36,12 @@ def analyze_csv(csv_file: str = "output.csv"): print(f"Error: CSV file '{csv_file}' not found.") sys.exit(1) + # Copy input CSV to results directory with timestamp + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + csv_name = Path(csv_file).stem + archived_csv = output_dir / f"{csv_name}_{timestamp}.csv" + shutil.copy(csv_file, archived_csv) + print("=" * 80) print(f"ROLLING SUM ANALYSIS - {csv_file}") print("=" * 80) @@ -98,16 +110,17 @@ def analyze_csv(csv_file: str = "output.csv"): print() # Create visualizations - create_plots(df, csv_file) + plot_file = create_plots(df, csv_file, output_dir, timestamp) print("=" * 80) - print("PLOTS SAVED:") - print(f" - {csv_file.replace('.csv', '_analysis.png')}") + print("OUTPUT FILES:") + print(f" CSV Archive: {archived_csv}") + print(f" Analysis Plot: {plot_file}") print("=" * 80) -def create_plots(df: pd.DataFrame, csv_file: str): - """Create analysis plots.""" +def create_plots(df: pd.DataFrame, csv_file: str, output_dir: Path, timestamp: str) -> Path: + """Create analysis plots and return the output file path.""" fig, axes = plt.subplots(2, 2, figsize=(14, 10)) fig.suptitle(f'Rolling Sum Analysis - {csv_file}', fontsize=16, fontweight='bold') @@ -167,10 +180,13 @@ def create_plots(df: pd.DataFrame, csv_file: str): plt.tight_layout() - # Save the plot - output_file = csv_file.replace('.csv', '_analysis.png') + # Save the plot to results/debug + csv_name = Path(csv_file).stem + output_file = output_dir / f"{csv_name}_analysis_{timestamp}.png" plt.savefig(output_file, dpi=150, bbox_inches='tight') print(f"\n✓ Saved analysis plot to: {output_file}\n") + + return output_file if __name__ == "__main__":