A Flask web application for visualizing and analyzing Building Integrated Photovoltaic (BIPV) heat experiment data.
This dashboard provides an interactive interface for exploring experimental data from BIPV heat studies. Users can select experiments, choose data series, and visualize results with interactive plots including experiment phase annotations.
- Experiment Selection: Browse available experiments with metadata
- Data Visualization: Interactive plots with Plotly
- Multi-axis Plotting: Automatic grouping by units with dual y-axes
- Phase Annotations: Experiment phases marked on timeline
- Data Export: Download experiment data files
- Responsive Design: Works on desktop and mobile devices
- Visit: https://asbipvheatprd.ethz.ch
- Select an experiment from the dropdown
- Choose data series to plot
- Explore the interactive visualizations
- Deployment Guide: See DEPLOYMENT.md
- Maintenance Guide: See MAINTENANCE.md
bipv_heat_flask/
├── main.py # Main Flask application
├── wsgi.py # WSGI entry point for production
├── requirements.txt # Python dependencies
├── data/ # Experiment data files
│ ├── *.feather # Time series data files
│ └── experiment_log.pkl # Experiment metadata
├── static/ # CSS and static assets
│ └── css/style.css
├── templates/ # HTML templates
│ ├── layout.html # Base template
│ └── home.html # Main dashboard page
├── DEPLOYMENT.md # Deployment instructions
├── MAINTENANCE.md # Maintenance guide
└── README.md # This file
- Format: Apache Feather (.feather)
- Naming:
idx-XXX_type_conditions.feather
- Content: Time series data with multiple sensors/measurements
- Format: Python Pickle (.pkl)
- Content: Experiment metadata including:
- Date and time information
- Monitor names
- IR/WW/CW percentages
- Phase timing (start, warmup, measurement, cooldown)
- Notes and observations
GET /
- Main dashboard pageGET /api/experiments
- List available experimentsGET /api/experiment/<code>
- Get experiment details and data seriesGET /api/plot
- Generate plot data (with query parameters)GET /download/<code>
- Download experiment data file
- Backend: Flask (Python)
- Frontend: HTML, CSS, JavaScript
- Visualization: Plotly.js
- Data Processing: Pandas, PyArrow
- Deployment: Gunicorn + Apache
- Server: ETH Zurich infrastructure
# Clone repository
git clone [repository-url]
cd bipv_heat_flask
# Install dependencies
pip install -r requirements.txt
# Run development server
python main.py
- Place
.feather
files in thedata/
directory - Update
experiment_log.pkl
with metadata - Files are automatically detected by the application
- Port: Configured in
main.py
andwsgi.py
- Data Directory: Defined in
main.py
asDATA_DIR
- Static Files: Served from
static/
directory
- No experiments showing: Check
data/
directory for.feather
files - Plots not loading: Verify experiment codes match file names
- Static files not loading: Check Apache static file configuration
- Application Logs: Check gunicorn process output
- Web Server Logs:
/instances/home/asbipvheatprd/var/log/httpd/
- Debug Mode: Set
debug=True
inmain.py
for development
- Technical Issues: See MAINTENANCE.md
- Deployment Issues: See DEPLOYMENT.md
- Data Questions: Contact the research team
[Add appropriate license information]
- [Add contributor information]
- v1.0 (2025-09-12): Initial production deployment
- Flask dashboard with experiment visualization
- Gunicorn deployment on port 5001
- Apache proxy configuration
- Interactive Plotly charts with phase annotations