Hasil Ringkasan
103 LAMPIRAN Koleksi digital milik UPT Perpustakaan ITB untuk keperluan pendidikan dan penelitian 104 LAMPIRAN A: Perangkat Survey Koleksi digital milik UPT Perpustakaan ITB untuk keperluan pendidikan dan penelitian 105 LAMPIRAN B: Data Pola Ruang Kab. Sumedang Koleksi digital milik UPT Perpustakaan ITB untuk keperluan pendidikan dan penelitian 106 LAMPIRAN C: Perhitungan nilai FR No.Kelas Luas PixelTotal PixelLPFR Rate_FR% RateRate_INTMin_RateMax_Rate M M_MinPR Hutan - Hutan 160424722,77 740,9770,0151,5291,000 Hutan - Permukiman 3254997,62 31,9520,0313,0563,000 Hutan - Penggunaan Lain 675757,99 13,1350,0494,9064,000 Hutan - Lahan Terbuka 7738906,51 61,6420,0262,5702,000 Hutan - Pertanian 19852460,50 111,1740,0181,8371,000 Lahan Terbuka - Hutan 8126421,19 10,2610,0040,4080,000 Lahan Terbuka - Permukiman 9002119,15 30,7060,0111,1051,000 Lahan Terbuka - Penggunaan Lain1833272,11 00,0000,0000,0000,000 Lahan Terbuka - Lahan Terbuka 9811869,06 81,7270,0272,7032,000 Lahan Terbuka - Pertanian 12236228,56 30,5190,0080,8130,000 Penggunaan Lain - Hutan 168572,73 112,5660,19719,66719,000 Penggunaan Lain - Permukiman 1186366,40 00,0000,0000,0000,000 Penggunaan Lain - Penggunaan Lain2869439,02 00,0000,0000,0000,000 Penggunaan Lain - Lahan Terbuka 77964,02 127,1710,42542,52342,000 Penggunaan Lain - Pertanian 334700,35 00,0000,0000,0000,000 Permukiman - Hutan 2983660,49 00,0000,0000,0000,000 Permukiman - Permukiman 42267184,60 130,6520,0101,0201,000 Permukiman - Penggunaan Lain 1083392,42 11,9550,0313,0603,000 Permukiman - Lahan Terbuka 733252,96 00,0000,0000,0000,000 Permukiman - Pertanian 4167651,64 63,0500,0484,7734,000 Pertanian - Hutan 17185546,29 121,4790,0232,3152,000 Pertanian - Permukiman 14272793,93 91,3360,0212,0912,000 Pertanian - Penggunaan Lain 1746296,13 11,2130,0191,8981,000 Pertanian - Lahan Terbuka 7018717,41 51,5090,0242,3622,000 Pertanian - Pertanian 60724955,50 250,8720,0141,3651,000 Pk = Formasi Kaliwangu 91168 246,5440,54154,14254,000 Qc = Koluvium 20899665 111,1170,0131,2991,000 Ql = Endapan Danau 17308989 60,7350,0090,8560,000 Qol = Endapan Sedimen Dalam 602684 00,0000,0000,0000,000 Qvb = Hasil Gn. Api Tua Breksi 24706628 443,7780,0444,3954,000 Qvl = Hasil Gn. Api Tua Lava 3228940 00,0000,0000,0000,000 Qvu = Hasil Gn. Api Tua Tak Terurai85866673 360,8900,0101,0351,000 Qyl = Hasil Gn. Api Muda Lava 22749075 90,8390,0100,9760,000 Qyu = Hasil Gn. Api Muda Tak Terurai214927855 720,7110,0080,8270,000 < 2 10701539 10,1980,0252,4952,000 2 - 5 44147333 120,5760,0737,2587,000 5 - 8 46308040 110,5030,0636,3436,000 8 - 17 142269517 520,7740,0989,7609,000 17 - 24 76425972 330,9150,11511,53011,000 24 - 33 55180498 552,1120,26626,61526,000 > 33 14837474 202,8560,36035,99435,000 < 600 48382120 331,4480,17217,23517,000 600 - 900 167568001 881,1150,13313,27013,000 900 - 1200 101637201 420,8770,10410,44210,000 1200 - 1500 54855998 120,4640,0555,5285,000 1500 - 1800 17604358 80,9650,11511,48311,000 > 1800 601008 13,5330,42042,04442,000 0 - 10 26993475 181,4160,25024,96524,000 10 - 50 107188650 350,6930,12212,22412,000 50 - 100 57001950 260,9680,17117,07617,000 100 - 150 38176875 221,2230,21621,57421,000 150 - 200 21919950 111,0650,18818,78718,000 > 200 139369500 721,0970,26426,38526,000 0 - 10 14044275 152,2680,46746,67746,000 10 - 50 86760000 501,2240,25225,18625,000 50 - 100 84718125 441,1030,22722,69822,000 100 - 150 77974650 250,6810,14014,01214,000 150 - 200 53228925 180,7180,14814,77914,000 > 200 73924425 320,9190,13713,74813,000 Flat (-1) 12086239 40,7010,0767,6027,000 North (0-22.5) 20666751 90,9230,10010,00210,000 Northeast (22.5-67.5) 56170558 301,1320,12312,26712,000 East (67.5-112.5) 53742496 331,3010,14114,10414,000 Southeast (112.5-157.5) 51405252 261,0720,11611,61711,000 South (157.5-202.5) 49145553 261,1210,12212,15112,000 Southwest (202.5-247.5) 49747888 261,1070,12012,00412,000 West (247.5-292.5) 40254581 130,6840,0747,4187,000 Northwest (292.5-337.5) 38702497 130,7120,0777,7157,000 North (337.5-360) 17948560 40,4720,0515,1195,000 389777249 0,0000,4250,425 LUC 4,7250,090 0,090 Geologi (Batuan) 390381677 0,0000,5410,541 6,0160,090 Elevasi 1 2 3 390648686 4 0,0550,4200,3650,090 Kemiringan Lereng 389870373 0,0250,3600,335 3,722 4,057 Buffer Jalan 5 390650400 0,1220,2500,1270,090 1,416 Buffer Sungai 6 390650400 0,1370,4670,3290,090 3,659 Aspek Lereng 7 389870373 0,0510,1410,0900,090 1,000 Koleksi digital milik UPT Perpustakaan ITB untuk keperluan pendidikan dan penelitian 107 LAMPIRAN D: Script Code Random Forest // Land cover parameter var values = [1, 2, 3, 4, 5]; var palette = [ '#1a9641', '#ffffff', '#ffffbf', '#d95f0e', '#000000', ]; var names = [ 'Forest', 'Grassland', 'Cropland', 'Residence', 'Others', ]; // Show legend legend(palette, values, names); // Land cover dictionary for visualization var lulcDict = { 'LULC_class_palette': palette, 'LULC_class_values': values, 'LULC_class_names': names }; // Land cover data for 2013, 2018 and 2024 var lulc2013 = ee.Image('projects/ee-iqbalputra87/assets/LUC2013'); var lulc2018 = ee.Image('projects/ee-iqbalputra87/assets/LUC2018'); var lulc2024 = ee.Image('projects/ee-iqbalputra87/assets/LUC2024'); Map.addLayer(lulc2013, {min: 1, max: 5, palette: palette}, 'LULC 2013'); Map.addLayer(lulc2018, {min: 1, max: 5, palette: palette}, 'LULC 2018'); Map.addLayer(lulc2024, {min: 1, max: 5, palette: palette}, 'LULC 2024'); // Region of interest var roi = lulc2018.geometry(); // Define the SRTM (Shuttle Radar Topography Mission) DEM var srtm = ee.Image('users/iqbalputra87/DEMNAS'); // Import data bangunan penting dan akses tol var Build = ee.Image('projects/ee-iqbalputra87/assets/Buildutm'); var Road = ee.Image('projects/ee-iqbalputra87/assets/Jalanutm'); // Define a default kernel for distance calculation var kernel = ee.Kernel.euclidean({ radius: 1000, // Maximum distance in meters to compute units: 'meters' // Unit of distance }); // Pastikan raster tidak memiliki mask (null pixels diubah jadi 0) var buildingRaster = Build.unmask(0).rename('building_raster'); var roadRaster = Road.unmask(0).rename('road_raster'); // Hitung proximity var buildingProximity = buildingRaster.unmask(0).distance(kernel) .rename('building_proximity') .clip(roi); Koleksi digital milik UPT Perpustakaan ITB untuk keperluan pendidikan dan penelitian 108 var roadProximity = roadRaster.unmask(0).distance(kernel) .rename('road_proximity') .clip(roi); Map.addLayer(buildingProximity, { min: 0, max: 1000, palette: ['white', 'blue'] }, 'Building Proximity'); Map.addLayer(roadProximity, { min: 0, max: 1000, palette: ['white', 'red'] }, 'Road Proximity'); // Put the land cover in a list var lulcList = [ { year: 2013, image: lulc2013 }, { year: 2018, image: lulc2018 }, { year: 2024, image: lulc2024 } ]; // Show the 2013, 2018 and 2024 land cover lulcList.map(function(dict){ Map.addLayer(dict.image.set(lulcDict), {}, 'LULC ' + dict.year); }); // Create land cover change map var changeValues = []; var changeNames = []; var changeMap = ee.Image(0); values.map(function(value1, index1){ values.map(function(value2, index2){ var changeValue = value1 * 1e2 + value2; changeValues.push(changeValue); var changeName = names[index1] + ' -> ' + names[index2]; changeNames.push(changeName); changeMap = changeMap.where(lulcList[0].image.eq(value1).and(lulcList[1].image.eq(value2)), changeValue); }); }); // Show the change map changeMap = changeMap.selfMask(); Map.addLayer(changeMap, { min: 101, max: 1010, palette: palette }, 'Land cover change map'); // Print the change dictionary var changeDict = ee.Dictionary.fromLists(changeValues.map(function(value){ return String(value) }), changeNames); print('Land cover change values', changeDict); // Create images with variables to predict land cover change var variables = ee.Image([ lulc2013.rename('start'), lulc2024.rename('end'), changeMap.rename('transition'), srtm.clip(roi).rename('elevation'), Koleksi digital milik UPT Perpustakaan ITB untuk keperluan pendidikan dan penelitian 109 roadProximity.rename('road_proximity'), buildingProximity.rename('building_proximity'), ee.Image(2024).multiply(lulc2013.neq(lulc2024)).rename('year') ]); // Property names for prediction var propNames = ['start', 'transition', 'elevation', 'road_proximity', 'building_proximity', 'year']; // Propert names to predict var predictName = 'end'; // Sample image var sample = variables.stratifiedSample({ numPoints: 3000, classBand: 'transition', scale: 10, region: roi }).randomColumn(); // Split train and test var train = sample.filter(ee.Filter.lte('random', 0.8)); var test = sample.filter(ee.Filter.gt('random', 0.8)); print( ee.String('Sample train: ').cat(ee.String(train.size())), ee.String('Sample test: ').cat(ee.String(test.size())) ); // Build random forest model for prediction var model = ee.Classifier.smileRandomForest(50).train(train, predictName, propNames); // Test model accuracy var cm = test.classify(model, 'prediction').errorMatrix('end', 'prediction'); print( 'Confusion matrix', cm, ee.String('Accuracy: ').cat(ee.String(cm.accuracy())), ee.String('Kappa: ').cat(ee.String(cm.kappa())) ); // Variables for predict for year 2033 var variables2033 = ee.Image([ lulc2013.rename('start'), changeMap.rename('transition'), srtm.clip(roi).rename('elevation'), roadProximity.rename('road_proximity'), buildingProximity.rename('building_proximity'), ee.Image(2033).multiply(lulc2013.neq(lulc2024)).rename('year') ]); // Apply the model for the variables for 2033 var lulc2033 = variables2033.classify(model).set(lulcDict); Map.addLayer(lulc2033, {}, 'LULC 2033 Prediction'); Koleksi digital milik UPT Perpustakaan ITB untuk keperluan pendidikan dan penelitian 110 // Add lulc 2033 to LULC list lulcList.push({ year: 2033, image: lulc2033 }); // Calculate land cover area per year var lulcAreafeatures= ee.FeatureCollection(lulcList.map(function(dict){ var imageArea = ee.Image.pixelArea().divide(10000); var reduceArea = imageArea.addBands(dict.image).reduceRegion({ reducer: ee.Reducer.sum().setOutputs(['area']).group(1, 'class'), scale: 10, geometry: roi, bestEffort: true }).get('groups'); var features = ee.FeatureCollection(ee.List(reduceArea).map(function(dictionary){ dictionary = ee.Dictionary(dictionary); var label = ee.List(names).get(ee.Number(dictionary.get('class')).subtract(1)); dictionary = dictionary.set('year', ee.Number(dict.year).toInt()); dictionary = dictionary.set('LULC', label); return ee.Feature(null, dictionary); })); return features; })).flatten(); // Function to add legend function legend(palette, values, names){ Map.add( ui.Panel( palette.map(function(color, index){ return ui.Panel([ ui.Label('', { backgroundColor: color, width: '30px', height: '20px' }), ui.Label(values[index], { height: '20px' }), ui.Label(names[index], { height: '20px' }) ], ui.Panel.Layout.flow('horizontal')); }), ui.Panel.Layout.flow('vertical'), { position: 'bottom-left' } ) ); } // Apply the model for the variables for 2033 var lulc2033 = variables2033.classify(model).set(lulcDict); Map.addLayer(lulc2033, {}, 'LUC 2033 Predict'); // Export 2033 prediction to Google Drive Export.image.toDrive({ image: lulc2033, // The image to export description: 'LUC_2033_Predict', // Task name scale: 10, // Export resolution in meters region: roi, // The region of interest crs: 'EPSG:4326', // Coordinate reference system maxPixels: 1e13, // Maximum number of pixels allowed folder: 'LUC_Exports' // Folder in Google Drive where image will be saved }); Koleksi digital milik UPT Perpustakaan ITB untuk keperluan pendidikan dan penelitian.