Spaces:
Sleeping
Sleeping
| title: ECMWF Wind Particle Visualization | |
| emoji: 🌪️ | |
| colorFrom: blue | |
| colorTo: purple | |
| sdk: docker | |
| sdk_version: "4.44.0" | |
| app_file: app.py | |
| pinned: false | |
| # 🌪️ ECMWF Wind Particle Visualization | |
| A Gradio application that downloads real ECMWF 10m wind data and creates windy-style particle animations using Folium maps with Leaflet-Velocity plugin. | |
| ## Features | |
| - 🌍 **Real ECMWF Data**: Downloads operational 10m wind forecasts (U/V components) | |
| - 🎨 **Windy-style Animation**: Canvas-based particle system using Leaflet-Velocity | |
| - ⏱️ **Time Controls**: TimestampedGeoJson animation with interactive time slider | |
| - 🗺️ **Interactive Maps**: Multiple tile layers and regional views | |
| - 🎯 **Particle Physics**: RK4 integration for accurate wind field advection | |
| ## How It Works | |
| ### Data Processing | |
| 1. Downloads ECMWF 10m wind data (U/V components) in GRIB2 format | |
| 2. Converts GRIB to grib2json-compatible velocity JSON format | |
| 3. Implements bilinear interpolation for smooth wind field sampling | |
| ### Particle Animation | |
| 1. **Canvas Rendering**: Uses Leaflet-Velocity for real-time particle advection | |
| 2. **TimestampedGeoJSON**: Pre-computed particle trajectories with time controls | |
| 3. **RK4 Integration**: Accurate particle movement through wind field | |
| 4. **Color Coding**: Particles colored by wind speed magnitude | |
| ## Technical Details | |
| ### Data Source | |
| - **ECMWF Open Data**: Free operational forecasts updated every 6 hours | |
| - **Parameters**: 10m U-wind and V-wind components | |
| - **Resolution**: 0.25° (~25km spacing) | |
| - **Format**: GRIB2 converted to velocity JSON | |
| ### Algorithms | |
| - **Bilinear Interpolation**: Smooth wind field sampling between grid points | |
| - **RK4 Integration**: 4th-order Runge-Kutta for particle advection | |
| - **Coordinate Conversion**: Proper handling of geographic projections | |
| ### Libraries | |
| - **Gradio**: Web interface framework | |
| - **Folium**: Python-Leaflet bridge for interactive maps | |
| - **Leaflet-Velocity**: Canvas-based particle rendering | |
| - **xarray/cfgrib**: GRIB data processing | |
| - **ecmwf-opendata**: ECMWF data access | |
| ## Attribution | |
| Weather data provided by ECMWF under their Open Data initiative: | |
| - Data source: https://www.ecmwf.int/en/forecasts/datasets/open-data | |
| - Data license: https://creativecommons.org/licenses/by/4.0/ | |