RadGEEToolbox 1.5.0__tar.gz → 1.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.
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Mark Radwin
3
+ Copyright (c) 2025 Mark Radwin
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,247 @@
1
+ Metadata-Version: 2.2
2
+ Name: RadGEEToolbox
3
+ Version: 1.6.0
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
+ Requires-Python: >=3.6
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE.txt
13
+ Requires-Dist: earthengine-api
14
+ Requires-Dist: numpy
15
+ Requires-Dist: pandas
16
+ Dynamic: author
17
+ Dynamic: home-page
18
+ Dynamic: requires-python
19
+
20
+ [![PyPI version](https://badge.fury.io/py/RadGEEToolbox.svg)](https://pypi.org/project/RadGEEToolbox/)
21
+
22
+ # RadGEEToolbox 🛠
23
+
24
+ ### 🌎 Streamlined Multispectral & SAR Analysis for Google Earth Engine Python API
25
+
26
+ ### [See documentation here](https://radgeetoolbox.readthedocs.io/en/latest/)
27
+
28
+ `RadGEEToolbox` is an open-source Python package that facilitates the processing and analysis of both multispectral and Synthetic Aperture Radar (SAR) satellite imagery using `Google Earth Engine (GEE)`, including Landsat TM & OLI (courtesy of U.S. Geological Survey), Sentinel-1 SAR (courtesy of European Space Agency), and Sentinel-2 MSI (courtesy of European Space Agency) datasets. By providing an intuitive, modular framework, it simplifies complex remote sensing workflows, enabling researchers to efficiently manage, process, and analyze satellite imagery across a range of environmental and geospatial applications. The package is designed for time series analyses of large-scale remote sensing datasets, reducing the amount of custom scripting required in `GEE` while ensuring reproducibility and efficiency. Researchers working in landscape change, environmental monitoring, natural hazards, and land cover classification can benefit from `RadGEEToolbox`’s ability to streamline workflows from data acquisition to final analysis.
29
+
30
+ The package includes specialized tools for both multispectral and SAR data processing, offering capabilities such as image subsetting, mosaic generation, cloud/water masking, spectral index calculations, speckle filtering, multilooking, backscatter transformations, transect extractions, spatial statistics, and more. One of the advantages of `RadGEEToolbox` is its ability to seamlessly integrate user-defined `GEE` functions or operations, allowing researchers to modify and extend their analyses without being restricted to predefined operations offered by this package. `RadGEEToolbox` also includes preconfigured visualization parameters, facilitating intuitive exploration of geospatial datasets.
31
+
32
+ Originally developed by Mark Radwin to streamline imagery processing for PhD research and general image analysis, this package provides robust functionality with plans for future enhancements to support various Earth observation professionals.
33
+
34
+ ______
35
+
36
+ ### Package structure
37
+
38
+ The package is divided into six modules:
39
+
40
+ - `LandsatCollection`
41
+ - Filter and process Landsat 5 TM, 8 OLI/TIRS, and 9 OLI/TIRS surface reflectance imagery
42
+ - `Sentinel1Collection`
43
+ - Filter and process Sentinel-1 Synthetic Aperture Radar (SAR) GRB backscatter imagery
44
+ - `Sentinel2Collection`
45
+ - Filter and process Sentinel-2 MSI surface reflectance imagery
46
+ - `CollectionStitch`
47
+ - Accessory module to perform mosaicing functions on traditional GEE collections
48
+ - `GetPalette`
49
+ - Retrieve color palettes compatible with visualiztion GEE layers
50
+ - `VisParams`
51
+ - Alternative to visualization parameters dictionaries, define vis params using a function and retrieve palettes from GetPalette - makes visualizing images a bit easier
52
+
53
+
54
+ `LandsatCollection.py`, `Sentinel1Collection.py`, and `Sentinel2Collection.py` are the main modules for the majority of image processing.
55
+
56
+ `CollectionStitch.py`, `GetPalette.py`, and `VisParams.py` are supplemental for additional processing and image display.
57
+
58
+ Almost all functionality is server-side friendly AND most results are cached, providing faster processing times.
59
+
60
+ You can easily convert back-and-forth from RadGEEToolbox and GEE objects to maximize efficiency in workflow and implement custom image processing.
61
+
62
+ ______
63
+
64
+ ### 🌎 Why use RadGEEToolbox?
65
+
66
+ If you are a new or expert user of GEE and/or Landsat or Sentinel imagery, these tools greatly help reduce the amount of code needed for satellite image filtering, processing, analysis, and visualization.
67
+
68
+ Although similar toolset packages exist, RadGEEToolbox offers differing functionality and additional functionality not found in other existing toolsets.
69
+
70
+ The most commonly used remote sensing data management and image processing workflows are built-in to RadGEEToolbox, so you can more easily get to your goal: an informative dataset, stored in a friendly format.
71
+
72
+ `RadGEEToolbox` is about **quality-of-life** for everday Google Earth Engine users. Every function is very useful for everday tasks not otherwise readily achievable using the GEE API alone.
73
+
74
+ _________
75
+
76
+ ### 📜 Feature List:
77
+ #### Data Management
78
+ - Streamlined **image collection definition and filtering**
79
+ - Retrieve **dates** of images
80
+ - Mask image collection inside geometry/polygon
81
+ - Mask image collection outside geometry/polygon
82
+ - **Mosaic image collections** which share dates of observations and copy all image properties from collection of choice
83
+ - **Mosaic images that share the same date** from a single image collection
84
+ - **Easily select an image from an image collection** for visualizing or furthur processing using a positional index or date string
85
+ - Easily call in a variety of useful **color palettes** for image visualization
86
+ - Easily define **visualization** parameter dictionaries
87
+
88
+ #### Multispectral Image Processing
89
+ - **Mask clouds** in image collection
90
+ - **Mask water** in image collection via two methods
91
+ - Mask to water in image collection via two methods
92
+ - Calculate a **variety of spectral index products**: NDWI, NDVI, LST (celcius), NDTI (turbidity), relative chlorophyll-a concentrations, halite index (see Radwin & Bowen, 2021), and gypsum index (modified from Radwin & Bowen, 2021)
93
+
94
+ #### SAR Image Processing
95
+ - **Easy to define/filter** the type of Sentinel-1 data to use (instrument mode, polarization, pixel size, orbit direction, etc)
96
+ - **Multilooking**
97
+ - **Speckle filtering** (Lee-Sigma)
98
+ - Convert **dB to sigma naught, or sigma naught to dB**
99
+
100
+ #### Spatial / Zonal Statistic Extraction (Time Series Analysis)
101
+ - Calculate **geodesically corrected surface area** from pixels corresponding to values greater than a defined threshold from any singleband image
102
+ - Calculate geodesically corrected surface area from NDWI (water) pixels using **dynamic thresholding** via Otsu methods
103
+ - **Extract singleband pixel values along a transect** (line) or multiple transects for every image in a collection, with options to save the data to a .csv file (output data organized with image dates)
104
+ - **Extract regionally reduced statistics** (mean, median, etc.) within a circular buffer for one or more coordinates for every image in a collection, with options to change the buffer size, save the data to a .csv file, and more (output data organized with image dates)
105
+
106
+ #### Temporal Reductions
107
+ - **Temporally reduce** image collections using: minimum, maximum, median, or mean
108
+
109
+ _____________
110
+
111
+ # Basic Usage ⌨
112
+ Each module is composed of a single class with: **attributes, property attributes, methods, and static method functions**. A comprehensive list of functions for each module can be found at the [RadGEEToolbox documentation page](https://radgeetoolbox.readthedocs.io/en/latest/index.html). The initial class object creates an image collection fitting the parameters of interest based on the required arguments for the initial class object (start date, end date, location, cloud percentage threshold, etc.).
113
+
114
+
115
+ *For example, the following defines an initial LandsatCollection object from the `LandsatCollection` module.*
116
+
117
+ ```
118
+ ImageCollection = RadGEEToolbox.LandsatCollection.LandsatCollection(
119
+ start_date='2015-01-01', end_date='2025-01-01',
120
+ cloud_percentage_threshold=25, boundary=GEE_geometry_of_study_area)
121
+ ```
122
+
123
+
124
+ Once a class object is defined, **usage of the property attributes and methods provide full functionality for image processing** ([be sure to explore the documentation](https://radgeetoolbox.readthedocs.io/en/latest/index.html)). Class attributes store values and cache results, and should not be directly called aside from the `collection` attribute (see the *Converting Between RadGEEToolbox and GEE objects* section). Static methods are base functions used when the property attributes or method functions are called, and are thus ran in the background but can be imported to be performed on an Earth Engine image object outside of the RadGEEToolbox class-based workflow.
125
+
126
+ *For example, `dates = ImageCollection.dates` defines a variable by using the `dates` property attribute which contains a list of dates for the defined image collection. Similarly, `mean_image = ImageCollection.mean` defines a temporal reduction of the image collection using the `mean` property attribute to calculate the mean image from a collection of images.*
127
+
128
+ For functionality which requires an input argument from the user, class methods must be used.
129
+
130
+ *For example, the following uses the class method `mask_to_polygon()` to mask out pixels outside of a region of interest (referencing `ImageCollection` defined above).*
131
+
132
+ ```
133
+ masked_collection = ImageCollection.mask_to_polygon(
134
+ polygon=GEE_geometry_of_study_area)
135
+ ```
136
+
137
+ The majority of the class property attributes and class methods are shared between the `LandsatCollection`, `Sentinel1Collection`, and `Sentinel2Collection` modules, however, some functionality differs between the multispectral and SAR specialized modules.
138
+
139
+ #### See the /Example Notebooks folder for examples showing how to define and filter collections, process the rasters for multispectral or other spectral products, and easily access color palettes and visualization parameter dictionaries for image visualization.
140
+ ______________________
141
+
142
+ ### Basic examples using the LandsatCollection class module:
143
+
144
+
145
+ ```
146
+ # Create base class image collection
147
+ image_collection = RadGEEToolbox.LandsatCollection.LandsatCollection(
148
+ start_date, end_date, tile_row, tile_path, cloud_percentage_threshold)
149
+
150
+ # retrieve latest image in collection as eeImage
151
+ latest_image = image_collection.image_grab(-1)
152
+
153
+ # Convert to ee.ImageCollection for custom processing
154
+ ee_image_collection = image_collection.collection
155
+
156
+ # return cloud-masked LandsatCollection image collection
157
+ cloud_masked_collection = image_collection.masked_clouds_collection
158
+
159
+ # return cloud-masked land surface temperature collection
160
+ LST_cloudless_collection = cloud_masked_collection.LST
161
+
162
+ # return NDWI LandsatCollection image collection
163
+ NDWI_collection = image_collection.ndwi
164
+
165
+ # Example showing how method functions work with any LandsatCollection image collection object, returning latest ndwi image
166
+ latest_NDWI_image = NDWI_collection.image_grab(-1)
167
+
168
+ # See example notebooks for more details of usage
169
+ # and documentation for comprehensive list of available tools
170
+ ```
171
+
172
+ __________
173
+
174
+ ## 🚀 Installation Instructions
175
+
176
+ ### 🔍 Prerequisites
177
+
178
+ - **Python**: Ensure you have version 3.6 or higher installed.
179
+ - **pip**: This is Python's package installer.
180
+ - **conda-forge**: Community led Conda package installer channel
181
+
182
+ ### 📦 Installing via pip
183
+
184
+ To install `RadGEEToolbox` version 1.6.0 using pip (NOTE: it is recommended to create a new virtual environment):
185
+
186
+ ```bash
187
+ pip install RadGEEToolbox==1.6.0
188
+ ```
189
+
190
+ ### 📦 Installing via Conda
191
+
192
+ To install `RadGEEToolbox` version 1.6.0 using conda-forge (NOTE: it is recommended to create a new virtual environment):
193
+
194
+ ```bash
195
+ conda install conda-forge::radgeetoolbox
196
+ ```
197
+
198
+ ### 🔧 Manual Installation from Source
199
+
200
+ 1. **Clone the Repository**:
201
+ ```bash
202
+ git clone https://github.com/radwinskis/RadGEEToolbox.git
203
+ ```
204
+
205
+ 2. **Navigate to Directory**:
206
+ ```bash
207
+ cd RadGEEToolbox
208
+ ```
209
+
210
+ 3. **Install the Package**:
211
+ ```bash
212
+ pip install .
213
+ ```
214
+
215
+ ### ✅ Verifying the Installation
216
+
217
+ To verify that `RadGEEToolbox` was installed correctly:
218
+
219
+ ```python
220
+ python -c "import RadGEEToolbox; print(RadGEEToolbox.__version__)"
221
+ ```
222
+
223
+ You should see `1.6.0` printed as the version number.
224
+
225
+ ________
226
+
227
+ ### Interested in Contributing?
228
+
229
+ We welcome contributions to **RadGEEToolbox**! Whether you're looking to **fix bugs, add new features, improve documentation, or optimize existing workflows**, your contributions can help enhance the package for the geospatial research community.
230
+
231
+ ### How to Contribute
232
+ 1. **Check the Issues Tab** – Browse the [GitHub Issues](https://github.com/radwinskis/RadGEEToolbox/issues) for open tasks, feature requests, or bug reports. Feel free to suggest new features or improvements!
233
+ 2. **Fork the Repository** – Clone the project and create a new branch for your contributions.
234
+ 3. **Follow Coding Guidelines** – Maintain consistency with existing code structure and ensure your changes are well-documented.
235
+ 4. **Submit a Pull Request** – Once your changes are tested and complete, open a pull request explaining your updates.
236
+
237
+ ### Ways to Contribute
238
+ - 🛠️ **Code Contributions** – Add new functionalities, improve performance, or refactor existing code.
239
+ - 📖 **Documentation Improvements** – Enhance tutorials, clarify explanations, or add examples to the [documentation](https://radgeetoolbox.readthedocs.io/en/latest/).
240
+ - 🐛 **Bug Reports** – If you encounter any issues, submit a detailed report to help us diagnose and fix them.
241
+ - 🌍 **Feature Requests** – Have an idea for a new feature? Open an issue to discuss its implementation!
242
+
243
+ ### 💬 Get in Touch
244
+ If you have questions or want to discuss potential contributions, feel free to start a discussion in the **Issues** section or reach out via [GitHub Discussions](https://github.com/radwinskis/RadGEEToolbox/discussions).
245
+
246
+ Thank you for your interest in making **RadGEEToolbox** better! 🚀
247
+
@@ -0,0 +1,228 @@
1
+ [![PyPI version](https://badge.fury.io/py/RadGEEToolbox.svg)](https://pypi.org/project/RadGEEToolbox/)
2
+
3
+ # RadGEEToolbox 🛠
4
+
5
+ ### 🌎 Streamlined Multispectral & SAR Analysis for Google Earth Engine Python API
6
+
7
+ ### [See documentation here](https://radgeetoolbox.readthedocs.io/en/latest/)
8
+
9
+ `RadGEEToolbox` is an open-source Python package that facilitates the processing and analysis of both multispectral and Synthetic Aperture Radar (SAR) satellite imagery using `Google Earth Engine (GEE)`, including Landsat TM & OLI (courtesy of U.S. Geological Survey), Sentinel-1 SAR (courtesy of European Space Agency), and Sentinel-2 MSI (courtesy of European Space Agency) datasets. By providing an intuitive, modular framework, it simplifies complex remote sensing workflows, enabling researchers to efficiently manage, process, and analyze satellite imagery across a range of environmental and geospatial applications. The package is designed for time series analyses of large-scale remote sensing datasets, reducing the amount of custom scripting required in `GEE` while ensuring reproducibility and efficiency. Researchers working in landscape change, environmental monitoring, natural hazards, and land cover classification can benefit from `RadGEEToolbox`’s ability to streamline workflows from data acquisition to final analysis.
10
+
11
+ The package includes specialized tools for both multispectral and SAR data processing, offering capabilities such as image subsetting, mosaic generation, cloud/water masking, spectral index calculations, speckle filtering, multilooking, backscatter transformations, transect extractions, spatial statistics, and more. One of the advantages of `RadGEEToolbox` is its ability to seamlessly integrate user-defined `GEE` functions or operations, allowing researchers to modify and extend their analyses without being restricted to predefined operations offered by this package. `RadGEEToolbox` also includes preconfigured visualization parameters, facilitating intuitive exploration of geospatial datasets.
12
+
13
+ Originally developed by Mark Radwin to streamline imagery processing for PhD research and general image analysis, this package provides robust functionality with plans for future enhancements to support various Earth observation professionals.
14
+
15
+ ______
16
+
17
+ ### Package structure
18
+
19
+ The package is divided into six modules:
20
+
21
+ - `LandsatCollection`
22
+ - Filter and process Landsat 5 TM, 8 OLI/TIRS, and 9 OLI/TIRS surface reflectance imagery
23
+ - `Sentinel1Collection`
24
+ - Filter and process Sentinel-1 Synthetic Aperture Radar (SAR) GRB backscatter imagery
25
+ - `Sentinel2Collection`
26
+ - Filter and process Sentinel-2 MSI surface reflectance imagery
27
+ - `CollectionStitch`
28
+ - Accessory module to perform mosaicing functions on traditional GEE collections
29
+ - `GetPalette`
30
+ - Retrieve color palettes compatible with visualiztion GEE layers
31
+ - `VisParams`
32
+ - Alternative to visualization parameters dictionaries, define vis params using a function and retrieve palettes from GetPalette - makes visualizing images a bit easier
33
+
34
+
35
+ `LandsatCollection.py`, `Sentinel1Collection.py`, and `Sentinel2Collection.py` are the main modules for the majority of image processing.
36
+
37
+ `CollectionStitch.py`, `GetPalette.py`, and `VisParams.py` are supplemental for additional processing and image display.
38
+
39
+ Almost all functionality is server-side friendly AND most results are cached, providing faster processing times.
40
+
41
+ You can easily convert back-and-forth from RadGEEToolbox and GEE objects to maximize efficiency in workflow and implement custom image processing.
42
+
43
+ ______
44
+
45
+ ### 🌎 Why use RadGEEToolbox?
46
+
47
+ If you are a new or expert user of GEE and/or Landsat or Sentinel imagery, these tools greatly help reduce the amount of code needed for satellite image filtering, processing, analysis, and visualization.
48
+
49
+ Although similar toolset packages exist, RadGEEToolbox offers differing functionality and additional functionality not found in other existing toolsets.
50
+
51
+ The most commonly used remote sensing data management and image processing workflows are built-in to RadGEEToolbox, so you can more easily get to your goal: an informative dataset, stored in a friendly format.
52
+
53
+ `RadGEEToolbox` is about **quality-of-life** for everday Google Earth Engine users. Every function is very useful for everday tasks not otherwise readily achievable using the GEE API alone.
54
+
55
+ _________
56
+
57
+ ### 📜 Feature List:
58
+ #### Data Management
59
+ - Streamlined **image collection definition and filtering**
60
+ - Retrieve **dates** of images
61
+ - Mask image collection inside geometry/polygon
62
+ - Mask image collection outside geometry/polygon
63
+ - **Mosaic image collections** which share dates of observations and copy all image properties from collection of choice
64
+ - **Mosaic images that share the same date** from a single image collection
65
+ - **Easily select an image from an image collection** for visualizing or furthur processing using a positional index or date string
66
+ - Easily call in a variety of useful **color palettes** for image visualization
67
+ - Easily define **visualization** parameter dictionaries
68
+
69
+ #### Multispectral Image Processing
70
+ - **Mask clouds** in image collection
71
+ - **Mask water** in image collection via two methods
72
+ - Mask to water in image collection via two methods
73
+ - Calculate a **variety of spectral index products**: NDWI, NDVI, LST (celcius), NDTI (turbidity), relative chlorophyll-a concentrations, halite index (see Radwin & Bowen, 2021), and gypsum index (modified from Radwin & Bowen, 2021)
74
+
75
+ #### SAR Image Processing
76
+ - **Easy to define/filter** the type of Sentinel-1 data to use (instrument mode, polarization, pixel size, orbit direction, etc)
77
+ - **Multilooking**
78
+ - **Speckle filtering** (Lee-Sigma)
79
+ - Convert **dB to sigma naught, or sigma naught to dB**
80
+
81
+ #### Spatial / Zonal Statistic Extraction (Time Series Analysis)
82
+ - Calculate **geodesically corrected surface area** from pixels corresponding to values greater than a defined threshold from any singleband image
83
+ - Calculate geodesically corrected surface area from NDWI (water) pixels using **dynamic thresholding** via Otsu methods
84
+ - **Extract singleband pixel values along a transect** (line) or multiple transects for every image in a collection, with options to save the data to a .csv file (output data organized with image dates)
85
+ - **Extract regionally reduced statistics** (mean, median, etc.) within a circular buffer for one or more coordinates for every image in a collection, with options to change the buffer size, save the data to a .csv file, and more (output data organized with image dates)
86
+
87
+ #### Temporal Reductions
88
+ - **Temporally reduce** image collections using: minimum, maximum, median, or mean
89
+
90
+ _____________
91
+
92
+ # Basic Usage ⌨
93
+ Each module is composed of a single class with: **attributes, property attributes, methods, and static method functions**. A comprehensive list of functions for each module can be found at the [RadGEEToolbox documentation page](https://radgeetoolbox.readthedocs.io/en/latest/index.html). The initial class object creates an image collection fitting the parameters of interest based on the required arguments for the initial class object (start date, end date, location, cloud percentage threshold, etc.).
94
+
95
+
96
+ *For example, the following defines an initial LandsatCollection object from the `LandsatCollection` module.*
97
+
98
+ ```
99
+ ImageCollection = RadGEEToolbox.LandsatCollection.LandsatCollection(
100
+ start_date='2015-01-01', end_date='2025-01-01',
101
+ cloud_percentage_threshold=25, boundary=GEE_geometry_of_study_area)
102
+ ```
103
+
104
+
105
+ Once a class object is defined, **usage of the property attributes and methods provide full functionality for image processing** ([be sure to explore the documentation](https://radgeetoolbox.readthedocs.io/en/latest/index.html)). Class attributes store values and cache results, and should not be directly called aside from the `collection` attribute (see the *Converting Between RadGEEToolbox and GEE objects* section). Static methods are base functions used when the property attributes or method functions are called, and are thus ran in the background but can be imported to be performed on an Earth Engine image object outside of the RadGEEToolbox class-based workflow.
106
+
107
+ *For example, `dates = ImageCollection.dates` defines a variable by using the `dates` property attribute which contains a list of dates for the defined image collection. Similarly, `mean_image = ImageCollection.mean` defines a temporal reduction of the image collection using the `mean` property attribute to calculate the mean image from a collection of images.*
108
+
109
+ For functionality which requires an input argument from the user, class methods must be used.
110
+
111
+ *For example, the following uses the class method `mask_to_polygon()` to mask out pixels outside of a region of interest (referencing `ImageCollection` defined above).*
112
+
113
+ ```
114
+ masked_collection = ImageCollection.mask_to_polygon(
115
+ polygon=GEE_geometry_of_study_area)
116
+ ```
117
+
118
+ The majority of the class property attributes and class methods are shared between the `LandsatCollection`, `Sentinel1Collection`, and `Sentinel2Collection` modules, however, some functionality differs between the multispectral and SAR specialized modules.
119
+
120
+ #### See the /Example Notebooks folder for examples showing how to define and filter collections, process the rasters for multispectral or other spectral products, and easily access color palettes and visualization parameter dictionaries for image visualization.
121
+ ______________________
122
+
123
+ ### Basic examples using the LandsatCollection class module:
124
+
125
+
126
+ ```
127
+ # Create base class image collection
128
+ image_collection = RadGEEToolbox.LandsatCollection.LandsatCollection(
129
+ start_date, end_date, tile_row, tile_path, cloud_percentage_threshold)
130
+
131
+ # retrieve latest image in collection as eeImage
132
+ latest_image = image_collection.image_grab(-1)
133
+
134
+ # Convert to ee.ImageCollection for custom processing
135
+ ee_image_collection = image_collection.collection
136
+
137
+ # return cloud-masked LandsatCollection image collection
138
+ cloud_masked_collection = image_collection.masked_clouds_collection
139
+
140
+ # return cloud-masked land surface temperature collection
141
+ LST_cloudless_collection = cloud_masked_collection.LST
142
+
143
+ # return NDWI LandsatCollection image collection
144
+ NDWI_collection = image_collection.ndwi
145
+
146
+ # Example showing how method functions work with any LandsatCollection image collection object, returning latest ndwi image
147
+ latest_NDWI_image = NDWI_collection.image_grab(-1)
148
+
149
+ # See example notebooks for more details of usage
150
+ # and documentation for comprehensive list of available tools
151
+ ```
152
+
153
+ __________
154
+
155
+ ## 🚀 Installation Instructions
156
+
157
+ ### 🔍 Prerequisites
158
+
159
+ - **Python**: Ensure you have version 3.6 or higher installed.
160
+ - **pip**: This is Python's package installer.
161
+ - **conda-forge**: Community led Conda package installer channel
162
+
163
+ ### 📦 Installing via pip
164
+
165
+ To install `RadGEEToolbox` version 1.6.0 using pip (NOTE: it is recommended to create a new virtual environment):
166
+
167
+ ```bash
168
+ pip install RadGEEToolbox==1.6.0
169
+ ```
170
+
171
+ ### 📦 Installing via Conda
172
+
173
+ To install `RadGEEToolbox` version 1.6.0 using conda-forge (NOTE: it is recommended to create a new virtual environment):
174
+
175
+ ```bash
176
+ conda install conda-forge::radgeetoolbox
177
+ ```
178
+
179
+ ### 🔧 Manual Installation from Source
180
+
181
+ 1. **Clone the Repository**:
182
+ ```bash
183
+ git clone https://github.com/radwinskis/RadGEEToolbox.git
184
+ ```
185
+
186
+ 2. **Navigate to Directory**:
187
+ ```bash
188
+ cd RadGEEToolbox
189
+ ```
190
+
191
+ 3. **Install the Package**:
192
+ ```bash
193
+ pip install .
194
+ ```
195
+
196
+ ### ✅ Verifying the Installation
197
+
198
+ To verify that `RadGEEToolbox` was installed correctly:
199
+
200
+ ```python
201
+ python -c "import RadGEEToolbox; print(RadGEEToolbox.__version__)"
202
+ ```
203
+
204
+ You should see `1.6.0` printed as the version number.
205
+
206
+ ________
207
+
208
+ ### Interested in Contributing?
209
+
210
+ We welcome contributions to **RadGEEToolbox**! Whether you're looking to **fix bugs, add new features, improve documentation, or optimize existing workflows**, your contributions can help enhance the package for the geospatial research community.
211
+
212
+ ### How to Contribute
213
+ 1. **Check the Issues Tab** – Browse the [GitHub Issues](https://github.com/radwinskis/RadGEEToolbox/issues) for open tasks, feature requests, or bug reports. Feel free to suggest new features or improvements!
214
+ 2. **Fork the Repository** – Clone the project and create a new branch for your contributions.
215
+ 3. **Follow Coding Guidelines** – Maintain consistency with existing code structure and ensure your changes are well-documented.
216
+ 4. **Submit a Pull Request** – Once your changes are tested and complete, open a pull request explaining your updates.
217
+
218
+ ### Ways to Contribute
219
+ - 🛠️ **Code Contributions** – Add new functionalities, improve performance, or refactor existing code.
220
+ - 📖 **Documentation Improvements** – Enhance tutorials, clarify explanations, or add examples to the [documentation](https://radgeetoolbox.readthedocs.io/en/latest/).
221
+ - 🐛 **Bug Reports** – If you encounter any issues, submit a detailed report to help us diagnose and fix them.
222
+ - 🌍 **Feature Requests** – Have an idea for a new feature? Open an issue to discuss its implementation!
223
+
224
+ ### 💬 Get in Touch
225
+ If you have questions or want to discuss potential contributions, feel free to start a discussion in the **Issues** section or reach out via [GitHub Discussions](https://github.com/radwinskis/RadGEEToolbox/discussions).
226
+
227
+ Thank you for your interest in making **RadGEEToolbox** better! 🚀
228
+