{"id":24959092,"url":"https://github.com/raythurman2386/geotoolkit","last_synced_at":"2025-06-11T15:34:22.225Z","repository":{"id":275075649,"uuid":"921867460","full_name":"raythurman2386/geotoolkit","owner":"raythurman2386","description":"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.","archived":false,"fork":false,"pushed_at":"2025-02-12T22:09:59.000Z","size":1332,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-12T23:22:44.621Z","etag":null,"topics":["arcpy","gdal","geopandas"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raythurman2386.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-24T19:10:13.000Z","updated_at":"2025-02-12T22:10:02.000Z","dependencies_parsed_at":"2025-01-31T03:33:29.456Z","dependency_job_id":null,"html_url":"https://github.com/raythurman2386/geotoolkit","commit_stats":null,"previous_names":["raythurman2386/geotoolkit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raythurman2386%2Fgeotoolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raythurman2386%2Fgeotoolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raythurman2386%2Fgeotoolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raythurman2386%2Fgeotoolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raythurman2386","download_url":"https://codeload.github.com/raythurman2386/geotoolkit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246100580,"owners_count":20723479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arcpy","gdal","geopandas"],"created_at":"2025-02-03T07:46:09.038Z","updated_at":"2025-03-28T21:14:46.761Z","avatar_url":"https://github.com/raythurman2386.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GeoToolKit\n\n[![Python 3.10+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Documentation Status](https://readthedocs.org/projects/geotoolkit/badge/?version=latest)](https://geotoolkit.readthedocs.io/en/latest/?badge=latest)\n\nGeoToolKit 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.\n\n\u003e 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. :)\n\n## 🚀 Features\n\n- **Dual Engine Support**: Seamlessly switch between ArcPy and GDAL implementations\n- **Automated Engine Detection**: Automatically selects available GIS engine\n- **Comprehensive Tools**:\n    - Data Preprocessing\n    - Spatial Analysis\n    - Raster Processing\n    - Quality Control\n    - Batch Processing\n    - Data Integration\n\n## 📋 Requirements\n\n### Minimum Requirements\n- Python 3.10+\n- GDAL 3.0+ (for GDAL engine)\n- ArcGIS Pro 2.5+ (for ArcPy engine)\n\n### Optional Dependencies\n- NumPy\n- Pandas\n- GeoPandas\n- Rasterio\n\n## ⚡️ Quick Installation\n\u003e Note: The current install process is a bit buggy, and needs some attention. Currently I would recommend following the typical development setup process.\n```bash\n# Basic installation with GDAL support\npip install geotoolkit\n\n# Full installation with all optional dependencies\npip install geotoolkit[all]\n\n# ArcPy-only installation\npip install geotoolkit[arcpy]\n```\n\n## 🎯 Usage Examples\n\n### Basic Usage\n\n```python\nfrom geotoolkit import Preprocessor, Analyzer, RasterTools\n\n# Initialize with automatic engine detection\npreprocessor = Preprocessor()\n\n# Or specify your preferred engine\npreprocessor = Preprocessor(engine='gdal')\n\n# Clean field names in a dataset\npreprocessor.clean_field_names(\"input_data.shp\")\n\n# Perform spatial analysis\nanalyzer = Analyzer()\nresults = analyzer.calculate_statistics(\"analysis_layer.shp\")\n```\n\n### Engine Selection\n\n```python\nfrom geotoolkit.utils.config import ConfigManager\n\n# Configure default engine\nconfig = ConfigManager()\nconfig.update_config(\n    preferred_engine='gdal',\n    max_threads=8,\n    workspace='/path/to/workspace'\n)\n```\n\n## 🏗️ Project Structure\n\n```\ngeotoolkit/\n├── core/           # Core functionality and abstractions\n├── engines/        # Engine-specific implementations\n├── interfaces/     # User-facing interfaces\n├── utils/          # Utility functions and helpers\n├── tests/          # Test suite\n└── examples/       # Usage examples and notebooks\n```\n\n## 🔧 Configuration\n\nGeoToolKit can be configured through the `ConfigManager`:\n\n```python\nfrom geotoolkit.utils.config import ConfigManager\n\nconfig = ConfigManager()\nconfig.update_config(\n    preferred_engine='gdal',  # 'gdal', 'arcpy', or 'auto'\n    max_threads=4,\n    log_level='INFO',\n    workspace='/path/to/workspace'\n)\n```\n\n## 📚 Documentation\n\nComprehensive documentation will eventually be available somewhere.\n\n## 🧪 Testing\n\n```bash\n# Run all tests\npytest\n\n# Run specific test suite\npytest tests/test_gdal/\npytest tests/test_arcpy/\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) for details on how to submit pull requests, report issues, and contribute to the project.\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/geotoolkit.git\ncd geotoolkit\n\n# Create a virtual environment\npython -m venv venv\nsource venv/bin/activate  # Linux/Mac\n# or\n.\\venv\\Scripts\\activate  # Windows\n\n# Install development dependencies\npip install -r requirements.txt\n```\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🎯 Roadmap\n\n- [ ] Correct bugs and improve existing features (Always ongoing)\n- [ ] Implement testing and code coverage\n- [ ] Better workspace support and improvements\n- [ ] Add support for automated documentation\n- [ ] Implement machine learning integration\n- [ ] Add support for real-time data processing\n\n## 📫 Contact\n\n- Project Maintainer: [Ray Thurman](mailto:raymondthurman5@gmail.com)\n- Project Homepage: https://github.com/raythurman2386/geotoolkit\n\n## 🙏 Acknowledgments\n\n- GDAL/OGR contributors\n- Esri and ArcPy development team\n- Open source GIS community\n\n---\n\nMade with ❤️ by [Ray Thurman](mailto:raymondthurman5@gmail.com)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraythurman2386%2Fgeotoolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraythurman2386%2Fgeotoolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraythurman2386%2Fgeotoolkit/lists"}