Giga is a UNICEF-ITU initiative to connect every school to the Internet and every young person to information, opportunity and choice. Giga maps schools' Internet access in real time, creates models for innovative financing, and supports governments contracting for connectivity.
GigaSpatial is a Python package developed as part of the Giga Applied Science Team to handle geospatial data efficiently. It provides tools for downloading, processing, and analyzing geospatial data, enabling users to work with datasets such as OpenStreetMap (OSM), Global Human Settlement Layer (GHSL), Microsoft Global Buildings, Google Open Buildings, and more. The package is designed to support Giga's mission by providing robust geospatial capabilities for mapping and analyzing school connectivity.
See the installation docs for all details. GigaSpatial requires Python 3.10 or above and depends on the following key packages:
- geopandas
- pandas
- shapely
- rasterio
We recommend using a virtual environment for installation. See the installation docs for more details.
- Data Downloading: Download geospatial data from various sources including GHSL, Microsoft Global Buildings, Google Open Buildings, OpenCellID, and HDX datasets.
- Data Processing: Process and transform geospatial data, such as GeoTIFF files and vector data, with support for compression and efficient handling.
- View Generators:
- Enrich spatial context with POI (Point of Interest) data
- Support for raster point sampling and zonal statistics
- Area-weighted aggregation for polygon-based statistics
- Grid System: Create and manipulate grid-based geospatial data for analysis and modeling.
- Data Storage: Flexible storage options with both local and cloud (ADLS) support.
- Configuration Management:
- Centralized configuration via environment variables or
.env
file - Easy setup of API keys and paths
- Centralized configuration via environment variables or
The gigaspatial
package supports data from the following providers:
The view generators in GigaSpatial are designed to enrich the spatial context of school locations and map data into grid or POI locations. This enables users to analyze and visualize geospatial data in meaningful ways.
-
Spatial Context Enrichment:
- Automatic attribution of geospatial variables to school locations
- Contextual layers for environmental, infrastructural, and socioeconomic factors
- Multi-resolution data availability for different analytical needs
- Support for both point and polygon-based enrichment
-
Mapping to Grid or POI Locations:
- Map geospatial data to grid cells for scalable analysis
- Map data to POI locations for detailed, location-specific insights
- Support for chained enrichment using multiple datasets
- Built-in support for administrative boundary annotations
- Efficient Geospatial Handling: Streamline the process of downloading, processing, and analyzing geospatial data
- Scalable Analysis: Map data to grid cells or POI locations for both scalable and detailed insights
- Open Source: Contribute to and benefit from a collaborative, transparent, and innovative geospatial toolset
- Modern Architecture: Built with maintainability and extensibility in mind, featuring:
- Base handler orchestration for unified lifecycle management
- Dedicated reader classes for major datasets
- Modular source resolution for flexible data access
- Comprehensive error handling and logging
At Giga, we believe in the power of open-source technologies to accelerate progress and innovation. By keeping our tools and systems open, we:
- Encourage collaboration and contributions from a global community.
- Ensure transparency and trust in our methodologies.
- Empower others to adopt, adapt, and extend our tools to meet their needs.
We welcome contributions to our repositories! Whether it's fixing a bug, adding a feature, or improving documentation, your input helps us move closer to our goal of universal school connectivity.
- Fork the repository you'd like to contribute to.
- Create a new branch for your changes.
- Submit a pull request with a clear explanation of your contribution.
To go through the contribtution guidelines in detail you can visit the following link.
Click here for the detailed Contribution guidelines
At Giga, we're committed to maintaining an environment that's respectful, inclusive, and harassment-free for everyone involved in our project and community. We welcome contributors and participants from diverse backgrounds and pledge to uphold the standards.
Click here for the detailed Code of Conduct.
To learn more about Giga and our mission, visit our official website: Giga.Global
Join us in creating an open-source future for education! 🌍