Skip to content

A C++ tool to read environmental time series from CSV files and compute basic statistics. The goal is to train my C++ skills.

Notifications You must be signed in to change notification settings

ineschrst/cpp_temperature_timeseries

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

C++ Temperature Time Series Analysis

Overview

This project analyzes temperature time series data using C++.
It demonstrates C++ features like STL algorithms, lambdas, const-correctness, file I/O, and modular design.

The goal is to process environmental/meteorological data, calculate statistics, and produce results that are useful for analysis or visualization.


Features

Current Capabilities

  • CSV parsing for time series data (datetime,value)
  • Compute overall statistics:
    • Mean temperature
    • Minimum and maximum temperature
  • Sliding window statistics:
    • Mean, min, max with associated datetimes
  • Print first/last few data points
  • Robust error handling for empty datasets

New Feature: Daily Statistics

  • Computes daily min, max, mean, range from input data
  • Calculates daily anomaly (daily mean minus overall mean)
  • Saves results to results/daily_stats.csv
  • Designed for meteorological analysis and further processing

Usage

  1. Place input CSV files in data/
  2. Compile the project: g++ -std=c++20 src/main.cpp src/statistics.cpp src/csv_reader.cpp -o timeseries
  3. Run the program: ./timeseries data/temperature.csv
  4. Check daily statistics output in results/daily_stats.csv

Project Structure

cpp_temperature_timeseries/ ├── src/ # C++ source code ├── include/ # Header files ├── data/ # Input CSV files ├── results/ # Processed output (daily stats) ├── build/ # Optional build directory └── README.md

About

A C++ tool to read environmental time series from CSV files and compute basic statistics. The goal is to train my C++ skills.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages