|
39 | 39 | "cell_type": "markdown",
|
40 | 40 | "metadata": {},
|
41 | 41 | "source": [
|
42 |
| - "The goal of this notebook, is to detect and replace the cloud contaminated region of the satellite images. Clouds often create obstructions in satellite imagery that can hinder results in processes like land cover classification and time series analysis. In a general perspective, it can be seen as a image denoising problem, in which clouds are considered as noise in respect to land surface in images. \n", |
43 |
| - "\n", |
44 |
| - "In this notebook, we will detect and replace cloud contaminated regions of satellite imagery by combining a pretrained deep learning model, available in living atlas, and an image processing technique, available in [raster functions](https://github.com/Esri/raster-functions)." |
| 42 | + "The goal of this notebook is to detect and replace the cloud-contaminated region of the satellite images. Clouds often create obstructions in satellite imagery that can hinder results in processes like land cover classification and time series analysis. From a general perspective, this can be seen as an image denoising problem, where clouds are considered as noise in relation to the land surface in images. In this notebook, we will detect and replace cloud-contaminated regions of satellite imagery by combining a pretrained deep learning model, available in [Living Atlas](https://livingatlas.arcgis.com/en/home/), with an image processing technique available in [raster functions](https://github.com/Esri/raster-functions)." |
45 | 43 | ]
|
46 | 44 | },
|
47 | 45 | {
|
|
178 | 176 | "cell_type": "markdown",
|
179 | 177 | "metadata": {},
|
180 | 178 | "source": [
|
181 |
| - "## Generate cloud mask" |
| 179 | + "## Cloud removal workflow\n", |
| 180 | + "\n", |
| 181 | + "The cloud removal workflow employed in this notebook consists of three key steps:\n", |
| 182 | + "\n", |
| 183 | + "1. **Generate cloud mask** - To initiate the cloud removal process, a cloud mask is generated using a pretrained model available in the [Living Atlas](https://geosaurus.maps.arcgis.com/home/item.html?id=1e1ec9602f4743108708ccdf362e3c48). This cloud mask serves as a guide for identifying and isolating cloud-contaminated pixels within the target raster.\n", |
| 184 | + "2. **Reclassification of cloud types** - the generated cloud mask in step 1 has different cloud types. In this step, we assign a value of 1 to pixels associated with different cloud types, while assigning a value of 0 to all other non-cloud pixels.\n", |
| 185 | + "3. **Use the stepwise local radiometric adjustment (SLRA) raster function** - The final step involves the application of the [Stepwise Local Radiometric Adjustment (SLRA)](https://github.com/Esri/raster-functions/blob/master/functions/StepwiseLocalRadiometricAdjustment.py) raster function. This function takes as input the original raster, a replacement raster, and the reclassified cloud mask from step 2. The function results in removal of clouds in input rasters." |
182 | 186 | ]
|
183 | 187 | },
|
184 | 188 | {
|
185 | 189 | "cell_type": "markdown",
|
186 | 190 | "metadata": {},
|
187 | 191 | "source": [
|
188 |
| - "### Use the pretrained cloud mask generation model" |
| 192 | + "## Generate cloud mask" |
189 | 193 | ]
|
190 | 194 | },
|
191 | 195 | {
|
|
320 | 324 | "source": [
|
321 | 325 | "Next, we will use the Python raster function to blend areas using a Stepwise Local Radiometric Adjustment algorithm [Li .et al, 2019](https://www.mdpi.com/517118). Stepwise Local Radiometric Adjustment is used to fill contaminated areas and is performed on each mask region of the target image. Using the replacement raster, the tool will replace pixels that are covered with clouds. \n",
|
322 | 326 | "\n",
|
323 |
| - "The raster functions can be downloaded as a python(.py) file [raster-functions](https://github.com/Esri/raster-functions/blob/master/functions/StepwiseLocalRadiometricAdjustment.py) in the functions folder. StepwiseLocalRadiometricAdjustment.py can be opened using `Open Python Raster function`. Once opened, save it using `Save As`. `Size of Window` and `Buffer Mask` can be experimented with values for varying results according to requirements and cloud coverage. Next, you can experiment with different values for the Size of Window and Buffer Mask parameters, depending on the requirements and cloud coverage of your use case.\n", |
| 327 | + "The raster functions can be downloaded as a python (.py) file named [raster functions](https://github.com/Esri/raster-functions) in the functions folder. The [StepwiseLocalRadiometricAdjustment.py](https://github.com/Esri/raster-functions/blob/master/functions/StepwiseLocalRadiometricAdjustment.py) file can be opened using `Open Python Raster function`. Once opened, save it using `Save As`. You can experiment with different values for the `Size of Window` and `Buffer Mask` parameters to achieve varying results based on your requirements and cloud coverage.\n", |
324 | 328 | "\n",
|
325 | 329 | "- `Input Raster`: cloud covered imagery\n",
|
326 | 330 | "- `Input Replacement raster`: replacement raster\n",
|
|
0 commit comments