Skip to content

mioruggieroguida/epw-insights

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌀️ EPW Insights

Advanced Weather Data Visualization & Analysis

License: MIT Live Demo Made with D3.js Responsive

EPW Insights is a web-based tool designed for visualizing and analyzing EnergyPlus Weather (EPW) data. It provides interactive charts and tables to explore various climate parameters, offering a comprehensive understanding of weather patterns for a given location. The application also includes a comparison feature, allowing users to analyze two EPW files side-by-side.

🌐 Live Demo

Experience EPW Insights live at: https://ehsan-rostami.github.io/epw-insights/

πŸ“Έ Screenshots

Click on any image to view full size

Temperature & Humidity Analysis
🌑️ Temperature & Humidity
Hourly averages by month
Cloud Cover Analysis
☁️ Sky Cover Analysis
Monthly cloud conditions
Psychrometric Chart
πŸ“ˆ Psychrometric Chart
Professional comfort analysis
Compare Overview
πŸ” Climate Comparison
Side-by-side analysis
Wind Rose Comparison
πŸ’¨ Wind Rose Comparison
Interactive wind patterns
Sun Path Analysis
πŸŒ… Sun Path Analysis
Solar irradiance patterns

✨ Features

πŸ”§ Core Functionality

  • πŸ“„ EPW File Parsing: Robust parsing of standard EPW files to extract meteorological data and metadata
  • πŸ“ Location Summary: Displays key geographic and climatic information for the loaded EPW file, including average temperature, humidity, solar energy, and wind speed
  • πŸ—ΊοΈ Interactive Map: Visualizes the EPW file's location on an interactive map using Leaflet.js

πŸ“Š Comprehensive Visualizations

🌑️ Air Temperature

  • Annual heatmap
  • Monthly distribution box plot
  • Hourly diurnal averages for dry bulb and dew point temperatures

πŸ’§ Relative Humidity

  • Annual heatmap
  • Monthly distribution box plot
  • Hourly diurnal averages

☁️ Sky Cover

  • Monthly total cloud cover conditions
  • Frequency of sky cover by month

πŸ’¨ Wind

  • Interactive wind rose diagrams (dynamic and monthly)
  • Average monthly wind speed bar chart

β˜€οΈ Solar Radiation

  • Annual Direct Normal Irradiance (DNI) heatmap
  • Average monthly solar radiation (GHI, DNI, DHI) multi-bar chart
  • Average daily sun hours bar chart

πŸŒ… Sun Path

  • Annual sun path diagrams with irradiance intensity
  • Interactive date/time selection
  • Detailed solar position data
  • Solar calculations powered by SunCalc.js

πŸ“ˆ Psychrometric Chart

  • Interactive psychrometric chart displaying:
    • Dry bulb temperature
    • Humidity ratio
    • Relative humidity
    • Wet bulb temperature
    • Enthalpy
    • Vapor pressure
  • Comfort zone overlays (ASHRAE 55 and ISO 7730 PMV)

πŸ› οΈ Additional Features

  • πŸ“‹ Data Tables: View monthly, daily, and hourly summaries of various weather parameters in tabular format
  • βš–οΈ Comparison Mode: Load two EPW files and compare key climate metrics side-by-side across various visualization categories (Overview, Air Temperature, Relative Humidity, Sky Cover, Wind, Solar Radiation, Sun Path)
  • 🎨 Customization: Control chart appearance, color palettes, and displayed metrics through intuitive left-panel controls
  • πŸ“€ Export Functionality: Export charts as PNG images for reports or presentations
  • πŸ“± Responsive Design: Optimized for various screen sizes, ensuring a consistent user experience on desktops and mobile devices
  • ✏️ Location Name Customization: Override auto-parsed city and station names for cleaner chart titles and exports.

πŸ› οΈ Technologies Used

  • HTML5 HTML5: Structure of the web application
  • CSS3 CSS3 (Bootstrap 5): Styling and responsive layout
  • JavaScript JavaScript (ES6+): Core application logic and interactivity
  • D3.js D3.js (v7): Powerful library for data-driven document manipulation and complex chart rendering
  • πŸ—ΊοΈ Leaflet.js: Interactive maps for displaying location data
  • β˜€οΈ SunCalc.js: Library for solar position calculations in the Sun Path chart

πŸ“ Project Structure

.
β”œβ”€β”€ css/
β”‚   β”œβ”€β”€ compare-overview.css
β”‚   └── style.css
β”œβ”€β”€ epw/
β”‚   β”œβ”€β”€ London.epw
β”‚   └── Tehran.epw
β”œβ”€β”€ img/
β”‚   β”œβ”€β”€ camera-icon.png
β”‚   β”œβ”€β”€ coordinates.png
β”‚   β”œβ”€β”€ elevation.png
β”‚   β”œβ”€β”€ humidity.png
β”‚   β”œβ”€β”€ marker-icon.png
β”‚   β”œβ”€β”€ radiation.png
β”‚   β”œβ”€β”€ temperature.png
β”‚   └── wind.png
β”œβ”€β”€ js/
β”‚   β”œβ”€β”€ air-temperature-charts.js
β”‚   β”œβ”€β”€ app.js
β”‚   β”œβ”€β”€ compare-air-temperature.js
β”‚   β”œβ”€β”€ compare-charts.js
β”‚   β”œβ”€β”€ compare-overview.js
β”‚   β”œβ”€β”€ compare-relative-humidity.js
β”‚   β”œβ”€β”€ compare-sky-cover.js
β”‚   β”œβ”€β”€ compare-solar-radiation.js
β”‚   β”œβ”€β”€ compare-sun-path.js
β”‚   β”œβ”€β”€ compare-wind.js
β”‚   β”œβ”€β”€ data-tables.js
β”‚   β”œβ”€β”€ epw-parser.js
β”‚   β”œβ”€β”€ location-formatter.js
β”‚   β”œβ”€β”€ location-summary.js
β”‚   β”œβ”€β”€ map-display.js
β”‚   β”œβ”€β”€ psychrometric-chart.js
β”‚   β”œβ”€β”€ relative-humidity-charts.js
β”‚   β”œβ”€β”€ sky-cover-charts.js
β”‚   β”œβ”€β”€ solar-radiation-charts.js
β”‚   β”œβ”€β”€ sun-path-chart.js
β”‚   β”œβ”€β”€ svg-exporter.js
β”‚   └── wind-charts.js
β”œβ”€β”€ screenshots/
β”‚   β”œβ”€β”€ cloud-cover.png
β”‚   β”œβ”€β”€ compare-overview.png
β”‚   β”œβ”€β”€ compare-wind.png
β”‚   β”œβ”€β”€ humidity-chart.png
β”‚   β”œβ”€β”€ psychrometric-chart.png
β”‚   └── sun-path-comparison.png
β”œβ”€β”€ favicon.ico
β”œβ”€β”€ index.html
β”œβ”€β”€ LICENSE
└── README.md

πŸš€ Getting Started

To run this project locally:

  1. Clone the repository:

    git clone https://github.com/ehsan-rostami/epw-insights.git
  2. Navigate to the project directory:

    cd epw-insights
  3. Open index.html in your web browser:

    You can simply double-click index.html to open it in your default browser, or use a local web server (e.g., Live Server VS Code extension) for better asset loading.

πŸ“– Usage

Load EPW File(s)

  • Primary EPW File: Drag and drop an EPW file into the designated "Primary EPW File" drop zone, or click the zone to select a file.
  • Comparison EPW File (Optional): Check the "Compare with another file" toggle. Then, drag and drop a second EPW file into the "Comparison EPW File" drop zone, or click to select.
  • Load Example: Alternatively, check "Load example (Tehran vs. London)" to pre-load sample data and enable the comparison feature.

Customize Location Names

  • After loading a file, a "Customize Names" button will appear in the "Welcome to EPW Insights!" panel.
  • Click this button to open the location editor.
  • You can enter custom names for the City and Station for one or both loaded files.
  • The changes are applied instantly to all charts, summaries, and export filenames.

Explore Visualizations

  • Navigate through the tabs (e.g., "Air Temperature", "Wind", "Psychrometric Chart") to view different interactive charts and data tables.
  • Use the controls in the left panel of each tab to customize the visualizations (e.g., color palettes, data filters, display options).

Compare Data

  • If two EPW files are loaded, click the "Compare" tab. This tab provides side-by-side comparisons of various climate parameters.

Export Charts

  • Click the camera icon located at the top-right corner of each chart to export it as a PNG image.

Copy/Download Data Tables

  • In the "Data Tables" tab, use the copy or download (CSV) buttons to extract the tabular data.

🀝 Contributing

Contributions are welcome! If you have suggestions for improvements, new features, or bug fixes, please open an issue or submit a pull request on the GitHub repository.

πŸ™ Acknowledgements

πŸ“„ License

This project is released under the MIT License.

About

Advanced Weather Data Visualization & Analysis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 89.2%
  • CSS 6.6%
  • HTML 4.2%