https://github.com/raythurman2386/geotoolkit
GeoToolKit is a comprehensive Python package that provides a unified interface for common GIS operations using both ArcPy and GDAL/Open Source implementations. It aims to simplify geospatial workflows while maintaining flexibility in choosing the underlying GIS engine.
https://github.com/raythurman2386/geotoolkit
arcpy gdal geopandas
Last synced: about 1 year ago
JSON representation
GeoToolKit is a comprehensive Python package that provides a unified interface for common GIS operations using both ArcPy and GDAL/Open Source implementations. It aims to simplify geospatial workflows while maintaining flexibility in choosing the underlying GIS engine.
- Host: GitHub
- URL: https://github.com/raythurman2386/geotoolkit
- Owner: raythurman2386
- License: mit
- Created: 2025-01-24T19:10:13.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-12T22:09:59.000Z (over 1 year ago)
- Last Synced: 2025-02-12T23:22:44.621Z (over 1 year ago)
- Topics: arcpy, gdal, geopandas
- Language: Python
- Homepage:
- Size: 1.27 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# GeoToolKit
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://geotoolkit.readthedocs.io/en/latest/?badge=latest)
GeoToolKit is a comprehensive Python package that provides a unified interface for common GIS operations using both ArcPy and GDAL/Open Source implementations. It aims to simplify geospatial workflows while maintaining flexibility in choosing the underlying GIS engine.
> Note: This package is still in development and is subject to change. As a small side project, I'm not planning on releasing a stable version....It works for me, so I'm just sharing it. :)
## ๐ Features
- **Dual Engine Support**: Seamlessly switch between ArcPy and GDAL implementations
- **Automated Engine Detection**: Automatically selects available GIS engine
- **Comprehensive Tools**:
- Data Preprocessing
- Spatial Analysis
- Raster Processing
- Quality Control
- Batch Processing
- Data Integration
## ๐ Requirements
### Minimum Requirements
- Python 3.10+
- GDAL 3.0+ (for GDAL engine)
- ArcGIS Pro 2.5+ (for ArcPy engine)
### Optional Dependencies
- NumPy
- Pandas
- GeoPandas
- Rasterio
## โก๏ธ Quick Installation
> Note: The current install process is a bit buggy, and needs some attention. Currently I would recommend following the typical development setup process.
```bash
# Basic installation with GDAL support
pip install geotoolkit
# Full installation with all optional dependencies
pip install geotoolkit[all]
# ArcPy-only installation
pip install geotoolkit[arcpy]
```
## ๐ฏ Usage Examples
### Basic Usage
```python
from geotoolkit import Preprocessor, Analyzer, RasterTools
# Initialize with automatic engine detection
preprocessor = Preprocessor()
# Or specify your preferred engine
preprocessor = Preprocessor(engine='gdal')
# Clean field names in a dataset
preprocessor.clean_field_names("input_data.shp")
# Perform spatial analysis
analyzer = Analyzer()
results = analyzer.calculate_statistics("analysis_layer.shp")
```
### Engine Selection
```python
from geotoolkit.utils.config import ConfigManager
# Configure default engine
config = ConfigManager()
config.update_config(
preferred_engine='gdal',
max_threads=8,
workspace='/path/to/workspace'
)
```
## ๐๏ธ Project Structure
```
geotoolkit/
โโโ core/ # Core functionality and abstractions
โโโ engines/ # Engine-specific implementations
โโโ interfaces/ # User-facing interfaces
โโโ utils/ # Utility functions and helpers
โโโ tests/ # Test suite
โโโ examples/ # Usage examples and notebooks
```
## ๐ง Configuration
GeoToolKit can be configured through the `ConfigManager`:
```python
from geotoolkit.utils.config import ConfigManager
config = ConfigManager()
config.update_config(
preferred_engine='gdal', # 'gdal', 'arcpy', or 'auto'
max_threads=4,
log_level='INFO',
workspace='/path/to/workspace'
)
```
## ๐ Documentation
Comprehensive documentation will eventually be available somewhere.
## ๐งช Testing
```bash
# Run all tests
pytest
# Run specific test suite
pytest tests/test_gdal/
pytest tests/test_arcpy/
```
## ๐ค Contributing
Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) for details on how to submit pull requests, report issues, and contribute to the project.
### Development Setup
```bash
# Clone the repository
git clone https://github.com/yourusername/geotoolkit.git
cd geotoolkit
# Create a virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
.\venv\Scripts\activate # Windows
# Install development dependencies
pip install -r requirements.txt
```
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ฏ Roadmap
- [ ] Correct bugs and improve existing features (Always ongoing)
- [ ] Implement testing and code coverage
- [ ] Better workspace support and improvements
- [ ] Add support for automated documentation
- [ ] Implement machine learning integration
- [ ] Add support for real-time data processing
## ๐ซ Contact
- Project Maintainer: [Ray Thurman](mailto:raymondthurman5@gmail.com)
- Project Homepage: https://github.com/raythurman2386/geotoolkit
## ๐ Acknowledgments
- GDAL/OGR contributors
- Esri and ArcPy development team
- Open source GIS community
---
Made with โค๏ธ by [Ray Thurman](mailto:raymondthurman5@gmail.com)