For the complete documentation index, see llms.txt. This page is also available as Markdown.
Lampiran G: Contoh kode sumber terbuka dan perhitungan
Demo Google Earth Engine dan akses ke kode ISBM di GitHub Savimbo
Kode sumber terbuka untuk perhitungan kredit keanekaragaman hayati tersedia untuk umum di Savimbo GitHub.
Kami berniat membuat kode ini lebih mudah dipakai dan tersedia untuk proyek IP dan LC dengan antarmuka yang bisa memberi kredit otomatis dari, dan ke, basis data Airtable gratis setelah kami memulai sertifikasi keanekaragaman hayati pada 2024. Airtable gratis daftar sudah tersedia sekarang. Proyek IP dapat mendaftar ke daftar tunggu di antarmuka ini sekarang dan mendapatkan templat basis data Airtable dengan mengirim email ke ops@savimbo.com
Contoh perhitungan juga tersedia di Google Earth Engine telah berjanji untuk menyediakan akun gratis bagi kelompok Masyarakat Adat yang terlibat dalam perubahan iklim. Nonkomersial daftar tersedia.
Gambar 11. Contoh kode Google Earth Engine
Gambar 11. Contoh kode Google Earth Engine
Contoh kode, kode sedang direvisi oleh pihak luar. Dapat diakses melalui Google Earth Engine di tautan ini. Atau di Savimbo GitHub di tautan ini. Kontak ops at savimbo.com jika Anda ingin menjadi peninjau kode.
// Muat poligon plot18
var plot18_data = require("users/drea/map:plot18_data");
var plot18 = plot18_data.polygon;
// Hitung luas plot dalam hektar
var plotArea = plot18.area();
var plotAreaHectares = plotArea.divide(10000);
// Muat titik jaguar
var points_jaguar_data = require("users/drea/map:points_jaguar_data");
var puntos = points_jaguar_data.points;
var radios = [];
var sumMultipliedArea = ee.Number(0);
// Tentukan feature collection untuk menyimpan poligon perpotongan
var intersectionPolygons = ee.FeatureCollection([]);
// Tentukan fungsi assignedArea
var assignedAreaFunction = function(offset) {
var day = startDate.advance(offset, 'day');
var dayString = day.format('YYYY-MM-dd');
var feature = ee.Feature(null, { date: dayString, intersectionArea: intersectionArea });
return feature.set('date_area', ee.String(dayString).cat(' - ').cat(intersectionArea));
};
// Hitung radius dan buffer untuk setiap titik
for (var i = 0; i < puntos.length; i++) {
var point = puntos[i].geometry;
var date = puntos[i].date;
// Hitung tanggal mulai dengan mengurang 30 hari
var startDate = ee.Date(date).advance(-30, 'day');
// Hitung tanggal akhir dengan menambah 30 hari
var endDate = ee.Date(date).advance(30, 'day');
// Buat feature dengan geometri titik dan tanggal sebagai properti
var feature = ee.Feature(point, { date: date });
var pointBuffer = feature.buffer(800);
radios.push(pointBuffer);
// Hitung perpotongan dengan plot18
var intersection = pointBuffer.intersection(plot18);
// Hitung luas dalam hektar
var area = intersection.area().divide(10000);
// Ambil bulan dan tahun dari tanggal
var month = ee.Date(date).get('month');
var year = ee.Date(date).get('year');
// Buat label untuk bulan dan tahun
var monthYearLabel = ee.String(month).cat('-').cat(year).cat(' Hectarias N°');
// Hitung perpotongan dengan plot18 untuk titik saat ini
var intersectionPlot18 = pointBuffer.intersection(plot18);
// Hitung luas dalam hektar untuk perpotongan dengan plot18
var intersectionArea = intersectionPlot18.area().divide(10000);
var multipliedArea = intersectionArea.multiply(60);
// Tambahkan multipliedArea ke jumlah
sumMultipliedArea = sumMultipliedArea.add(multipliedArea);
// Tentukan rentang tanggal jaguar
var jaguarRange = endDate.difference(startDate, 'day');
// Tetapkan nilai intersectionArea ke setiap hari dalam rentang jaguar
var assignedArea = ee.FeatureCollection(ee.List.sequence(0, jaguarRange.subtract(1)).map(assignedAreaFunction));
// Tampilkan hasil untuk setiap titik
print('Jaguar:', i + 1);
print('Date of image capture:', date);
print('Start Date:', startDate.format('YYYY-MM-dd'));
print('End Date:', endDate.format('YYYY-MM-dd'));
print('Total Intersection Area per day in hectares:', intersectionArea);
print('Multiplied Intersection Area * 60:', multipliedArea);
print('Assigned Area per day:', assignedArea);
print('----------------------');
// Tambahkan buffer titik saat ini ke peta dengan warna biru
Map.addLayer(pointBuffer, { color: 'blue' }, 'Radio ' + (i + 1));
// Tambahkan geometri perpotongan ke intersectionPolygons
intersectionPolygons = intersectionPolygons.merge(intersection);
}
// Lakukan gabungan poligon untuk menghindari duplikasi
var unionPolygons = intersectionPolygons.union();
// Hitung total luas perpotongan tanpa duplikasi
var totalIntersectionArea = unionPolygons.geometry().area().divide(10000);
// Tampilkan hasil
print('Total intersection area hectares:', totalIntersectionArea);
print('Plot18 area hectares:', plotAreaHectares);
print('Sum of Multiplied Intersection Area hectares * 60 days:', sumMultipliedArea);
// Tambahkan layer plot18 ke peta
Map.addLayer(plot18, { color: 'gold' }, "plot18");
Map.centerObject(plot18);