A comprehensive Python tool for analyzing and extracting information from SeisComP inventory XML files. This tool provides unified output of network, station, sensor, and datalogger information from SeisComP inventory files.
-
Complete Data Extraction: Extracts all available information from SeisComP inventory XML files
- Network details
- Station information
- Sensor locations
- Stream configurations
- Sensor specifications
- Datalogger details
- Response information
- Serial numbers
- Clock information
-
Unified Output: Combines all information into a single, comprehensive CSV file
- Hierarchical relationships preserved
- Multiple-level information merged
- Equipment details consolidated
- Serial numbers from all levels included
-
Flexible Data Processing:
- Handles multiple response types (PAZ, FIR, IIR, Polynomial)
- Processes decimation information
- Extracts comments and remarks
- Preserves timing information
- Python 3.7 or higher
- Required Python packages:
pandas matplotlib seaborn
-
Clone the repository:
git clone https://github.com/comoglu/seiscomp-inventory-analyzer.git cd seiscomp-inventory-analyzer -
Install required packages:
pip install -r requirements.txt
Basic usage:
python3 seiscomp-analyzer.py /path/to/inventory.xmlWith debug information:
python3 seiscomp-analyzer.py /path/to/inventory.xml -dSpecifying output directory:
python3 seiscomp-analyzer.py /path/to/inventory.xml -o /path/to/outputinventory: Path to the SeisComP inventory XML file (required)-o, --output: Output directory for results (default: "output")-d, --debug: Enable debug mode for detailed processing information
The tool generates a unified CSV file containing all extracted information:
Contains columns including but not limited to:
- Network information (code, start/end times)
- Station details (code, location, timing)
- Channel information
- Sensor specifications
- Datalogger details
- Serial numbers
- Response parameters
- Location coordinates
- Timing information
seiscomp-inventory-analyzer/
├── README.md
├── requirements.txt
├── seiscomp-analyzer.py
└── examples/
└── sample_inventory.xml
python3 seiscomp-analyzer.py /opt/seiscomp/etc/inventory/AU.xml -dSample output:
Successfully parsed inventory
Found 1232 sensors
Found 1256 dataloggers
Found 2492 total streams
Successfully exported unified CSV file to output/unified_inventory_analysis.csv
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b featureRequest) - Commit your changes (
git commit -m 'Add some Feature') - Push to the branch (
git push origin featureRequest) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For more detailed information about the SeisComP inventory XML structure, please refer to:
- SeisComP community for providing the inventory XML schema
- All contributors who participate in this project
If you encounter any issues or have questions:
- Check the existing issues
- Create a new issue with a detailed description
- Contact the maintainers
- Add support for response analysis
- Implement visualization features
- Add support for FDSN StationXML format
- Create detailed documentation for each field in the output