> For the complete documentation index, see [llms.txt](https://sexytrees.savimbo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sexytrees.savimbo.com/methodology/id/lampiran/lampiran-g-contoh-kode-sumber-terbuka-dan-perhitungan.md).

# Lampiran G: Contoh kode sumber terbuka dan perhitungan

Kode sumber terbuka untuk perhitungan kredit keanekaragaman hayati tersedia untuk publik di [Savimbo GitHub](https://github.com/savimbo).&#x20;

Kami bermaksud membuat kode ini lebih mudah digunakan dan tersedia bagi proyek Masyarakat Adat dan komunitas lokal dengan antarmuka yang dapat memberi kredit otomatis dari, dan ke, basis data Airtable gratis setelah kami memulai sertifikasi keanekaragaman hayati pada 2024. Airtable gratis [Daftar ](https://airtable.com/invite/r/fxsn6mcE)sudah tersedia sekarang. Proyek Masyarakat Adat dapat mendaftar ke daftar tunggu pada antarmuka ini sekarang dan mendapatkan templat basis data Airtable dengan mengirim email ke <ops@savimbo.com>

Perhitungan demo juga tersedia di Google Earth Engine. Google Earth Engine telah berjanji menyediakan akun gratis untuk kelompok Masyarakat Adat yang terlibat dalam perubahan iklim. Nonkomersial [Daftar](https://earthengine.google.com/noncommercial/) tersedia.&#x20;

**Gambar 11. Contoh kode Google Earth Engine**&#x20;

<figure><img src="https://lh6.googleusercontent.com/rVQ0Wv_v9_eXa7qOghqAvJhwResowct17qRiUSD-lO_eatzZqyiNhfpKmprKNcRWdVXXkv2FuYyAetkdA1BzOcf6d7EWeGqmRpKVVMGmk89gLOQd8i1K-Ia4A7ixXu0Xo2XSlovBPF8KPN24COHu6a4" alt=""><figcaption><p><em><strong>Gambar 11</strong></em>. Contoh kode Google Earth Engine</p></figcaption></figure>

Contoh kode, kode sedang ditinjau eksternal. Dapat diakses melalui Google Earth Engine di [tautan.](https://code.earthengine.google.com/e914e4bf1b4fd252f4ad90318ca2371e) Atau di Savimbo GitHub pada [tautan.](https://github.com/savimbo) Kontak ***ops di savimbo.co**m* jika Anda ingin menjadi peninjau kode.&#x20;

```markup
// Muat poligon plot18
var plot18_data = require("users/drea/map:plot18_data");
var plot18 = plot18_data.polygon;

// Hitung luas plot dalam hektare
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 koleksi fitur untuk menyimpan poligon irisan
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 mengurangi 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 fitur dengan geometri titik dan tanggal sebagai properti
  var feature = ee.Feature(point, { date: date });
  
  var pointBuffer = feature.buffer(800);
  radios.push(pointBuffer);
  
  // Hitung irisan dengan plot18
  var intersection = pointBuffer.intersection(plot18);
  
  // Hitung luas dalam hektare
  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(' Hektare N°');
  
  // Hitung irisan dengan plot18 untuk titik saat ini
  var intersectionPlot18 = pointBuffer.intersection(plot18);
  
  // Hitung luas dalam hektare untuk irisan 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 untuk 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('Tanggal pengambilan citra:', date);
  print('Tanggal mulai:', startDate.format('YYYY-MM-dd'));
  print('Tanggal akhir:', endDate.format('YYYY-MM-dd'));
  print('Total luas irisan per hari dalam hektare:', intersectionArea);
  print('Luas irisan dikali 60:', multipliedArea);
  print('Luas yang ditetapkan per hari:', assignedArea);
  print('----------------------');
  
  // Tambahkan buffer titik saat ini ke peta dengan warna biru
  Map.addLayer(pointBuffer, { color: 'blue' }, 'Radius ' + (i + 1));
  
  // Tambahkan geometri irisan ke intersectionPolygons
  intersectionPolygons = intersectionPolygons.merge(intersection);
}

// Lakukan penggabungan poligon untuk menghindari duplikat
var unionPolygons = intersectionPolygons.union();

// Hitung total luas irisan tanpa duplikat
var totalIntersectionArea = unionPolygons.geometry().area().divide(10000);

// Tampilkan hasil
print('Total luas irisan dalam hektare:', totalIntersectionArea);
print('Luas plot18 dalam hektare:', plotAreaHectares);
print('Jumlah luas irisan dikali 60 hari dalam hektare:', sumMultipliedArea);

// Tambahkan layer plot18 ke peta
Map.addLayer(plot18, { color: 'gold' }, "plot18");
Map.centerObject(plot18);

```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sexytrees.savimbo.com/methodology/id/lampiran/lampiran-g-contoh-kode-sumber-terbuka-dan-perhitungan.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
