giga-spatial 0.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. giga_spatial-0.6.0/.env_sample +20 -0
  2. giga_spatial-0.6.0/CHANGELOG.md +269 -0
  3. giga_spatial-0.6.0/CODE_OF_CONDUCT.md +86 -0
  4. giga_spatial-0.6.0/CONTRIBUTING.md +49 -0
  5. giga_spatial-0.6.0/LICENSE +661 -0
  6. giga_spatial-0.6.0/MANIFEST.in +17 -0
  7. giga_spatial-0.6.0/PKG-INFO +141 -0
  8. giga_spatial-0.6.0/PULL_REQUEST_TEMPLATE.md +24 -0
  9. giga_spatial-0.6.0/README.md +95 -0
  10. giga_spatial-0.6.0/docs/.DS_Store +0 -0
  11. giga_spatial-0.6.0/docs/api/core.md +6 -0
  12. giga_spatial-0.6.0/docs/api/generators.md +6 -0
  13. giga_spatial-0.6.0/docs/api/grid.md +6 -0
  14. giga_spatial-0.6.0/docs/api/handlers.md +6 -0
  15. giga_spatial-0.6.0/docs/api/index.md +60 -0
  16. giga_spatial-0.6.0/docs/api/processing.md +6 -0
  17. giga_spatial-0.6.0/docs/assets/GIGA_horizontal_notext_white.webp +0 -0
  18. giga_spatial-0.6.0/docs/assets/datasets.png +0 -0
  19. giga_spatial-0.6.0/docs/assets/logo.png +0 -0
  20. giga_spatial-0.6.0/docs/changelog.md +1 -0
  21. giga_spatial-0.6.0/docs/contributing.md +1 -0
  22. giga_spatial-0.6.0/docs/examples/advanced.md +3 -0
  23. giga_spatial-0.6.0/docs/examples/basic.md +249 -0
  24. giga_spatial-0.6.0/docs/examples/downloading/ghsl.md +38 -0
  25. giga_spatial-0.6.0/docs/examples/downloading/osm.md +36 -0
  26. giga_spatial-0.6.0/docs/examples/index.md +52 -0
  27. giga_spatial-0.6.0/docs/examples/processing/tif.md +33 -0
  28. giga_spatial-0.6.0/docs/examples/use-cases.md +3 -0
  29. giga_spatial-0.6.0/docs/getting-started/installation.md +81 -0
  30. giga_spatial-0.6.0/docs/getting-started/quickstart.md +149 -0
  31. giga_spatial-0.6.0/docs/index.md +31 -0
  32. giga_spatial-0.6.0/docs/license.md +1 -0
  33. giga_spatial-0.6.0/docs/stylesheets/extra.css +15 -0
  34. giga_spatial-0.6.0/docs/user-guide/configuration.md +76 -0
  35. giga_spatial-0.6.0/docs/user-guide/index.md +33 -0
  36. giga_spatial-0.6.0/giga_spatial.egg-info/PKG-INFO +141 -0
  37. giga_spatial-0.6.0/giga_spatial.egg-info/SOURCES.txt +84 -0
  38. giga_spatial-0.6.0/giga_spatial.egg-info/dependency_links.txt +1 -0
  39. giga_spatial-0.6.0/giga_spatial.egg-info/requires.txt +18 -0
  40. giga_spatial-0.6.0/giga_spatial.egg-info/top_level.txt +1 -0
  41. giga_spatial-0.6.0/gigaspatial/__init__.py +1 -0
  42. giga_spatial-0.6.0/gigaspatial/config.py +226 -0
  43. giga_spatial-0.6.0/gigaspatial/core/__init__.py +0 -0
  44. giga_spatial-0.6.0/gigaspatial/core/io/__init__.py +5 -0
  45. giga_spatial-0.6.0/gigaspatial/core/io/adls_data_store.py +325 -0
  46. giga_spatial-0.6.0/gigaspatial/core/io/data_api.py +113 -0
  47. giga_spatial-0.6.0/gigaspatial/core/io/data_store.py +147 -0
  48. giga_spatial-0.6.0/gigaspatial/core/io/local_data_store.py +92 -0
  49. giga_spatial-0.6.0/gigaspatial/core/io/readers.py +265 -0
  50. giga_spatial-0.6.0/gigaspatial/core/io/writers.py +128 -0
  51. giga_spatial-0.6.0/gigaspatial/core/schemas/__init__.py +0 -0
  52. giga_spatial-0.6.0/gigaspatial/core/schemas/entity.py +244 -0
  53. giga_spatial-0.6.0/gigaspatial/generators/__init__.py +2 -0
  54. giga_spatial-0.6.0/gigaspatial/generators/poi.py +636 -0
  55. giga_spatial-0.6.0/gigaspatial/generators/zonal/__init__.py +3 -0
  56. giga_spatial-0.6.0/gigaspatial/generators/zonal/base.py +370 -0
  57. giga_spatial-0.6.0/gigaspatial/generators/zonal/geometry.py +439 -0
  58. giga_spatial-0.6.0/gigaspatial/generators/zonal/mercator.py +78 -0
  59. giga_spatial-0.6.0/gigaspatial/grid/__init__.py +1 -0
  60. giga_spatial-0.6.0/gigaspatial/grid/mercator_tiles.py +286 -0
  61. giga_spatial-0.6.0/gigaspatial/handlers/__init__.py +40 -0
  62. giga_spatial-0.6.0/gigaspatial/handlers/base.py +761 -0
  63. giga_spatial-0.6.0/gigaspatial/handlers/boundaries.py +305 -0
  64. giga_spatial-0.6.0/gigaspatial/handlers/ghsl.py +772 -0
  65. giga_spatial-0.6.0/gigaspatial/handlers/giga.py +145 -0
  66. giga_spatial-0.6.0/gigaspatial/handlers/google_open_buildings.py +472 -0
  67. giga_spatial-0.6.0/gigaspatial/handlers/hdx.py +241 -0
  68. giga_spatial-0.6.0/gigaspatial/handlers/mapbox_image.py +208 -0
  69. giga_spatial-0.6.0/gigaspatial/handlers/maxar_image.py +291 -0
  70. giga_spatial-0.6.0/gigaspatial/handlers/microsoft_global_buildings.py +548 -0
  71. giga_spatial-0.6.0/gigaspatial/handlers/ookla_speedtest.py +199 -0
  72. giga_spatial-0.6.0/gigaspatial/handlers/opencellid.py +290 -0
  73. giga_spatial-0.6.0/gigaspatial/handlers/osm.py +356 -0
  74. giga_spatial-0.6.0/gigaspatial/handlers/overture.py +126 -0
  75. giga_spatial-0.6.0/gigaspatial/handlers/rwi.py +157 -0
  76. giga_spatial-0.6.0/gigaspatial/handlers/unicef_georepo.py +806 -0
  77. giga_spatial-0.6.0/gigaspatial/handlers/worldpop.py +266 -0
  78. giga_spatial-0.6.0/gigaspatial/processing/__init__.py +4 -0
  79. giga_spatial-0.6.0/gigaspatial/processing/geo.py +1054 -0
  80. giga_spatial-0.6.0/gigaspatial/processing/sat_images.py +39 -0
  81. giga_spatial-0.6.0/gigaspatial/processing/tif_processor.py +477 -0
  82. giga_spatial-0.6.0/gigaspatial/processing/utils.py +49 -0
  83. giga_spatial-0.6.0/pyproject.toml +3 -0
  84. giga_spatial-0.6.0/requirements.txt +18 -0
  85. giga_spatial-0.6.0/setup.cfg +4 -0
  86. giga_spatial-0.6.0/setup.py +62 -0
@@ -0,0 +1,20 @@
1
+ export ADLS_CONNECTION_STRING=""
2
+ export ADLS_CONTAINER_NAME=""
3
+ export GOOGLE_SERVICE_ACCOUNT=""
4
+ export API_PROFILE_FILE_PATH=""
5
+ export API_SHARE_NAME=""
6
+ export API_SCHEMA_NAME=""
7
+ export MAPBOX_ACCESS_TOKEN=""
8
+ export MAXAR_USERNAME=""
9
+ export MAXAR_PASSWORD=""
10
+ export MAXAR_CONNECTION_STRING=""
11
+ export OPENCELLID_ACCESS_TOKEN=""
12
+ export GEOREPO_API_KEY=""
13
+ export GEOREPO_USER_EMAIL=""
14
+ export GIGA_SCHOOL_LOCATION_API_KEY=""
15
+ export BRONZE_DIR=""
16
+ export SILVER_DIR=""
17
+ export GOLD_DIR=""
18
+ export VIEWS_DIR=""
19
+ export CACHE_DIR=""
20
+ export ADMIN_BOUNDARIES_DIR=""
@@ -0,0 +1,269 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [v0.6.0] - 2025-06-09
6
+
7
+ ### Added
8
+
9
+ #### POI View Generator
10
+ - **`map_zonal_stats`**: New method for enriched spatial mapping with support for:
11
+ - Raster point sampling (value at POI location)
12
+ - Raster zonal statistics (with buffer zone)
13
+ - Polygon aggregation (with optional area-weighted averaging)
14
+ - **Auto-generated POI IDs** in `_init_points_gdf` for consistent point tracking.
15
+ - **Support for area-weighted aggregation** for polygon-based statistics.
16
+
17
+ #### BaseHandler Orchestration Layer
18
+ - New abstract `BaseHandler` class providing unified lifecycle orchestration for config, downloader, and reader.
19
+ - High-level interface methods:
20
+ - `ensure_data_available()`
21
+ - `load_data()`
22
+ - `download_and_load()`
23
+ - `get_available_data_info()`
24
+ - Integrated factory pattern for safe and standardized component creation.
25
+ - Built-in context manager support for resource cleanup.
26
+ - Fully backwards compatible with existing handler architecture.
27
+
28
+ #### Handlers Updated to Use BaseHandler
29
+ - `GoogleOpenBuildingsHandler`
30
+ - `MicrosoftBuildingsHandler`
31
+ - `GHSLDataHandler`
32
+ - All now inherit from `BaseHandler`, supporting standardized behavior and cleaner APIs.
33
+
34
+ ---
35
+
36
+ ### Changed
37
+
38
+ #### POI View Generator
39
+ - `map_built_s` and `map_smod` now internally use the new `map_zonal_stats` method.
40
+ - `tif_processors` renamed to `data` to support both raster and polygon inputs.
41
+ - Removed parameters:
42
+ - `id_column` (now handled internally)
43
+ - `area_column` (now automatically calculated)
44
+
45
+ #### Internals and Usability
46
+ - Improved error handling with clearer validation messages.
47
+ - Enhanced logging for better visibility during enrichment.
48
+ - More consistent use of coordinate column naming.
49
+ - Refined type hints and parameter documentation across key methods.
50
+
51
+ ---
52
+
53
+ ### Notes
54
+
55
+ - Removed legacy POI generator classes and redundant `poi.py` file.
56
+ - Simplified imports and removed unused handler dependencies.
57
+ - All POI generator methods now include updated docstrings, parameter explanations, and usage examples.
58
+ - Added docs on the new `BaseHandler` interface and handler refactors.
59
+
60
+ ## [v0.5.0] - 2025-06-02
61
+
62
+ ### Changed
63
+
64
+ - **Refactored data loading architecture**:
65
+ - Introduced **dedicated reader classes** for major datasets (Microsoft Global Buildings, Google Open Buildings, GHSL), each inheriting from a new `BaseHandlerReader`.
66
+ - Centralized **file existence checks** and **raster/tabular loading** methods in `BaseHandlerReader`.
67
+ - Improved maintainability by encapsulating dataset-specific logic inside each reader class.
68
+
69
+ - **Modularized source resolution**:
70
+ - Each reader now supports resolving data **by country, geometry, or individual points**, improving code reuse and flexibility.
71
+
72
+ - **Unified POI enrichment**:
73
+ - Merged all POI generators (Google Open Buildings, Microsoft Global Buildings, GHSL Built Surface, GHSL SMOD) into a single `PoiViewGenerator` class.
74
+ - Supports flexible inputs: list of `(lat, lon)` tuples, list of dicts, DataFrame, or GeoDataFrame.
75
+ - Maintains consistent internal state via `points_gdf`, updated after each mapping.
76
+ - Enables **chained enrichment** of POI data using multiple datasets.
77
+
78
+ - **Modernized internal data access**:
79
+ - All data loading now uses dedicated **handler/reader classes**, improving consistency and long-term maintainability.
80
+
81
+ ### Fixed
82
+
83
+ - **Full DataStore integration**:
84
+ - Fixed `OpenCellID` and `HDX` handlers to fully support the `DataStore` abstraction.
85
+ - All file reads, writes, and checks now use the configured `DataStore` (local or cloud).
86
+ - Temporary files are only used during downloads; final data is always stored and accessed via the DataStore interface.
87
+
88
+ ### Removed
89
+
90
+ - Removed deprecated POI generator classes and the now-obsolete poi submodule. All enrichment is handled through the unified `PoiViewGenerator`.
91
+
92
+ ### Notes
93
+
94
+ - This release finalizes the architectural refactors started in `v0.5.0`.
95
+ - While marked stable, please report any issues or regressions from the new modular structure.
96
+
97
+ ## [v0.5.0b1] - 2025-05-27
98
+
99
+ ### Added
100
+ - **New Handlers**:
101
+ - `hdx.py`: Handler for downloading and managing Humanitarian Data Exchange datasets.
102
+ - `rwi.py`: Handler for the Relative Wealth Index dataset.
103
+ - `opencellid.py`: Handler for OpenCellID tower locations.
104
+ - `unicef_georepo.py`: Integration with UNICEF’s GeoRepo asset repository.
105
+ - **Zonal Generators**:
106
+ - Introduced the `generators/zonal/` module to support spatial aggregations of various data types (points, polygons, rasters)
107
+ to zonal geometries such as grid tiles or catchment areas.
108
+ - **New Geo-Processing Methods**:
109
+ - Added methods to compute centroids of (Multi)Polygon geometries.
110
+ - Added methods to calculate area of (Multi)Polygon geometries in square meters.
111
+
112
+ ### Changed
113
+ - **Refactored**:
114
+ - `config.py`: Added support for new environment variables (OpenCellID and UNICEF GeoRepo keys).
115
+ - `geo.py`: Enhanced spatial join functions for improved performance and clarity.
116
+ - `handlers/`:
117
+ - Minor robustness improvements in `google_open_buildings` and `microsoft_global_buildings`.
118
+ - Added a new class method in `boundaries` for initializing admin boundaries from UNICEF GeoRepo.
119
+ - `core/io/`:
120
+ - Added `list_directories` method to both ADLS and local storage backends.
121
+ - **Documentation & Project Structure**:
122
+ - Updated `.env_sample` and `.gitignore` to align with new environment variables and data handling practices.
123
+
124
+ ### Dependencies
125
+ - Updated `requirements.txt` and `setup.py` to reflect new dependencies and ensure compatibility.
126
+
127
+ ### Notes
128
+ - This is a **pre-release** (`v0.5.0b1`) and is intended for testing and feedback.
129
+ - Some new modules, especially in `handlers` and `generators`, are experimental and may be refined in upcoming releases.
130
+
131
+ ## [v0.4.1] - 2025-04-17
132
+ ### Added
133
+ - **Documentation**:
134
+ - Added **API Reference** documentation for all modules, classes, and functions.
135
+ - Added a **Configuration Guide** to explain how to set up paths, API keys, and other.
136
+ - **TifProcessor**: added new to_dataframe method.
137
+ - **config**: added set_path method for dynamic path management.
138
+
139
+ ### Changed
140
+ - **Documentation**:
141
+ - Restructured the `docs/` directory to improve organization and navigation.
142
+ - Updated the `index.md` for the **User Guide** to provide a clear overview of available documentation.
143
+ - Updated **Examples** for downloading, processing, and storing geospatial data - more to come.
144
+ - **README**:
145
+ - Updated the README with a clear description of the package’s purpose and key features.
146
+ - Added a section on **View Generators** to explain spatial context enrichment and mapping to grid or POI locations.
147
+ - Included a **Supported Datasets** section with an image of dataset provider logos.
148
+
149
+ ### Fixed
150
+ - Handled errors when processing nodes, relations, and ways in **OSMLocationFetcher**.
151
+ - Made `admin1` and `admin1_id_giga` optional in GigaEntity instances for countries with no admin level 1 divisions.
152
+
153
+ ## [v0.4.0] - 2025-04-01
154
+ ### Added
155
+ - **POI View Generators**: Introduced a new module, generators, containing a base class for POI view generation.
156
+ - **Expanded POI Support**: Added new classes for generating POI views from:
157
+ - **Google Open Buildings**
158
+ - **Microsoft Global Buildings**
159
+ - **GHSL Settlement Model**
160
+ - **GHSL Built Surface**
161
+ - **New Reader**: Added read_gzipped_json_or_csv to handle compressed JSON/CSV files.
162
+
163
+ ### Changed
164
+ - **ADLSDataStore Enhancements**: Updated methods to match LocalDataStore for improved consistency.
165
+ - **Geo Processing Updates**:
166
+ - Improved convert_to_dataframe for more efficient data conversion.
167
+ - Enhanced annotate_with_admin_regions to improve spatial joins.
168
+ - **New TifProcessor Methods**:
169
+ - sample_by_polygons for polygon-based raster sampling.
170
+ - sample_multiple_tifs_by_coordinates & sample_multiple_tifs_by_polygons to manage multi-raster sampling.
171
+ - **Fixed Global Config Handling**: Resolved issues with handling configurations inside classes.
172
+
173
+ ## [v0.3.2] - 2025-03-21
174
+ ### Added
175
+ - Added a method to efficiently assign unique IDs to features.
176
+
177
+ ### Changed
178
+ - Enhanced logging for better debugging and clarity.
179
+
180
+ ### Fixed
181
+ - Minor bug fix in config.py
182
+
183
+ ## [0.3.1] - 2025-03-20
184
+
185
+ ### Added
186
+ - Enhanced AdminBoundaries handler with improved error handling for cases where administrative level data is unavailable for a country.
187
+ - Added pyproject.toml and setup.py, enabling pip install support for the package.
188
+ - Introduced a new method annotate_with_admin_regions in geo.py to perform spatial joins between input points and administrative boundaries (levels 1 and 2), handling conflicts where points intersect multiple admin regions.
189
+
190
+ ### Removed
191
+ - Removed the utils module containing logger.py and integrated LOG_FORMAT and get_logger into config.py for a more streamlined logging approach.
192
+
193
+ ## [0.3.0] - 2025-03-18
194
+ ### Added
195
+ - Compression support in readers for improved efficiency
196
+ - New GHSL data handler to manage GHSL dataset downloads
197
+
198
+ ### Fixed
199
+ - Small fixes/improvements in Microsoft Buildings, Maxar, and Overture handlers
200
+
201
+ ## [v0.2.2] - 2025-03-12
202
+ - **Refactored Handlers**: Improved structure and performance of maxar_image.py, osm.py and overture.py to enhance geospatial data handling.
203
+
204
+ - **Documentation Improvements**:
205
+ - Updated index.md, advanced.md, and use-cases.md for better clarity.
206
+ - Added installation.md under docs/getting-started for setup guidance.
207
+ - Refined API documentation in docs/api/index.md.
208
+
209
+ - **Configuration & Setup Enhancements**:
210
+ • Improved .gitignore to exclude unnecessary files.
211
+ • Updated mkdocs.yml for better documentation structuring.
212
+ - **Bug Fixes & Minor Optimizations**: Small fixes and improvements across the codebase for stability and maintainability.
213
+
214
+ ## [v0.2.1] - 2025-02-28
215
+ ### Added
216
+ - Introduced WorldPopDownloader feature to handlers
217
+ - Refactored TifProcessor class for better performance
218
+
219
+ ### Fixed
220
+ - Minor bug fixes and performance improvements
221
+
222
+ ## [v0.2.0] - MaxarImageDownloader & Bug Fixes - 2025-02-24
223
+ - **New Handler**: MaxarImageDownloader for downloading Maxar images.
224
+ - **Bug Fixes**: Various improvements and bug fixes.
225
+ - **Enhancements**: Minor optimizations in handlers.
226
+
227
+ ## [v0.1.1] - 2025-02-24
228
+
229
+ ### Added
230
+ - **Local Data Store**: Introduced a new local data store alongside ADLS to improve data storage and read/write functionality.
231
+ - **Boundaries Handler**: Added `boundaries.py`, a new handler that allows to read administrative boundaries from GADM.
232
+
233
+ ### Changed
234
+ - **Handler Refactoring**: Refactored existing handlers to improve modularity and data handling.
235
+ - **Configuration Management**: Added `config.py` to manage paths, runtime settings, and environment variables.
236
+
237
+ ### Removed
238
+ - **Administrative Schema**: Removed `administrative.py` since its functionality is now handled by the `boundaries` handler.
239
+ - **Globals Module**: Removed `globals.py` and replaced it with `config.py` for better configuration management.
240
+
241
+ ### Updated Files
242
+ - `config.py`
243
+ - `boundaries.py`
244
+ - `google_open_buildings.py`
245
+ - `mapbox_image.py`
246
+ - `microsoft_global_buildings.py`
247
+ - `ookla_speedtest.py`
248
+ - `mercator_tiles.py`
249
+ - `adls_data_store.py`
250
+ - `data_store.py`
251
+ - `local_data_store.py`
252
+ - `readers.py`
253
+ - `writers.py`
254
+ - `entity.py`
255
+
256
+ ## [v0.1.0] - 2025-02-07
257
+ ### Added
258
+ - New data handlers: `google_open_buildings.py`, `microsoft_global_buildings.py`, `overture.py`, `mapbox_image.py`, `osm.py`
259
+ - Processing functions in `tif_processor.py`, `geo.py` and `transform.py`
260
+ - Grid generation modules: `h3_tiles.py`, `mercator_tiles.py`
261
+ - View managers: `grid_view.py` and `national_view.py`
262
+ - Schemas: `administrative.py`
263
+
264
+ ### Changed
265
+ - Updated `requirements.txt` with new dependencies
266
+ - Improved logging and data storage mechanisms
267
+
268
+ ### Removed
269
+ - Deprecated views: `h3_view.py`, `mercator_view.py`
@@ -0,0 +1,86 @@
1
+ # Code of Conduct
2
+
3
+ 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 these standards:
4
+
5
+ ## Our Pledge​
6
+
7
+ We promise to ensure a welcoming environment, regardless of:
8
+
9
+ - Age
10
+ - Body size
11
+ - Disability
12
+ - Ethnicity
13
+ - Gender identity and expression
14
+ - Level of experience
15
+ - Education
16
+ - Socio-economic status
17
+ - Nationality
18
+ - Personal appearance
19
+ - Race
20
+ - Religion
21
+ - Sexual identity and orientation
22
+
23
+ ## Our Standards​
24
+
25
+ Examples of behavior that contributes to creating a positive environment include:
26
+
27
+ - Using language that's welcoming and inclusive
28
+ - Respecting differing viewpoints and experiences
29
+ - Embracing constructive criticism gracefully
30
+ - Prioritizing the well-being of the community
31
+ - Showing empathy towards fellow community members
32
+
33
+ Examples of unacceptable behavior by participants include:
34
+
35
+ - Using sexualized language or imagery, or making unwelcome advances
36
+ - Engaging in trolling, derogatory comments, or personal attacks
37
+ - Harassment in public or private spaces
38
+ - Publishing others' private information without explicit consent
39
+ - Any conduct that could be deemed inappropriate in a professional setting
40
+
41
+ ## Our Responsibilities​
42
+
43
+ Project maintainers are entrusted with defining and upholding acceptable behavior standards. They have the authority to:
44
+
45
+ - Clarify the standards of acceptable behavior
46
+ - Take fair and appropriate action in response to unacceptable behavior
47
+ - Remove, edit, or reject contributions that violate the Code of Conduct
48
+ - Temporarily or permanently ban contributors engaging in inappropriate, offensive, or harmful behavior
49
+
50
+ ## Scope​
51
+
52
+ This Code of Conduct applies within project spaces and when representing the project or community publicly. This representation includes using official project communication channels, social media, or acting as a representative at online/offline events. Project maintainers will define and clarify what constitutes representation.
53
+
54
+ ## Enforcement and Reporting​
55
+
56
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [giga@unicef.org](mailto:giga@unicef.org). All complaints will be reviewed and investigated promptly and fairly.
57
+
58
+ All community leaders are obligated to respect the privacy and security of the reporter of any incident.
59
+
60
+ ## Community Spaces​
61
+
62
+ - Twitter
63
+ - Gigas' Website
64
+ - Discord
65
+ - Mail
66
+
67
+ ## Enforcement Guidelines​
68
+
69
+ Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
70
+
71
+ - **Correction**
72
+ - Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
73
+ - Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
74
+ - **Warning**
75
+ - Community Impact: A violation through a single incident or series of actions.
76
+ - Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
77
+ - **Temporary Ban**
78
+ - Community Impact: A serious violation of community standards, including sustained inappropriate behavior.
79
+ - Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
80
+ - **Permanent Ban**
81
+ - Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
82
+ - Consequence: A permanent ban from any sort of public interaction within the community.
83
+
84
+ ## Attribution​
85
+
86
+ This Code of Conduct is adapted from the [Contributor Covenant code of conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
@@ -0,0 +1,49 @@
1
+ # Contribution Guidelines
2
+
3
+ Thank you for considering contributing to Giga! We value your input and aim to make the contribution process as accessible and transparent as possible. Whether you're interested in reporting bugs, discussing code, submitting fixes, proposing features, becoming a maintainer, or engaging with the Giga community, we welcome your involvement.
4
+
5
+ ## How to Contribute to our Giga Project?
6
+
7
+ 1. **Familiarize Yourself:** Before contributing, familiarize yourself with the project by reviewing the README, code of conduct, and existing issues or pull requests.
8
+ 2. **Issues and Feature Requests:** Check the issue tracker for existing issues or create a new one to report bugs, suggest improvements, or propose new features.
9
+ 3. **Fork and Branch:** Fork the repository and create a branch for your contribution. Branch names should be descriptive (e.g., feature/add-new-functionality, bugfix/issue-description).
10
+ 4. **Code Changes:** Make changes or additions following our coding conventions and style guide. Ensure to write clear commit messages that explain the purpose of each commit.
11
+ 5. **Testing:** If applicable, include tests for the changes made to ensure code reliability. Ensure existing tests pass.
12
+ 6. **Documentation:** Update relevant documentation, including README files or any other necessary guides.
13
+ 7. **Pull Request:** Open a pull request (PR) against the main branch. Clearly describe the changes introduced, referencing any related issues.
14
+
15
+ ## Report a Bug or Suggestion
16
+
17
+ - **Bug Reports:** Help us understand and address issues by submitting detailed bug reports via GitHub issues. Include as many relevant details as possible in the provided template to expedite resolutions.
18
+ - **Suggestions:** Share your ideas, feedback, or stay updated on Giga by joining our [Discord channel]((https://discord.com/invite/NStBwE7kyv)).
19
+
20
+ ## Making Changes and Pull Requests
21
+
22
+ To contribute code changes:
23
+
24
+ 1. Fork the repository and create a new branch for your contribution
25
+ >`git checkout -b 'my-contribution'`.
26
+ 2. Make your changes on the created branch.
27
+ 3. Commit with clear messages describing the updates.
28
+ 4. Submit a pull request in the main repository, ensuring the following:
29
+ - Clear use case or demonstration of bug fix/new feature.
30
+ - Inclusion of relevant tests (unit, functional, and fuzz tests where applicable).
31
+ - Adherence to code style guidelines.
32
+ - No breaking changes to the existing test suite.
33
+ - Bug fixes accompanied by tests to prevent regression.
34
+ - Update of relevant comments and documentation reflecting code behavior changes.
35
+
36
+ ## Contributing with an Issue
37
+
38
+ If you encounter a bug but aren't sure how to fix it or submit a pull request, you can create an issue. Issues serve as avenues for bug reports, feedback, and general discussions within the GigaSpatial GitHub repository.
39
+
40
+ ## Other Ways to Contribute
41
+
42
+ Beyond code contributions:
43
+
44
+ - **Feedback and Insights:** Share your expertise and experiences related to cash transfer by contacting us at [giga@unicef.org](mailto:giga@unicef.org).
45
+ - **Documentation:** Contribute to our journey by sharing reports, case studies, articles, blogs, or surveys. Contact us to contribute and learn more via [giga@unicef.org](mailto:giga@unicef.org).
46
+ - **Designs:** If you're passionate about UI/UX, animations, graphics, tutorials, etc., contact us to create visuals for the Giga community via [giga@unicef.org](mailto:giga@unicef.org).
47
+
48
+ ## Connect with Giga Contributors
49
+ Connect with fellow contributors via our Discord channel to engage with the Giga community: [Click](https://discord.com/invite/NStBwE7kyv)