Post

Landsat Analysis and Ground Checking of Tin Deposit at Belitung Island, Indonesia

Utilization of NDVI for Mining Pit Detection

Latar Belakang

Banyak dilakukan penambangan permukaan di Pulau Belitung untuk mencari endapan timah. Hal ini membuat banyaknya lubang dan gundukan hasil pencarian timah di sepanjang Pulau Belitung. Proyek ini mencoba mengindentifikasi keberadaan lubang dan gundukan ini menggunakan Normalized Divergence Vegetation Index (NDVI) pada citra Landsat 8.

Metode

Landsat 8 dapat mengetahui NDVI suatu area dengan melakukan perhitungan dengan band 5 dan band 4. Pengerjaan ini menggunakan Google Earth Engine dan bahasa pemrograman javascript. Dilakukan juga Ground Checking untuk mengetahui ketepatan pengolahan citra.

Output

1. Citra

Data diambil dari pustaka Google Earth Engine dengan AOI yang dapat dibuat pada platform GEE.

1
2
3
// mengambil landsa8 t1 toa pada area of interest
var imageL8 = ee.ImageCollection ('LANDSAT/LC08/C01/T1_TOA')
              .filterBounds (aoi);

Data yang diambi; ada pada rentang 2018-01-01 hingga 2018-12-31, berikut tampilan data tanpa filter

1
2
3
4
5
6
7
// melakukan filter temporal citra landsat 8 tanpa cloud masking
// memilih citra landsat dengan cloud cover paling sedikit dalam periode yang ditentukan
var uncmask8 = imageL8    
    .filterDate('2018-01-01', '2018-12-31')
    .sort('CLOUD_COVER')
    .first();
Map.addLayer(uncmask8.clip(aoi), {bands: ['B6', 'B5', 'B2'], max: 0.35}, 'Citra Tanpa Cloud Masking');

Landsat Natural Area of Interest tanpa Filter Landsat Natural Area of Interest tanpa filter.

Kemudian akan dbuat mask untuk awan, dikarenakan dataset awal memiliki banyak awan yang akan menganggu interpretasi NDVI.

1
2
3
4
5
6
// membuat fungsi untuk cloud masking 
var maskL8 = function(imageL8) {
  var qa = imageL8.select('BQA');
    var mask = qa.bitwiseAnd(1 << 4).eq(0);
  return imageL8.updateMask(mask);
}

Lakukan fungsi mask cloud, dan menerapkan reducer median

1
2
3
4
5
6
7
8
// melakukan filter temporal
// menerapkan fungsi cloud masking
// menerapkan reducer median
var cmask8 = imageL8
    .filterDate('2018-01-01', '2018-12-31')
    .map (maskL8)
    .median ();
Map.addLayer(cmask8.clip(aoi), {bands: ['B6', 'B5', 'B2'], max: 0.35}, 'Citra Hasil Cloud Masking');

Landsat Natural Area of Interest dengan Filter Landsat Natural Area of Interest dengan filter.

Lakukan perhitungan NDVI. Pada kasus ini, nilai NDVI rendah akan berwarna ungu, sedangkan nilai tinggi berwarna hijau

1
2
3
4
5
6
7
// Hitung NDVI 
var nir = cmask8.select('B5');
var red = cmask8.select('B4');
var ndvi = nir.subtract(red).divide(nir.add(red));
var ndvi = ndvi.clip(aoi);
// Tambah map layers
Map.addLayer(ndvi, {min: -1, max: 1, palette: ['black', 'purple', 'green']}, 'continuous NDVI',false);

NDVI NDVI.

Dapat diperhatikan jika nilai yg diincar (gundukan dan lubang) akan memiliki nilai NDVI rendah, namun banyak badan air yang memiliki nilai NDVI < 0. Sehingga area target ditentukan yang memiliki nilai NDVI < 0.25 AND > 0

1
2
3
4
// Tambah map layers NDVI < 0.25 AND > 0
var data = ndvi.updateMask(
  ndvi.lt(0.25).and(ndvi.gt(0)))
Map.addLayer(data, {min: -1, max: 1, palette: ['black', 'purple', 'green']}, 'ground NDVI',false);

Target Target.

2. Ground Checking

Target Target Target.

This post is licensed under CC BY 4.0 by the author.