Advanced Weather Data Visualization & Analysis
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.
Experience EPW Insights live at: https://ehsan-rostami.github.io/epw-insights/
Click on any image to view full size
- π 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
- Annual heatmap
- Monthly distribution box plot
- Hourly diurnal averages for dry bulb and dew point temperatures
- Annual heatmap
- Monthly distribution box plot
- Hourly diurnal averages
- Monthly total cloud cover conditions
- Frequency of sky cover by month
- Interactive wind rose diagrams (dynamic and monthly)
- Average monthly wind speed bar chart
- Annual Direct Normal Irradiance (DNI) heatmap
- Average monthly solar radiation (GHI, DNI, DHI) multi-bar chart
- Average daily sun hours bar chart
- Annual sun path diagrams with irradiance intensity
- Interactive date/time selection
- Detailed solar position data
- Solar calculations powered by SunCalc.js
- 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)
- π 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.
HTML5: Structure of the web application
CSS3 (Bootstrap 5): Styling and responsive layout
JavaScript (ES6+): Core application logic and interactivity
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
.
βββ 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
To run this project locally:
-
Clone the repository:
git clone https://github.com/ehsan-rostami/epw-insights.git
-
Navigate to the project directory:
cd epw-insights -
Open index.html in your web browser:
You can simply double-click
index.htmlto open it in your default browser, or use a local web server (e.g., Live Server VS Code extension) for better asset loading.
- 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.
- 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.
- 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).
- If two EPW files are loaded, click the "Compare" tab. This tab provides side-by-side comparisons of various climate parameters.
- Click the camera icon located at the top-right corner of each chart to export it as a PNG image.
- In the "Data Tables" tab, use the copy or download (CSV) buttons to extract the tabular data.
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.
- D3.js: For powerful data visualization capabilities
- Bootstrap: For responsive design and UI components
- Leaflet.js: For interactive mapping
- SunCalc.js: For accurate solar position calculations
- Ladybug Tools, Dr. Andrew Marsh's Psychrometric Chart, UCLA Climate Consultant, and epwvis: As inspirations for the psychrometric chart, heatmap charts, and the viewer concept
This project is released under the MIT License.