A comprehensive real-time disaster monitoring and relief coordination platform built with Streamlit. This dashboard provides emergency responders, government agencies, and relief organizations with critical information about natural disasters and resource management capabilities.
- Earthquake Detection: Live earthquake data with magnitude, depth, and severity analysis
- Wildfire Tracking: Active wildfire monitoring with containment status and affected areas
- Weather Alerts: Severe weather warnings and meteorological hazards
- Interactive Mapping: Dynamic folium-based maps with customizable layers
- Relief Center Status: Real-time capacity monitoring and resource tracking
- Occupancy Analytics: Visual indicators for shelter availability and utilization
- Resource Allocation: Inventory management for supplies and equipment
- Contact Information: Emergency contact details for coordination
- Statistical Dashboard: Key metrics and trend analysis
- Data Visualization: Interactive charts using Plotly
- Historical Analysis: Magnitude distribution and depth correlation
- Risk Assessment: Severity-based alert prioritization
- Global View: Worldwide disaster monitoring
- UAE Focus: United Arab Emirates specific data
- Canada Focus: Canadian disaster information
- Custom Regions: Expandable for additional countries
- Frontend: Streamlit
- Mapping: Folium with Leaflet.js
- Charts: Plotly Express & Graph Objects
- Data Processing: Pandas, NumPy
- HTTP Requests: Requests library
- Styling: Custom CSS with responsive design
- Python 3.8 or higher
- Active internet connection for API data
- Modern web browser (Chrome, Firefox, Safari, Edge)
-
Clone the repository
git clone https://github.com/your-username/disaster-relief-dashboard.git cd disaster-relief-dashboard
-
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Run the application
streamlit run dashboard.py
-
Access the dashboard
- Open your browser and navigate to
http://localhost:8501
- Open your browser and navigate to
streamlit>=1.28.0
pandas>=1.5.0
requests>=2.28.0
folium>=0.14.0
streamlit-folium>=0.13.0
plotly>=5.15.0
numpy>=1.24.0
The dashboard connects to a disaster data API. Update the API endpoint in the configuration:
API_BASE_URL = "https://disaster-dashboard-jgh7.onrender.com"
/earthquakes
- Earthquake data with filtering options/wildfires
- Active wildfire information/weather-alerts
- Severe weather warnings/relief-centers
- Emergency shelter and resource data/statistics
- Aggregated metrics and analytics
- Auto-refresh Toggle: Enable/disable automatic data updates (30-second intervals)
- Manual Refresh: Force immediate data reload
- Region Filter: Switch between Global, UAE, and Canada views
- Data Source Toggles: Show/hide specific disaster types
- Earthquake Filters: Adjust magnitude thresholds and result limits
- Map Style: Toggle between light and dark map themes
- Interactive Map: Click markers for detailed disaster information
- Statistics Cards: Key metrics at a glance
- Alert Panel: High-priority warnings and notifications
- Relief Center Status: Real-time capacity and resource information
- Analytics Charts: Magnitude distributions and correlation analysis
- Data Tables: Detailed tabular views with export capabilities
- Earthquakes: Color-coded by magnitude with severity indicators
- Wildfires: Fire icons with containment percentage
- Relief Centers: Shelter icons with occupancy status
- Weather Alerts: Warning symbols for severe conditions
- Popup Windows: Detailed information on click
- Layer Control: Toggle different data layers
- Map Styles: Light and dark theme options
- Zoom Controls: Navigate to specific regions
- Full-screen Mode: Expanded map view
- Magnitude distribution histograms
- Depth vs. magnitude scatter plots
- Severity classification charts
- Temporal trend analysis
- Capacity utilization metrics
- Resource availability tracking
- Occupancy rate indicators
- Contact information management
- CSV export functionality
- Printable report generation
- API data access
- Historical data archives
Update the COUNTRY_CONFIGS
dictionary:
'new_country': {
'name': 'Country Name',
'center_lat': latitude,
'center_lon': longitude,
'zoom': zoom_level
}
Modify the CSS in the st.markdown()
sections:
st.markdown("""
<style>
.custom-class {
/* Your custom styles */
}
</style>
""", unsafe_allow_html=True)
Add new data sources by extending the fetch_data
method and creating corresponding map layers.
This dashboard is designed to integrate with emergency response protocols:
- Real-time Alerts: Automatic notifications for high-severity events
- Resource Coordination: Relief center capacity and resource tracking
- Multi-agency Support: Shareable interface for coordination between organizations
- Mobile Responsive: Accessible on tablets and smartphones for field operations
- No personal data collection or storage
- API calls use secure HTTPS connections
- No authentication required for public safety information
- Open-source codebase for transparency
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-feature
) - Commit your changes (
git commit -am 'Add new feature'
) - Push to the branch (
git push origin feature/new-feature
) - Create a Pull Request
- Follow PEP 8 style guidelines
- Add comments for complex functions
- Test new features thoroughly
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: Report bugs via GitHub Issues
- Documentation: Check the wiki for detailed guides
- Emergency Use: This tool is supplementary to official emergency services
- Updates: Watch the repository for new features and improvements
- Data Sources:
- USGS Earthquake Hazards Program
- NASA FIRMS (Fire Information for Resource Management System)
- NOAA Weather Alerts
- Mapping: OpenStreetMap contributors
- Libraries: Streamlit, Folium, Plotly communities