A comprehensive Python application for visualizing and analyzing geomagnetic data from Turkish and Australian observatories.
- Real-time data fetching from INTERMAGNET through BGS GIN Services
- Interactive visualization of magnetic field components (H, D, Z, F)
- Advanced data analysis tools:
- FFT Analysis
- Disturbance Detection (Sudden Storm Commencements, Substorms)
- Quality Control
- Statistical Analysis
- 3D Field Visualization
- Polar Plot Analysis
- Spectrogram Analysis
- Real-time insights panel with:
- Component Statistics
- Frequency Analysis
- Quality Metrics
- Disturbance Detection
- Field Vector Analysis
- Support for multiple data orientations (XYZ, HDZ)
- Export capabilities (CSV, Excel, PDF Reports)
- K-index monitoring
# Clone the repository
git clone https://github.com/comoglu/magnetic_observatory.git
cd magnetic_observatory
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
- Python 3.8+
- PyQt5
- plotly
- numpy
- pandas
- scipy
- aiohttp
- xlsxwriter
- PyQtWebEngine (for advanced visualizations)
Run the main application:
python magdata_viewer.py
- Select a magnetic observatory from the dropdown menu
- Choose your data parameters:
- Date range
- Sample rate (Minute/Second)
- Publication state
- Data orientation
- Click "Fetch Data" to retrieve and visualize the data
The application provides seven main analysis tabs:
- FFT Analysis: Frequency analysis of magnetic components
- Disturbance Analysis: Detection of magnetic storms and events
- Quality Analysis: Data quality metrics and gap detection
- Statistics: Statistical analysis and coordinate transformations
- 3D Visualization: Interactive 3D view of magnetic field components
- Polar Plot: Directional analysis of magnetic field variations
- Spectrogram: Time-frequency analysis for identifying wave patterns
- IZN (Iznik)
- ISK (Istanbul)
- ASP (Alice Springs)
- CKI (Cocos Islands)
- CNB (Canberra)
- CTA (Charters Towers)
- GNA (Gnangara)
- GNG (Gingin)
- KDU (Kakadu)
- LRM (Learmonth)
- MAW (Mawson)
- MCQ (Macquarie Island)
magnetic_observatory/
├── magdata_viewer.py # Main application
├── utils/
│ ├── constants.py # Configuration constants
│ ├── data_handlers.py # Data processing utilities
│ └── logging_config.py # Logging configuration
├── analyzers/
│ ├── base_analyzer.py # Base analysis class
│ ├── disturbance.py # Disturbance detection
│ ├── orientation.py # Coordinate transformations
│ └── quality.py # Quality control
└── ui/
├── components.py # UI components
└── analysis_dialog.py # Analysis interface
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Data provided by INTERMAGNET
- BGS Geomagnetism Information Node Services
- Kandilli Observatory and Earthquake Research Institute
- Geoscience Australia
For questions and support:
- Email: comoglu AT gmail.com
- GitHub: @comoglu