Google Earth Engine Tutorial: Advanced Lithological Mapping with ASTER
Credit: Youtube Channel “Terra Spatial, Guide on advanced lithological mapping techniques using ASTER multispectral imagery for geological studies.”
You can see all the tutorials from here: Techgeo Academy.
Introduction
Lithological mapping is a critical process in geological studies, helping identify and classify rock types based on their physical and chemical properties. Google Earth Engine (GEE) provides powerful tools to analyze satellite data, such as ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), for advanced lithological mapping. This tutorial demonstrates how to use GEE to process ASTER imagery and generate detailed lithological maps.
Data Collection and Preprocessing
ASTER data is available on GEE under the dataset ID ‘ASTER/AST_L1T_003’. Start by filtering the image collection based on location, date, and cloud cover:
var dataset = ee.ImageCollection('ASTER/AST_L1T_003')
.filter(ee.Filter.eq('PROCESSING_SOFTWARE_VERSION', '003.0'))
.filter(ee.Filter.date('2020-01-01', '2021-12-31'))
.filterBounds(geometry);
Next, preprocess the data by applying cloud masking. Use the ‘cloud_qa’ band to identify and remove cloud-contaminated pixels:
function maskClouds(image) {
var cloudMask = image.select('cloud_qa').bitwiseAnd(1).eq(0);
return image.updateMask(cloudMask);
}
var filtered = dataset.map(maskClouds);
Image Processing and Spectral Analysis
Enhance the spectral information by calculating vegetation indices like NDVI (Normalized Difference Vegetation Index) to distinguish between rock surfaces and vegetation:
var ndvi = image.select(['B4', 'B3']).reduce(ee.Reducer.difference()).rename('NDVI');
Additionally, analyze the shortwave infrared (SWIR) bands to identify mineralogical features such as clay, silica, and iron oxides. Use band ratios like B4/B2 for silicate minerals:
var ratio = image.select('B4').divide(image.select('B2')).rename('B4_B2_Ratio');
Classification and Lithological Mapping
Apply supervised classification algorithms like Random Forest or Support Vector Machines (SVM) to predict rock types. First, create training data by manually digitizing known lithological units in the study area. Then, train the model:
var training = image.select(['B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'B10', 'B11', 'B12']).sampleRegions({
collection: trainingPoints,
properties: ['Lithology'],
scale: 30
});
var classifier = ee.Classifier.randomForest(10).train(training, 'Lithology', bands);
Classify the entire image collection using the trained model:
var classified = filtered.map(function(image) {
return image.select(bands).classify(classifier).rename('Lithology');
});
Validation and Accuracy Assessment
Validate the classification using ground-truth data or reference datasets. Calculate a confusion matrix and Kappa coefficient to evaluate model performance:
var validation = classified.select('Lithology').sampleRegions({
collection: validationPoints,
scale: 30
}).errorMatrix('Lithology', 'Lithology');
print(validation);
print(validation.kappa());
Visualization and Export
Visualize the classified map on the GEE code editor using the ‘Map’ module. For higher-resolution outputs, export the result as a GeoTIFF to Google Drive:
Map.addLayer(classified, {palette: ['red', 'blue', 'green', 'yellow']}, 'Lithological Map');
Export.image.toDrive({
image: classified,
description: 'lithological_map',
scale: 30,
maxPixels: 1e9
});
Conclusion
Advanced lithological mapping with ASTER in GEE requires careful preprocessing, spectral analysis, and classification workflows. By combining remote sensing techniques with GEE’s computational power, geologists can achieve high-resolution, accurate rock type maps for various applications, including mineral exploration and environmental monitoring.
FAQ
What is the resolution of ASTER data in GEE?
ASTER provides multispectral data at 15m (VNIR), 30m (SWIR), and 90m (TIR) resolutions. For lithological mapping, VNIR and SWIR bands are typically used for higher accuracy.
Can I use other satellite data for lithological mapping in GEE?
Yes, GEE supports other datasets like Landsat, Sentinel-2, and ASTER. Choose data based on spectral coverage and resolution requirements for your study area.
How do I improve classification accuracy?
Enhance accuracy by using high-quality training data, optimizing band selection, and applying advanced machine learning algorithms. Post-processing techniques like object-based image analysis (OBIA) can also refine results.
What if my ASTER data has high cloud cover?
Use the `maskClouds` function or `clouds.select(‘cloud_qa’).eq(0)` to exclude cloud pixels. Consider using de-clouding algorithms or temporal composites for better results.
How long does the GEE processing take for large datasets?
Processing time depends on the dataset size and computational complexity. GEE’s cloud-based platform optimizes parallel processing, but for extensive analyses, you may need to break the task into smaller chunks or use lower-resolution data.







