RadGEEToolbox 1.6.0__tar.gz → 1.6.2__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 (21) hide show
  1. radgeetoolbox-1.6.2/PKG-INFO +194 -0
  2. radgeetoolbox-1.6.2/README.md +165 -0
  3. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox/CollectionStitch.py +6 -6
  4. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox/GetPalette.py +2 -2
  5. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox/LandsatCollection.py +219 -462
  6. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox/Sentinel1Collection.py +129 -245
  7. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox/Sentinel2Collection.py +164 -403
  8. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox/VisParams.py +6 -6
  9. radgeetoolbox-1.6.2/RadGEEToolbox.egg-info/PKG-INFO +194 -0
  10. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/pyproject.toml +13 -1
  11. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/setup.py +1 -1
  12. radgeetoolbox-1.6.0/PKG-INFO +0 -247
  13. radgeetoolbox-1.6.0/README.md +0 -228
  14. radgeetoolbox-1.6.0/RadGEEToolbox.egg-info/PKG-INFO +0 -247
  15. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/LICENSE.txt +0 -0
  16. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox/__init__.py +0 -0
  17. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox.egg-info/SOURCES.txt +0 -0
  18. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox.egg-info/dependency_links.txt +0 -0
  19. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox.egg-info/requires.txt +0 -0
  20. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/RadGEEToolbox.egg-info/top_level.txt +0 -0
  21. {radgeetoolbox-1.6.0 → radgeetoolbox-1.6.2}/setup.cfg +0 -0
@@ -0,0 +1,194 @@
1
+ Metadata-Version: 2.4
2
+ Name: RadGEEToolbox
3
+ Version: 1.6.2
4
+ Summary: Streamlined Multispectral & SAR Analysis for Google Earth Engine Python API
5
+ Home-page: https://github.com/radwinskis/RadGEEToolbox
6
+ Author: Mark Radwin
7
+ Author-email: Mark Radwin <markradwin@gmail.com>
8
+ License: MIT
9
+ Project-URL: Homepage, https://github.com/radwinskis/RadGEEToolbox
10
+ Project-URL: Documentation, https://radgeetoolbox.readthedocs.io/en/latest/
11
+ Project-URL: Issues, https://github.com/radwinskis/RadGEEToolbox/issues
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Topic :: Scientific/Engineering :: GIS
17
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
18
+ Classifier: Operating System :: OS Independent
19
+ Requires-Python: >=3.6
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE.txt
22
+ Requires-Dist: earthengine-api
23
+ Requires-Dist: numpy
24
+ Requires-Dist: pandas
25
+ Dynamic: author
26
+ Dynamic: home-page
27
+ Dynamic: license-file
28
+ Dynamic: requires-python
29
+
30
+ [![PyPI version](https://badge.fury.io/py/RadGEEToolbox.svg)](https://pypi.org/project/RadGEEToolbox/)
31
+
32
+ # RadGEEToolbox 🛠
33
+
34
+ ![](image-1.png)
35
+
36
+ ### 🌎 Streamlined Multispectral & SAR Analysis for Google Earth Engine Python API
37
+
38
+ ### [See documentation here](https://radgeetoolbox.readthedocs.io/en/latest/)
39
+
40
+ **RadGEEToolbox** is an open-source Python package that simplifies the processing and analysis of satellite imagery using the Google Earth Engine Python API. It provides ready-to-use tools for filtering, masking, mosaicking, spectral index calculations, and extracting statistics from multispectral (Landsat, Sentinel-2) and SAR (Sentinel-1) datasets.
41
+
42
+ Designed for both new and advanced users of Google Earth Engine, RadGEEToolbox minimizes repetitive scripting, accelerates common remote sensing workflows, and aims to maximize efficiency within the constraints of the Google Earth Engine API. Whether you’re building a time series of vegetation indices or extracting surface properties along transects, this package helps get results faster.
43
+
44
+ _________
45
+
46
+ ## Key Features
47
+
48
+ - Modular tools for processing **Landsat, Sentinel-1 SAR, and Sentinel-2** imagery
49
+ - Efficient filtering, masking, and mosaicking of Earth Engine image collections
50
+ - Built-in support for computing **spectral indices** (NDWI, NDVI, LST, turbidity, chlorophyll, etc.)
51
+ - SAR utilities for **multilooking**, **speckle filtering**, and **backscatter conversion**
52
+ - Automated extraction of **transect and zonal statistics** across image collections
53
+ - Easy conversion between RadGEEToolbox and standard Earth Engine objects
54
+ - Server-side–friendly workflows and caching for faster, scalable processing
55
+
56
+ 🔍 For a full breakdown of available tools, see the [RadGEEToolbox documentation »](https://radgeetoolbox.readthedocs.io/en/latest/)
57
+
58
+ _____________
59
+
60
+ ## Installation Instructions
61
+
62
+ ### Prerequisites
63
+
64
+ - **Python**: Ensure you have version 3.6 or higher installed.
65
+ - **pip**: This is Python's package installer.
66
+ - **conda-forge**: Community led Conda package installer channel
67
+
68
+ ### Installing via pip
69
+
70
+ To install `RadGEEToolbox` version 1.6.2 using pip (NOTE: it is recommended to create a new virtual environment):
71
+
72
+ ```bash
73
+ pip install RadGEEToolbox==1.6.2
74
+ ```
75
+
76
+ ### Installing via Conda
77
+
78
+ To install `RadGEEToolbox` version 1.6.2 using conda-forge (NOTE: it is recommended to create a new virtual environment):
79
+
80
+ ```bash
81
+ conda install conda-forge::radgeetoolbox
82
+ ```
83
+
84
+ ### Manual Installation from Source
85
+
86
+ 1. **Clone the Repository**:
87
+ ```bash
88
+ git clone https://github.com/radwinskis/RadGEEToolbox.git
89
+ ```
90
+
91
+ 2. **Navigate to Directory**:
92
+ ```bash
93
+ cd RadGEEToolbox
94
+ ```
95
+
96
+ 3. **Install the Package**:
97
+ ```bash
98
+ pip install .
99
+ ```
100
+
101
+ ### ✅ Verifying the Installation
102
+
103
+ To verify that `RadGEEToolbox` was installed correctly:
104
+
105
+ ```python
106
+ python -c "import RadGEEToolbox; print(RadGEEToolbox.__version__)"
107
+ ```
108
+
109
+ You should see `1.6.2` printed as the version number.
110
+
111
+ ________
112
+ # Usage Example
113
+
114
+ Below is an example use case using the `LandsatCollection` module to create an NDWI image collection, create water classification maps, and create a time series of water area.
115
+
116
+ ### 1. Create a Filtered Landsat Image Collection
117
+
118
+ ```python
119
+ # 1. Import necessary packages and modules
120
+ import ee
121
+ from RadGEEToolbox import LandsatCollection
122
+
123
+ # 2. Authenticate & Initialize GEE API
124
+ ee.Authenticate()
125
+ ee.Initialize()
126
+
127
+ # 3. Define study area boundary - in this case Lake Powell, Utah
128
+ study_area = ee.Geometry.Polygon(
129
+ [[[-111.35875055487008, 37.19999663127137],
130
+ [-111.35875055487008, 37.00119876939416],
131
+ [-111.12048456365915, 37.00119876939416],
132
+ [-111.12048456365915, 37.19999663127137]]])
133
+
134
+ # 3. Create a Landsat image collection for a given time range and study area
135
+ # includes filtering imagery based on areal percentage of cloud cover
136
+ # WRS-2 tile(s) can also be used for filtering instead of an ROI geometry
137
+ collection = LandsatCollection(
138
+ start_date='2020-01-01', #date formats of 'YYYY-MM-DD'
139
+ end_date='2025-01-01',
140
+ cloud_percentage_threshold=10, #filtering to <10% cloud coverage
141
+ boundary=study_area #ee.Geometry() of your study area
142
+ )
143
+
144
+ # 4. Check collection by printing the dates of all images in the collection
145
+ dates = collection.dates
146
+ print(dates)
147
+ ```
148
+ ### 2. Apply a Cloud Mask and Compute NDWI
149
+ ```python
150
+ # 1. Mask clouds
151
+ cloud_masked_collection = collection.masked_clouds_collection
152
+ # 2. Create a collection of singleband NDWI images with band names of 'ndwi'
153
+ cloud_masked_NDWI_collection = cloud_masked_collection.ndwi
154
+ # BONUS - 3. Create water classification maps using a user-set binary NDWI threshold
155
+ water_classification_maps = cloud_masked_collection.ndwi_collection(
156
+ threshold=0
157
+ )
158
+ ```
159
+ ![Visualization of true color and classified water (in blue) from one of the dates in the collection](image-3.png)
160
+
161
+ Visualization of true color and classified water (in blue) from one of the dates in the collection
162
+
163
+ ### 3. Calculate Water Area Time Series
164
+ ```python
165
+ calculate_water_area = cloud_masked_NDWI_collection.PixelAreaSumCollection(
166
+ band_name='ndwi', #specify band to use from collection
167
+ geometry=study_area), #ee.Geometry() of your study area
168
+ threshold=0, #binary classification threshold for unclassified rasters,
169
+ scale=90 #pixel size for zonal statistics
170
+ )
171
+ water_area_time_series = calculate_water_area.aggregate_array('ndwi').getInfo()
172
+ print('List of square meters of water in images:', water_area_time_series)
173
+ ```
174
+
175
+ ![Plotted Results from Above Example - All Processed in Less Than 5 Seconds!](image-4.png)
176
+
177
+ Plotted Results from Above Example - All Processed in Less Than 5 Seconds!
178
+
179
+ For details about Sentinel-1 SAR and Sentinel-2 MSI modules, and all other available Landsat or cross-module functions, please refer to the [RadGEEToolbox documentation](https://radgeetoolbox.readthedocs.io/en/latest/). You can also explore [`/Example Notebooks`](https://github.com/radwinskis/RadGEEToolbox/tree/main/Example%20Notebooks) for more usage examples.
180
+
181
+ ________
182
+
183
+
184
+ ## Contributing
185
+
186
+ Contributions are welcome! If you’d like to suggest a feature, report a bug, or contribute code or documentation, please visit the [GitHub Issues](https://github.com/radwinskis/RadGEEToolbox/issues) page to get started or view the `CONTRIBUTING.md` file in the main directory.
187
+
188
+ ____
189
+
190
+ ## License
191
+
192
+ RadGEEToolbox is released under the MIT License.
193
+
194
+
@@ -0,0 +1,165 @@
1
+ [![PyPI version](https://badge.fury.io/py/RadGEEToolbox.svg)](https://pypi.org/project/RadGEEToolbox/)
2
+
3
+ # RadGEEToolbox 🛠
4
+
5
+ ![](image-1.png)
6
+
7
+ ### 🌎 Streamlined Multispectral & SAR Analysis for Google Earth Engine Python API
8
+
9
+ ### [See documentation here](https://radgeetoolbox.readthedocs.io/en/latest/)
10
+
11
+ **RadGEEToolbox** is an open-source Python package that simplifies the processing and analysis of satellite imagery using the Google Earth Engine Python API. It provides ready-to-use tools for filtering, masking, mosaicking, spectral index calculations, and extracting statistics from multispectral (Landsat, Sentinel-2) and SAR (Sentinel-1) datasets.
12
+
13
+ Designed for both new and advanced users of Google Earth Engine, RadGEEToolbox minimizes repetitive scripting, accelerates common remote sensing workflows, and aims to maximize efficiency within the constraints of the Google Earth Engine API. Whether you’re building a time series of vegetation indices or extracting surface properties along transects, this package helps get results faster.
14
+
15
+ _________
16
+
17
+ ## Key Features
18
+
19
+ - Modular tools for processing **Landsat, Sentinel-1 SAR, and Sentinel-2** imagery
20
+ - Efficient filtering, masking, and mosaicking of Earth Engine image collections
21
+ - Built-in support for computing **spectral indices** (NDWI, NDVI, LST, turbidity, chlorophyll, etc.)
22
+ - SAR utilities for **multilooking**, **speckle filtering**, and **backscatter conversion**
23
+ - Automated extraction of **transect and zonal statistics** across image collections
24
+ - Easy conversion between RadGEEToolbox and standard Earth Engine objects
25
+ - Server-side–friendly workflows and caching for faster, scalable processing
26
+
27
+ 🔍 For a full breakdown of available tools, see the [RadGEEToolbox documentation »](https://radgeetoolbox.readthedocs.io/en/latest/)
28
+
29
+ _____________
30
+
31
+ ## Installation Instructions
32
+
33
+ ### Prerequisites
34
+
35
+ - **Python**: Ensure you have version 3.6 or higher installed.
36
+ - **pip**: This is Python's package installer.
37
+ - **conda-forge**: Community led Conda package installer channel
38
+
39
+ ### Installing via pip
40
+
41
+ To install `RadGEEToolbox` version 1.6.2 using pip (NOTE: it is recommended to create a new virtual environment):
42
+
43
+ ```bash
44
+ pip install RadGEEToolbox==1.6.2
45
+ ```
46
+
47
+ ### Installing via Conda
48
+
49
+ To install `RadGEEToolbox` version 1.6.2 using conda-forge (NOTE: it is recommended to create a new virtual environment):
50
+
51
+ ```bash
52
+ conda install conda-forge::radgeetoolbox
53
+ ```
54
+
55
+ ### Manual Installation from Source
56
+
57
+ 1. **Clone the Repository**:
58
+ ```bash
59
+ git clone https://github.com/radwinskis/RadGEEToolbox.git
60
+ ```
61
+
62
+ 2. **Navigate to Directory**:
63
+ ```bash
64
+ cd RadGEEToolbox
65
+ ```
66
+
67
+ 3. **Install the Package**:
68
+ ```bash
69
+ pip install .
70
+ ```
71
+
72
+ ### ✅ Verifying the Installation
73
+
74
+ To verify that `RadGEEToolbox` was installed correctly:
75
+
76
+ ```python
77
+ python -c "import RadGEEToolbox; print(RadGEEToolbox.__version__)"
78
+ ```
79
+
80
+ You should see `1.6.2` printed as the version number.
81
+
82
+ ________
83
+ # Usage Example
84
+
85
+ Below is an example use case using the `LandsatCollection` module to create an NDWI image collection, create water classification maps, and create a time series of water area.
86
+
87
+ ### 1. Create a Filtered Landsat Image Collection
88
+
89
+ ```python
90
+ # 1. Import necessary packages and modules
91
+ import ee
92
+ from RadGEEToolbox import LandsatCollection
93
+
94
+ # 2. Authenticate & Initialize GEE API
95
+ ee.Authenticate()
96
+ ee.Initialize()
97
+
98
+ # 3. Define study area boundary - in this case Lake Powell, Utah
99
+ study_area = ee.Geometry.Polygon(
100
+ [[[-111.35875055487008, 37.19999663127137],
101
+ [-111.35875055487008, 37.00119876939416],
102
+ [-111.12048456365915, 37.00119876939416],
103
+ [-111.12048456365915, 37.19999663127137]]])
104
+
105
+ # 3. Create a Landsat image collection for a given time range and study area
106
+ # includes filtering imagery based on areal percentage of cloud cover
107
+ # WRS-2 tile(s) can also be used for filtering instead of an ROI geometry
108
+ collection = LandsatCollection(
109
+ start_date='2020-01-01', #date formats of 'YYYY-MM-DD'
110
+ end_date='2025-01-01',
111
+ cloud_percentage_threshold=10, #filtering to <10% cloud coverage
112
+ boundary=study_area #ee.Geometry() of your study area
113
+ )
114
+
115
+ # 4. Check collection by printing the dates of all images in the collection
116
+ dates = collection.dates
117
+ print(dates)
118
+ ```
119
+ ### 2. Apply a Cloud Mask and Compute NDWI
120
+ ```python
121
+ # 1. Mask clouds
122
+ cloud_masked_collection = collection.masked_clouds_collection
123
+ # 2. Create a collection of singleband NDWI images with band names of 'ndwi'
124
+ cloud_masked_NDWI_collection = cloud_masked_collection.ndwi
125
+ # BONUS - 3. Create water classification maps using a user-set binary NDWI threshold
126
+ water_classification_maps = cloud_masked_collection.ndwi_collection(
127
+ threshold=0
128
+ )
129
+ ```
130
+ ![Visualization of true color and classified water (in blue) from one of the dates in the collection](image-3.png)
131
+
132
+ Visualization of true color and classified water (in blue) from one of the dates in the collection
133
+
134
+ ### 3. Calculate Water Area Time Series
135
+ ```python
136
+ calculate_water_area = cloud_masked_NDWI_collection.PixelAreaSumCollection(
137
+ band_name='ndwi', #specify band to use from collection
138
+ geometry=study_area), #ee.Geometry() of your study area
139
+ threshold=0, #binary classification threshold for unclassified rasters,
140
+ scale=90 #pixel size for zonal statistics
141
+ )
142
+ water_area_time_series = calculate_water_area.aggregate_array('ndwi').getInfo()
143
+ print('List of square meters of water in images:', water_area_time_series)
144
+ ```
145
+
146
+ ![Plotted Results from Above Example - All Processed in Less Than 5 Seconds!](image-4.png)
147
+
148
+ Plotted Results from Above Example - All Processed in Less Than 5 Seconds!
149
+
150
+ For details about Sentinel-1 SAR and Sentinel-2 MSI modules, and all other available Landsat or cross-module functions, please refer to the [RadGEEToolbox documentation](https://radgeetoolbox.readthedocs.io/en/latest/). You can also explore [`/Example Notebooks`](https://github.com/radwinskis/RadGEEToolbox/tree/main/Example%20Notebooks) for more usage examples.
151
+
152
+ ________
153
+
154
+
155
+ ## Contributing
156
+
157
+ Contributions are welcome! If you’d like to suggest a feature, report a bug, or contribute code or documentation, please visit the [GitHub Issues](https://github.com/radwinskis/RadGEEToolbox/issues) page to get started or view the `CONTRIBUTING.md` file in the main directory.
158
+
159
+ ____
160
+
161
+ ## License
162
+
163
+ RadGEEToolbox is released under the MIT License.
164
+
165
+
@@ -6,12 +6,12 @@ def CollectionStitch(img_col1, img_col2, copy_properties_from=1):
6
6
  Returned image collection is an eeImageCollection object. NOTE this is different from the CollectionStitch function available in the LandsatCollection and SentinelCollection classes.
7
7
 
8
8
  Args:
9
- img_col2: primary LandsatCollection image collection to be mosaiced with the secondary image collection
10
- img_col2: secondary LandsatCollection image collection to be mosaiced with the primary image collection
11
- copy_properties_from: image collection used for copying image properties
9
+ img_col1 (RadGEEToolbox object): primary RadGEEToolbox image collection to be mosaiced with the secondary image collection
10
+ img_col2 (RadGEEToolbox object): secondary RadGEEToolbox image collection to be mosaiced with the primary image collection
11
+ copy_properties_from (int): image collection used for copying image properties, options of 1 or 2 for primary or secondary respectively. Default is 1.
12
12
 
13
13
  Returns:
14
- image collection: eeImageCollection image collection with mosaiced imagery and image properties from chosen collection
14
+ ee.ImageCollection: ee.ImageCollection image collection with mosaiced imagery and image properties from chosen collection
15
15
  """
16
16
  image_list = []
17
17
  dates_list = img_col1.dates_list + img_col2.dates_list
@@ -39,10 +39,10 @@ def MosaicByDate(img_col):
39
39
  Function to mosaic collection images that share the same date. Server-side friendly. Requires images to have date property of "Date_Filter"
40
40
 
41
41
  Args:
42
- img_col: eeImageCollection object
42
+ img_col(RadGEEToolbox object): eeImageCollection object
43
43
 
44
44
  Returns:
45
- image collection: eeImageCollection with mosaiced imagery
45
+ ee.ImageCollection: ee.ImageCollection with mosaiced imagery
46
46
  """
47
47
  input_collection = img_col
48
48
  # Function to mosaic images of the same date and accumulate them
@@ -3,10 +3,10 @@ def get_palette(name):
3
3
  Returns the color palette associated with the given name.
4
4
 
5
5
  Args:
6
- name: options: 'algae', 'dense', 'greens', 'haline', 'inferno', 'jet', 'matter', 'pubu', 'soft_blue_green_red', 'thermal', 'turbid', 'ylord'
6
+ name (str): options are 'algae', 'dense', 'greens', 'haline', 'inferno', 'jet', 'matter', 'pubu', 'soft_blue_green_red', 'thermal', 'turbid', 'ylord'
7
7
 
8
8
  Returns:
9
- list: list of colors to be used for image visualization in GEE vis params
9
+ list: list of colors to be used for image visualization in GEE vis params
10
10
 
11
11
  """
12
12
  palettes = {