A unified desktop application for analyzing tropical cyclone impacts on fishing activities, combining historical analysis and real-time nowcast capabilities.
π You may download the toolkit application here.
The Cyclone Impact Toolkit integrates satellite-derived fishing activity and cyclone track data to quantify how storms disrupt fishing behavior. It provides two complementary analysis modes:
- Historical Mode - retrospective assessment of past cyclone impacts on fishing activity using observed satellite detections
- Nowcast Mode - near real-time estimation of cyclone impacts using current storm characteristics and pre-trained regression models
The toolkit is designed as a plug-and-play desktop application that runs locally without requiring advanced technical setup.
- Fishing activity data are retrieved from the Visible Infrared Imaging Radiometer Suite (VIIRS) satellite imagery of the Colorado School of Mines.
- Cyclone track and intensity data are sourced from the International Best Track Archive for Climate Stewardship (IBTrACS).
Users must register for an EOG account to access VBD data. The toolkit authenticates downloads locally using user credentials and relies exclusively on the FINAL VBD dataset.
- Year-based filtering
- Fishing ground identification per typhoon using satellite detections
- Typhoon impact assessment
- Interactive charts and visualizations
- Data export capabilities
- Integration of recent (from IBTrACS) or synthetic (user-upload) cyclone tracks
- Regression-based prediction of fishing activity disruption
- Rapid impact summaries for decision support
- Interactive visualization of cyclone tracks and fishing grounds Data export capabilities
- Welcome screen with mode selection
- Consistent user experience across modes
- Shared fishing grounds data (where applicable)
- Single application deployment
- Local storage of outputs for reproducibility
The application follows a clean architecture pattern with unified API initialization:
backend/
βββ api/ # PyWebView API bridges (unified initialization)
βββ repositories/ # Data access layer (TinyDB)
βββ services/ # Business logic (ready for future expansion)
βββ models/ # Data models (ready for future expansion)
frontend/
βββ static/
β βββ welcome/ # Landing page with mode selection
β βββ nowcast/ # Nowcast dashboard
β βββ historical/ # Historical dashboard
β βββ shared/ # Common assets
- Single Page Application: All screens in one HTML file with JavaScript navigation
- Unified API: Single API instance handles both modes
- No Threading Issues: Uses client-side navigation instead of window creation
- Configuration Screens: Dedicated setup screens for each mode
- Seamless Navigation: Smooth transitions between all screens
- Back Navigation: Return to welcome screen from any mode
- Windows operating system for the standalone toolkit (recommended)
- No additional software installation required for packaged release
- Python 3.12+
uvpackage manager (recommended)
-
Clone the repository
-
Install dependencies:
uv sync
-
Create historical database:
uv run python scripts/create_historical_db.py
-
Add sample nowcast data (optional):
uv run python scripts/add_sample_typhoons.py
-
Run the application:
uv run python main.py
-
Navigate to build directory:
cd build/ -
Run build script:
python build.py
-
The packaged application will be in
dist/cyclone_toolkit/
- Welcome Screen: Choose between Historical or Nowcast analysis
- Configuration Screen: Set up analysis parameters (country, year, data source)
- Analysis Processing: Loading screen with progress indicators
- Dashboard Screen: View results and interact with data
- Navigation: Use "β Home" button to return to welcome screen
- Click "Historical" β Configuration screen
- Select country and year
- Click "Run Historical Analysis"
- View dashboard with typhoon data and impact analysis
- Click "Nowcast" β Configuration screen
- Select country and data source (IBTrACS or Synthetic)
- For synthetic: upload CSV/Shapefile data
- Click "Run Nowcast Analysis"
- View dashboard with real-time typhoon tracking
The application uses TinyDB for data storage:
database/nowcast.json: Real-time typhoon datadatabase/historical.json: Historical analysis data
cyclone-impact-toolkit/
βββ main.py # Application entry point
βββ backend/ # Backend logic
β βββ api/ # PyWebView APIs
β βββ repositories/ # Data access
β βββ services/ # Business logic
βββ frontend/static/ # Frontend assets
βββ scripts/ # Utility scripts
βββ build/ # Build configuration
βββ tests/ # Test suite
- New API Methods: Add to appropriate API class in
backend/api/ - Data Operations: Extend repository classes in
backend/repositories/ - Frontend Changes: Modify HTML/CSS/JS in
frontend/static/ - Business Logic: Add to service classes in
backend/services/
Run the test suite:
uv run python -m pytest tests/- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
This research was funded by the Japan Fund for Prosperous and Resilient Asia and the Pacific (Government of Japan) through the Asian Development Bank.
For issues and questions:
- Check the troubleshooting section in
build/BUILD_README.md - Review the console output for error messages
- Ensure all dependencies are properly installed
- Side-by-side comparison mode
- Advanced data visualization
- Machine learning predictions
- Multi-country support
- Cloud data integration
- Mobile companion app