The first stage of this study involved creating the algorithm in Google Earth Engine (GEE). GEE is a cloud-based geospatial image processing and analysis platform that offers a broad set of data and tools for spatial and temporal analysis. Its ability to process large volumes of data quickly and efficiently makes it a powerful tool for environmental monitoring studies and spatiotemporal analysis.
2.2.1. Imagery Time-Series for Monitoring Water Quality and Mining Areas
To monitor water quality and mining areas over time, an approach based on a time series of satellite images was used. Specifically, images from the Sentinel-2A satellite (
Table 1), belonging to the Coperni2us program, were used due to its high spatial resolution and revisit frequency suitable for environmental studies.
This collection contains previously atmospherically corrected and harmonized images, ensuring the consistency and quality of the data throughout the analyzed period.
To select suitable images, the following code was used:
var collection = ee.ImageCollection(“COPERNICUS/S2_SR_HARMONIZED”)
.filterDate(‘2017-01-01’, ‘2023-12-31’)
.filterBounds(geometry3)
.filter(ee.Filter.lt(‘CLOUDY_PIXEL_PERCENTAGE’, 10));
This code allows you to filter the Sentinel-2 image collection for the period of interest (from January 2017 to December 2023) and restrict the study area through the spatial delimitation defined by the variable “geometry3”. Furthermore, the “CLOUDY_PIXEL_PERCENTAGE” filter was used to select only images with less than 10% cloud cover, ensuring the quality of the data used in the analysis.
Despite limiting the analysis to images with a cloud coverage of 10% or less, the challenge of correctly classifying the TSS values was still identified, as some of them actually corresponded to covered areas by clouds. Considering this issue, a more sophisticated cloud filter was implemented, which now removes pixels affected by clouds during the final classification step.
Below is the implemented code:
var s2Clouds = ee.ImageCollection(‘COPERNICUS/S2_CLOUD_PROBABILITY’)
.filterBounds(region1)
.filterDate(fromDateSentinel, toDateSentinel);
var s2_orig = ee.ImageCollection(‘COPERNICUS/S2_SR_HARMONIZED’)
.filterBounds(region1)
.filterDate(fromDateSentinel, toDateSentinel);
var MAX_CLOUD_PROBABILITY = 10;
function maskClouds(img) {
var clouds = ee.Image(img.get(‘cloud_mask’)).select(‘probability’);
var isNotCloud = clouds.lt(MAX_CLOUD_PROBABILITY);
return img.updateMask(isNotCloud); }
function maskEdges(s2_img) {
return s2_img.updateMask(
s2_img.select(‘B8A’).mask().updateMask(s2_img.select(‘B9’).mask()));}
s2_orig = s2_orig.map(maskEdges);
var s2SrWithCloudMask = ee.Join.saveFirst(‘cloud_mask’).apply({
primary: s2_orig,
secondary: s2Clouds,
condition: ee.Filter.equals({leftField: ‘system:index’, rightField: ‘system:index’})});
var s2CloudMasked = ee.ImageCollection(s2SrWithCloudMask).map(maskClouds);
The “maskClouds” and “maskEdges” functions are used to mask clouds in images (
Figure 4). The first function masks the pixels affected by clouds, while the second function masks the edges of the images.
After applying the cloud and edge masks, the two collections are combined using the “ee.Join.saveFirst” function. Finally, a new collection of images where the clouds have been masked is created, using the “map” function to apply the “maskClouds” function to all images in the combined collection, from 2017 to 2023.
Mapping of Mining Areas
In the collection of images processed from 2017 to 2023, in order to map the mining areas, the first step was to define the land cover classes for training; with prior knowledge of the study area and the mining context present in the region, six classes were defined (
Table 2): water, vegetation, deforestation, cloud, cloud shadow, and mining. Due to the spectral difference of these 6 targets of interest being distinct, the classification process is subsequently facilitated.
Figure 5 below illustrates the process of training classes on satellite images to identify mining areas.
After training, the Classification and Regression Tree (CART) method was applied, which is a non-parametric classifier that does not require any a priori statistical assumptions regarding the distribution of the data.
CART is a classification method that operates at the pixel level and uses the pixel intensities of training samples (polygons) to build a decision tree that assigns a class to each pixel in the image (20 m). Bands 3 (560 nm), 4 (665 nm), 8 (842 nm), and 11 (1610 nm) were used, selected based on their spectral properties and ability to provide relevant information for classifying areas of interest.
In Google Earth Engine, the CART algorithm (ee.Classifier.smileCart) is configured with two parameters: MaxNodes, which determines the maximum number of leaf nodes in each decision tree, and MinLeafPopulation, which establishes the minimum number of points required in a set training tool to create a node. These parameters have been set to default values: no limit on the maximum number of nodes and one on the minimum number of points for creating nodes.
The CART classification (
Figure 6) proved to be effective in differentiating the six classes of interest, including the precise detection of mining areas, which subsequently underwent a validation process, which is further discussed in the results.
The resulting layer was exported to the Tiff file type in Google Drive for further analysis and discussion.
Monitoring Water Quality
The use of satellite sensors combined with remote sensing techniques has been used to estimate TSS in coastal and inland waters [
16,
17].
This approach to estimating suspended solids in water generally follows two distinct approaches: empirical, which is based on the direct correlation between measured TSS and satellite data [
18]; and analytical methods, which depend on the measured optical properties of water [
19,
20]. This research demonstrates that the green and red bands have a significant relationship with TSS up to approximately 100 mg/L. The use of the red band to estimate TSS in waters through empirical regressions is well documented in the literature. Previous studies, such as those by Harrington et al. [
17] and Mertes et al. [
21], for MSS data demonstrated this approach comprehensively.
For this study, a robust empirical model was implemented between in situ TSS and the red band of the TM sensor on the Landsat 5 satellite, established from two field campaigns in the Amazon to measure radiometric quantities and concentrations of TSS, described in detail in Lobo et al. [
18].
In order to recover the TSS concentration from the surface reflectance, a non-linear regression was established between TSS and ÿsurf(red) derived from reference images, in which it was observed that the best empirical correlation between TSS and ÿsurf (ÿ) was given by a power function (R
2 = 0.94, RMSE = 1.33%) using the red band [
18].
Even though the curve was constructed based on data from the ÿsurf(red) satellite up to 22%, it is believed that this function can be extrapolated to values up to 35%. This equates to approximately 300 mg/L TSS [
18]. It is important to note the strong correlation between TSS and in situ ÿsurf(red).
Briefly, a model was developed that correlates SST measurements in the field with the red band of the Landsat 5 and Sentinel-2A satellites. This model uses red band reflectance to calculate SST concentrations in water. The data demonstrated a strong correlation between measured and predicted values, confirming the effectiveness of the model for accurate SST estimates from satellite imagery.
The non-linear regression obtained for the Landsat 5 TM sensor, described previously, was adapted for Sentinel-2A. So, the script in Google Earth Engine looked like this:
var TSS = function(image) {
var TSSn = image.expression(
‘((RED/2.64)**(1/0.45)) + 2.27’, {
‘RED’: image.select(‘B4’).multiply(0.01)})
var TSSname = TSSn.rename([‘TSSn’]);
return TSSname;}
This function calculates the TSS from the spectral bands of the Sentinel-2A image. First, the red band of the image is selected, represented by the variable “RED”. Then, the pixel values from that band are converted to reflectance by multiplying them by 0.01, as the original values are in digital counting units (DN). The formula for calculating TSS is then applied to the converted red band. After calculation, the result is renamed to “TSSn” to represent the Total Suspended Solids (TSS). Finally, the function returns the resulting TSS image (
Figure 7), where each pixel represents the TSS estimate based on the red band of the Sentinel-2A image.
From this new band, the following processes were carried out with the analysis of the TSS in all water bodies in the extension of the study area based on the collection of previously treated images from Sentinel 2, from 2017 to 2023.