Validation

Cara Memvalidasi Data Drillhole Sebelum Estimasi Resource

80% kesalahan resource model bermula dari data collar, survey, atau assay yang jelek. Ini checklist QA 6 langkah yang menangkap masalah sebelum bikin feasibility study-mu berantakan.

Resource model hanya sebagus data yang menopangnya. Dan dalam 12 tahun melihat database eksplorasi, lima masalah yang sama terus muncul: collar ID duplikat, survey yang bertentangan dengan kedalaman downhole, interval assay yang tumpang-tindih, kode litologi yang tidak terdokumentasi siapa pun, dan si pembunuh diam-diam — data parsial yang kelihatannya baik-baik saja sampai kamu benar-benar mulai melakukan estimasi.

Tulisan ini memandu kamu lewat checklist validasi 6 langkah yang aku pakai di tiap proyek sebelum memulai EDA. Ini bukan daftar lengkap. Ini minimum untuk menghindari kesalahan memalukan di kemudian hari.

Kenapa ini penting

JORC 2012 Table 1 Section 1 dan KCMI 2017 sama-sama mengharuskan kamu mengungkapkan prosedur validasi datamu. “Aku percaya saja sama database” bukanlah prosedur. Competent Person-mu harus bisa menunjuk check yang konkret — begitu juga kamu, saat technical advisor seorang investor mulai bertanya-tanya.

Lebih praktisnya: satu interval assay yang jelek di kedalaman 80m pada satu hole tidak akan mengubah global mean-mu. Kesalahan yang sistematis — misalnya semua hole REVERSE-CIRCULATION punya offset survey 3° karena alat survey-nya tidak di-zero — akan diam-diam menggeser seluruh variogram-mu dan membuat kriging-mu melenceng.

Checklist 6 langkah

1. Validasi collar

Sebelum kamu memuat apa pun yang lain, tabel collar harus bersih.

Check:

  • Hole ID unik — tidak ada duplikat. Kalau kamu lihat TRRC014 dua kali, salah satunya keliru.
  • Rentang koordinat — apakah easting/northing ada di dalam area proyek? Offset 8000 km itu hal nyata yang terjadi ketika seseorang salah memasukkan zona UTM.
  • Kewajaran elevasi — apakah elevasi collar cocok dengan topografi (cek DEM)? Hole yang “mulai di bawah tanah” itu tanda bahaya.
  • Tipe hole — DDH, RC, AC dilabeli secara konsisten. Casing yang campur-aduk merusak filter di hilir.

Decision gate: 100% ID unik, semua koordinat di dalam bounding box proyek, elevasi dalam ±10m dari DEM.

2. Validasi survey

Survey adalah tempat error proyeksi bersembunyi.

Check:

  • Rentang azimuth: 0–360°. Angka 999, -1, atau kosong adalah tanda bahaya.
  • Rentang dip: -90° sampai 0° untuk pengeboran downhole (konvensi paling umum). Dip positif? Cek ulang konvensi tanda.
  • Depth monotonik: survey harus turun, bukan loncat mundur. [15, 30, 25, 60] itu rusak.
  • Interval survey: tipikal 30m untuk DDH, 6m untuk RC. Gap >50m tanpa penjelasan itu mencurigakan.
  • Kecocokan final depth: kedalaman survey terakhir ≤ kedalaman akhir hole. Bukan sebaliknya.

Decision gate: Semua azimuth 0–360°, semua dip negatif atau nol, depth monotonik, tidak ada gap tak terjelaskan.

3. Validasi assay

Di sinilah sebagian besar masalah bersarang, karena tabel assay adalah yang terbesar.

Check:

  • Overlap From-To: [10–15, 12–18] itu rusak. Interval bersebelahan boleh berbagi batas, tidak pernah saling tumpang-tindih.
  • Gap From-To: gap tanpa alasan “no sample” yang tercatat? Selidiki.
  • Flag BDL: nilai di bawah detection limit — apakah dikodekan sebagai -1, 0, setengah detection-limit, atau teks "BDL"? Pilih satu konvensi dan verifikasi.
  • Grade negatif: seharusnya tidak pernah ada (kecuali sebagai placeholder BDL).
  • Sample duplikat: hole-from-to yang sama dengan grade berbeda? Selidiki, bukan dihapus.
  • Konsistensi satuan: gram-per-tonne (Au) vs ppm (base metal) — jangan dicampur.

Decision gate: 0 overlap, konvensi BDL terdokumentasi, 0 negatif tak terduga, sample ID duplikat sudah direkonsiliasi.

4. Validasi geology

Litologi menggerakkan pemisahan domain. Litologi jelek = domain jelek = estimasi jelek.

Check:

  • Konsistensi kode: GRT, Granite, granite adalah tiga kode berbeda bagi database. Standarkan.
  • Interval hilang: tiap interval kedalaman harus punya kode litologi. Litologi null di tengah hole adalah kesalahan entri data.
  • Jumlah kode: proyek tipikal punya 5-15 kode litologi. 50+ kode artinya seseorang terlalu kreatif — konsolidasikan.
  • Struktur Major-Minor: kalau kamu punya kolom MAJOR_LITH dan MINOR_LITH, keduanya harus dikodekan secara konsisten.

Decision gate: Kamus kode litologi terdokumentasi, 0 interval hilang, ≤20 kode unik (setelah konsolidasi).

5. Inspeksi visual

Angka bisa lolos semua check di atas tapi tetap salah secara visual. Mata menangkap apa yang dilewatkan script.

Check:

  • Strip log per hole (sampel acak 5-10 hole): apakah pita litologi dan kurva grade terlihat masuk akal secara geologi?
  • Cross-section (minimal 2 azimuth): apakah hole mengelompok secara spasial seperti yang diharapkan? Ada outlier di ruang 3D?
  • Distribusi panjang hole: histogram final_depth. Ada hole <5m? Itu kemungkinan hole yang dibatalkan — flag atau buang.
  • Distribusi interval sample: histogram to - from. Distribusi bimodal biasanya berarti seseorang mengubah protokol sampling di tengah proyek.

Decision gate: Subjektif — tapi kamu harus bisa bilang “Aku sudah lihat strip log untuk hole X, Y, Z dan semuanya konsisten dengan model geologi.”

6. Join antar-tabel

Check terakhir adalah apakah tabel-tabelmu benar-benar tersambung.

Check:

  • Collar ↔ Survey: tiap hole di tabel collar punya minimal satu record survey. Hole tanpa survey tidak bisa di-desurvey.
  • Collar ↔ Assay: tiap record assay menunjuk ke hole ID yang valid. Assay yatim dari hole yang sudah dihapus itu nyata adanya.
  • Konsistensi panjang hole: kedalaman assay maks ≤ final_depth collar ≤ kedalaman survey maks. Tidak konsisten = ketidakcocokan entri data.

Decision gate: 100% kelengkapan join antar collar/survey/assay/geology.

Seperti apa output validasi yang baik

Untuk tiap proyek, aku menghasilkan ringkasan validasi 1 halaman:

  • Unique collar IDs — ✓ — 40 holes, 0 duplikat
  • Coord in bbox — ✓ — 100% di dalam poligon proyek
  • Survey azimuth range — ✓ — Semua 0–360°
  • Survey depth monotonic — ✓ — Semua hole
  • Assay overlaps — ✓ — 0 overlap terdeteksi
  • BDL convention — ✓ — -1 = BDL, terdokumentasi
  • Lithology completeness — ⚠️ — 3 interval hilang di TRRC008 — sudah di-flag
  • Strip log review — ✓ — Sampel 8/40 hole
  • Section view — ✓ — Dua section NS, tanpa outlier spasial
  • Cross-table joins — ✓ — 100% kelengkapan join

Tabel itulah yang dilampirkan ke pengungkapan Table 1 Section 1-mu. Tanpa tabel = tanpa data validation = kekhawatiran JORC.

Mengotomasi ini

Validasi manual pada proyek 40 hole butuh setengah hari. Pada proyek 400 hole butuh seminggu. Itulah kenapa aku membangun Orebit Corelhole Prep (Phase 01) — tiap check di atas berjalan otomatis saat kamu upload CSV-mu:

  • Mendeteksi otomatis pemetaan kolom (tanpa setup skema manual)
  • Mem-flag overlap, gap, nilai BDL, ketidakkonsistenan kode
  • Menghasilkan strip log dan cross-section dalam satu klik
  • Mengeluarkan laporan validasi selaras JORC (PDF + CSV)
  • 100% offline — datamu tidak pernah keluar dari laptopmu

Phase 01 mencakup langkah 1-6 di atas. Phase 02 (Orebit Assay) merambah ke analisis bivariat/multivariat. Phase 03 (Orebit Resource Estimation) menangani variography dan kriging.

Sekali bayar: IDR 49K per modul / IDR 99K bundle lengkap. Tanpa langganan. Beli sekali, pakai selamanya.

Intinya

Validasi data drillhole memang tidak glamor, tapi itulah pekerjaan yang memisahkan Resource Estimation Report yang bisa kamu pertahankan dari yang harus diulang oleh auditor eksternal. Enam langkah. Setengah hari dengan tool manual. Tiga menit dengan Orebit.

Apa pun pilihanmu — kerjakan dengan benar.


Punya kisah horor validasi atau check yang aku lewatkan? Email aku di hello@orebit.id. Aku baca semuanya.

Part of the Orebit ecosystem — geological workflow tools for drillhole validation, resource estimation, and JORC/KCMI reporting.
→ Explore GeoSuite

Try it

Try the toolkit this article uses.

Orebit GeoSuite — single-file HTML, works offline, no install. From CSV to resource report in one afternoon.

Explore GeoSuite →
# From this article:
open geosuite.orebit.id
load(your_drillhole.csv)
apply(workflow_above)

# Done. Ship the report.