Skip to main content

SamudraAI & SamudraGraph 🌊🌐

License: MIT PyPI version Python Framework: PyTorch & TensorFlow Downloads

SamudraAI adalah platform komputasi cerdas iklim (Deep Climate Science) terpadu untuk wilayah kepulauan Indonesia. Paket ini menyediakan arsitektur Dual-Engine canggih:

  1. Engine 1 (samudra_ai): Koreksi bias model iklim global (GCM) dan downscaling resolusi spasial berbasis Convolutional Neural Network (CNN, ConvLSTM2D, U-Net, dan Conv1D-BiGRU-Attention).
  2. Engine 2 (samudra_graph): Pemodelan graf spasial-klimatologis dan rekonstruksi iklim (Graph Neural Networks) berbasis Dynamic Relational GATv2, topologi heterogen stasiun BMKG & sel reanalisis ERA5, kuantifikasi ketidakpastian konformal, serta pembuktian fisis termodinamika.

🚀 Apa yang Baru di v2.7.7?

  • ⚡ Akselerasi Otomatis GPU CUDA Penuh: Deteksi perangkat keras cerdas (device=None / 'cuda'), alokasi VRAM GPU untuk tensor batch & model PyTorch, serta Per-Device Edge Tensor Caching yang memangkas waktu latih dari ~49 detik/epoch (CPU) menjadi ~3–5 detik/epoch di GPU Google Colab / server (~10x speedup).
  • 🗺️ Plot Topologi Regional Fokus Resolusi Tinggi: Dukungan visualisasi regional (region="jawa", region="papua", dll.) pada sg.plot_topology(), lengkap dengan anotasi label nama stasiun resmi BMKG (white-pill callout) dan visualisasi keterhubungan ganda (bipartite ERA5 $\leftrightarrow$ BMKG dan k-NN intra-BMKG).
  • 🎯 Laju Belajar Mandiri untuk Spesialis Curah Hujan: Metode sg.fit_specialist(target_variable="bmkg_rainfall") secara cerdas mengadopsi laju belajar stabil (eff_lr = 0.0015) guna mencegah fluktuasi gradien ekstrem pada Tweedie Deviance Loss, sementara sg.fit() standar tetap mempertahankan arsitektur murni dan self.learning_rate seragam untuk seluruh variabel.
  • 🏷️ Kontekstualisasi Header Evaluasi Metrik: Deteksi cerdas antara evaluasi HISTORICAL HINDCAST RECONSTRUCTION (masa lalu) vs OUT-OF-SAMPLE FORWARD TEST (masa depan) pada laporan konsol dan judul plot evaluasi.

🚀 Apa yang Baru di v2.7.4?

  • 🔄 Ekstraksi & Penyelarasan Otomatis ERA5 Dinamis: Penyelarasan otomatis fitur reanalisis atmosfer ERA5 terdekat (era5_t2m, era5_d2m, era5_sp, era5_ssrd, era5_pev, era5_w10, era5_rh, era5_tp) langsung dari berkas kisi NetCDF secara efisien di memori. Berkas CSV stasiun BMKG kini dapat murni memuat kolom observasi in-situ BMKG tanpa perlu duplikasi kolom ERA5 secara statis.
  • 🎯 Integrasi Multi-Modal pada Tahap 1 VIF Screening (screen_features()): Mengakomodasi kandidat prediktor gabungan (observasi in-situ BMKG + batas reanalisis ERA5 global) secara langsung ke dalam kalkulasi VIF pra-pelatihan, menghasilkan hingga 12–13 fitur kandidat prediktor non-redundant.
  • 🛑 Fitur Early Stopping & Best Weights Restoration: Penambahan mekanisme penghentian dini otomatis pada SamudraGraph.fit() (early_stopping=True, early_stopping_patience=7, early_stopping_min_delta=1e-4) yang memantau kurva konvergensi loss dan secara otomatis memulihkan state bobot model terbaik (best_model_state_dict) untuk mencegah overfitting serta mengoptimalkan waktu komputasi.
  • 🛡️ Pencegahan Nilai NaN Kisi Pesisir (Valid Land Mask Slicing): Algoritma pencarian sel reanalisis terdekat kini memprioritaskan sel daratan berhingga (finite land cells) terdekat untuk stasiun kepulauan dan pesisir sehingga menjamin 100% data valid (0% NaN) pada seluruh deret waktu ERA5 1950–2026.

🚀 Apa yang Baru di v2.7.3?

  • 💾 Model Checkpoint Save & Load (model.save() & SamudraGraph.load()): Menyimpan seluruh bobot model neural network, topologi graf heterogen, kalibrator kuantil conformal, dan scaler normalisasi ke berkas checkpoint .pt. Pengguna dapat memuat kembali model terlatih kapan saja untuk langsung menjalankan inferensi (predict(), hindcast(), dll.) tanpa perlu pelatihan ulang (zero retraining overhead). Parameter save_path juga disematkan langsung pada fit().
  • 🌐 NetCDF Terpadu (Unified ERA5 Dataset): Penggabungan variabel geopotensial orografi z langsung ke dalam berkas NetCDF ERA5 (data_ERA5_indo_1950_2026.nc). Input masukan kini ringkas hanya 2 berkas (DATA_PANEL dan DATA_ERA5), tanpa memerlukan berkas metadata terpisah (metadata_ERA5_indo.nc).
  • 🏔️ Resolusi Elevasi Orografi Otomatis: Seluruh builder topologi multisel ERA5 (nearest, knn, radius, patch) dan lookup relief elevasi otomatis mengekstrak elevasi meter fisis ($z / 9.80665$) langsung dari berkas NetCDF primer.
  • 📊 Live Progress Tracking & Interactive tqdm: Menambahkan pelacak progres pelatihan interaktif pada SamudraGraph.fit() dengan visual progress bar tqdm per epoch dan per variabel (estimasi waktu dan nilai loss real-time), disertai mekanisme fallback ke logging periodik.
  • 🛠️ Ketahanan Dependensi & Headless Execution: Menghapus impor grafis tidak terpakai pada level modul core dan menambahkan dependensi resmi tqdm pada distribusi pyproject.toml.

🚀 Apa yang Baru di v2.7.2?

  • 🛠️ Hotfix VIF Screening (model.screen_features()): Perbaikan impor eksplisit transformer VIFScreeningSelector pada modul core sehingga tahap eksplorasi fitur dan kalkulasi skor VIF berjalan mulus di seluruh runtime.
  • ⚡ High-Level Interactive API: Otomatisasi visualisasi dan evaluasi dengan parameter plot=True dan evaluate=True pada fit(), predict(), hindcast(), fill_gaps(), dan virtual_stations().
  • 🔍 Guided Feature Exploration & VIF Screening (model.screen_features()): Evaluasi multikolinearitas pra-pelatihan otomatis, penghitungan Variance Inflation Factor eksak, dan pemangkasan fitur redundan secara stepwise dengan output tabel ranking & plot grafik batang.
  • 📁 Ekspor 1-Pintu (export_all()): Ekspor seluruh hasil rekonstruksi sekaligus ke standar biner internasional CF-1.8 DSG NetCDF-4 dan BMKG archive CSV.
  • 🌐 Spatio-Temporal GNN Level 2 ("st-gnn"): Arsitektur unggulan MultiVariableSpatioTemporalGAT2 dengan modular window_size (default: 3 bulan = 1 fase monsun penuh).
  • 🏆 State-of-the-Art GNN-Attention (GATv2): Pembobotan pesan dinamis (anisotropic dynamic attention) yang mempertimbangkan jarak fisik geodesik, relief orografi topografi riil ($\Delta z$), dan tipe relasi busur RGAT.
  • 🌫️ Graph Masked Autoencoder Pretraining: Regulasi masked node dropout induktif yang melatih model merekonstruksi informasi secara mandiri saat sensor stasiun padam (blackout). Peningkatan akurasi gap-filling $+13.8%$ hingga $+38.5%$!
  • 🎯 Graph Conformal Prediction (G-CP): Kuantifikasi ketidakpastian probabilistik adaptif dengan jaminan cakupan fisik matematis $90%$ yang mematuhi batas fisis (RH $[0, 100%]$, Hujan $\ge 0$).
  • 🧭 Modular Edge Attributes (2D / 4D / 5D): Pilihan atribut busur dari baseline parsimonious 2D ([distance, elevation]), 4D kompas arah periodik, hingga 5D proyeksi vektor adveksi angin monsun.
  • 🔬 Physics Explainability Suite: Generator bukti fisis otomatis via model.explain() (peta atensi spasial, manifold PCA topografi, verifikasi adiabatic lapse rate, dan audit batas analitik).

📦 Instalasi

Paket dapat diinstal langsung dari PyPI:

pip install --upgrade samudra-ai

Setelah instalasi, kedua modul dapat langsung diimpor:

import samudra_ai     # Engine 1: CNN GCM Bias Correction
import samudra_graph  # Engine 2: Spatial Graph Neural Networks

🌐 ENGINE 2: SAMUDRAGRAPH (samudra_graph)

samudra_graph dirancang khusus untuk merekonstruksi dan memodelkan variabel iklim multivariat di wilayah kepulauan Indonesia dengan topografi kompleks dan keterbatasan jaringan sensor in-situ.

⚡ Quickstart Bersih & Interaktif (Colab Ready)

from samudra_graph import SamudraGraph

# 1. Inisialisasi model Level 2 ST-GNN
model = SamudraGraph(
    architecture="st-gnn",
    variables=["temp", "rh", "rain", "pressure"],
    window_size=3,
    era5_grid_strategy="radius",
    era5_radius_km=25.0,
    nc_path="data/data_ERA5_indo_1950_2026.nc",
)

# 2. Latih model (otomatis plot topologi & kurva loss)
model.fit(
    train_data="data/bmkg_monthly_1981_2026.csv",
    train_start="1991-01-01",
    train_end="2020-12-01",
    epochs=35,
    plot=True,
)

# 3. Prediksi out-of-sample forward (otomatis hitung metrik & plot)
preds = model.predict(
    test_start="2021-01-01",
    test_end="2024-07-01",
    evaluate=True,
    plot=True,
)

# 4. Rekonstruksi 3 Pilar: Hindcast, Gap-Filling, & Virtual Stations
hindcast = model.hindcast(start_date="1981-01-01", end_date="1990-12-01", plot=True)
imputed = model.fill_gaps(station_data="data/bmkg_monthly_1981_2026.csv", plot=True)
virtual = model.virtual_stations(start_date="2021-01-01", end_date="2024-07-01", plot=True)

# 5. Ekspor produk lengkap ke CF-1.8 DSG NetCDF-4 & BMKG CSV
model.export_all(hindcast=hindcast, filled=imputed, virtual=virtual, forecast=preds)

# 6. Terbitkan bukti fisik hubungan fisis (Physics Explainability Suite)
model.explain()

🏛️ Arsitektur yang Didukung

Arsitektur (architecture) Status Implementasi Saintifik Karakteristik Utama
"st-gnn" (Roadmap Level 2) SOTA Spatio-Temporal MultiVariableSpatioTemporalGAT2 Perambatan pesan spasial GATv2 relasional dikombinasikan dengan asimilasi deret waktu rekuren (Node-wise GRU) melalui jendela waktu bergerak modular (window_size, default: 3 bulan). Mampu melacak akumulasi lengas tanah, panas laut, dan transisi fase monsun secara dinamis. Alias: "st_gnn", "st-gat", "spatiotemporal".
"gnn-attention" (Rekomendasi Spasial) SOTA Spasial MultiVariableSourceAwareGAT2 Dynamic anisotropic attention (GATv2), atribut busur fisik kontinu, orografi $\Delta z$, pembedaan relasi RGAT, dan Tweedie deviance loss ($p=1.5$) untuk presipitasi. Alias: "gat", "gat2".
"simple-gnn" Qualified Baseline MultiVariableSourceAwareGNN Uniform relational message-passing lintas simpul heterogen (BMKG + ERA5) dengan LayerNorm, residual connection, dan aktivasi batas fisis. Alias: "lite".

⏱️ Penggunaan Modular Time Window (window_size):

Pada arsitektur "st-gnn", parameter panjang jendela waktu deret bulan (window_size, atau alias time_window) bersifat modular dan dapat diatur bebas sesuai kebutuhan riset:

# Default rekomendasi: window_size=3 (merepresentasikan 1 musim penuh monsun Indonesia)
model = SamudraGraph(architecture="st-gnn", window_size=3)

# Eksplorasi siklus transisi monsun (misal 6 bulan atau 9 bulan)
model_6m = SamudraGraph(architecture="st-gnn", window_size=6)

📊 Hasil Uji Benchmark Utama SamudraGraph

  • Spatio-Temporal Memory (Level 2 ST-GNN): Integrasi memori rekuren GRU modular ($W=3$) memangkas error barometrik tekanan stasiun sebesar $+55.31%$ (MAE $10.99 \to 4.91\text{ hPa}$), menurunkan error curah hujan sebesar $+20.62%$ (MAE $156.4 \to 124.15\text{ mm}$), dan melesatkan korelasi hujan ke $r = 0.5586$ (vs $r=0.3050$ pada baseline snapshot).
  • Akurasi Suhu Permukaan: Rekor MAE terendah $0.6030^\circ\text{C}$ dicapai pada strategi Physical Radius Cutoff $25\text{ km}$ ($+10.72%$ skill gain dibanding baseline), dan meningkat ke $0.5288^\circ\text{C}$ pada ST-GNN $W=9$.
  • Akurasi Kelembapan Relatif: MAE $2.7708%$ ($+5.28%$ skill gain).
  • Korelasi Tekanan Stasiun: Korelasi Pearson melonjak dari $r=0.2751$ ke $r=0.7014$ nasional ($r=0.8385$ di Sumatra dan $r=0.9809$ di Jawa) berkat integrasi orografi geopotensial riil dan memori barometrik.
  • Puncak Monsun Barat: Varian adveksi angin 5D memangkas MAE menjadi $0.6189^\circ\text{C}$ ($+3.82%$ skill gain saat monsun Asia aktif melintasi Laut Jawa).
  • Validasi Hukum Termodinamika: Gradien adiabatik suhu empiris terhadap elevasi terbukti mematuhi environmental lapse rate atmosfer tropis ($-5.82^\circ\text{C} / \text{km}$).

🌊 ENGINE 1: SAMUDRAAI (samudra_ai)

samudra_ai berfokus pada koreksi bias data iklim global (GCM) terhadap observasi grid atau stasiun BMKG menggunakan deep learning.

📊 Perbandingan 4 Model SamudraAI

Fitur SamudraAI SamudraAI2 SamudraAI3 SamudraAI1D
Arsitektur CNN + BiLSTM ConvLSTM2D U-Net + ConvLSTM Conv2D + BiGRU + Attention
Tipe Output Grid 2D Grid 2D Sequence Grid 2D Sequence Titik Stasiun
Input Data Grid GCM Grid GCM Grid GCM Grid GCM + Stasiun
VRAM Usage 🟢 2-4 GB 🟡 6-8 GB 🔴 12-16 GB 🟢 4-6 GB
Training Speed 🟢 Cepat 🟡 Sedang 🔴 Lambat 🟡 Sedang
Detail Spasial ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
Konteks Temporal ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
Uncertainty ❌ ❌ ❌ ✅ MC Dropout
Best Use Case Baseline cepat Sequence forecast High-precision grid Koreksi stasiun

🎯 Panduan Pemilihan Model SamudraAI

  • SamudraAI (CNN-BiLSTM): Training paling cepat & konsumsi VRAM paling ringan. Cocok untuk studi regional skala besar atau baseline cepat.
  • SamudraAI2 (ConvLSTM2D): Memodelkan dependensi spasial & temporal secara bersamaan. Keseimbangan baik antara akurasi & komputasi.
  • SamudraAI3 (U-Net + ConvLSTM): Ekstraksi fitur multi-skala dengan skip connections. Unggul untuk wilayah dengan topografi kompleks dan hujan ekstrem.
  • SamudraAI1D (Conv1D + BiGRU + Attention): Model station-based downscaling dengan integrasi metadata fisik (lat/lon, elevasi, seasonal) dan MC Dropout 95% confidence interval.

🛠️ Ringkasan API SamudraAI

import samudra_ai

# Contoh penggunaan SamudraAI1D untuk koreksi stasiun
model_cnn = samudra_ai.SamudraAI1D(time_seq=9, mode="suhu")
model_cnn.fit(gcm_grid, station_df)
corrected = model_cnn.correction(gcm_grid, station_df)
model_cnn.evaluate_and_plot(raw_gcm_data, ref_data, output_dir="outputs/plots")

📋 Persyaratan Lingkungan (Requirements)

  • Python: >= 3.9
  • Machine Learning: torch >= 2.0.0, tensorflow >= 2.10
  • Sains Data & Geospasial: numpy, pandas, xarray, netCDF4, h5netcdf, scipy, scikit-learn
  • Visualisasi: matplotlib, seaborn, cartopy (opsional untuk peta geografis)

📄 Lisensi & Sitasi

Proyek ini dilisensikan di bawah MIT License. Lihat berkas LICENSE untuk detailnya.

Jika Anda menggunakan SamudraAI atau SamudraGraph dalam penelitian ilmiah, silakan sitasi:

@software{samudra_ai_2026,
  author = {Adityo Wicaksono},
  title = {SamudraAI: Deep Learning & Graph Neural Networks for Climate Science},
  version = {2.7.0},
  year = {2026},
  url = {https://pypi.org/project/samudra-ai/}
}

📧 Kontak & Kolaborasi

Metadata

Release files for samudra-ai 2.7.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for samudra-ai 2.7.7
File Size Uploaded
samudra_ai-2.7.7.tar.gz 371.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for samudra-ai 2.7.7
File Interpreter ABI Platform
samudra_ai-2.7.7-py3-none-any.whl Python 3 none any Details

Total release size: 818.0 kB

Release files / samudra_ai-2.7.7.tar.gz

Download URL samudra_ai-2.7.7.tar.gz
Size 371.4 kB
Tags Source
SHA-256 checksum
How to use checksums
71939f14ce84d6e60911ded0d7d839f55dc745907b521f925dc4d95cae7b988b
BLAKE2b-256 checksum
How to use checksums
0406c3f45f23c1d3d7b8ab7494f0d8e984f9d0b1c856fe41051b6ed2a63b7346
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release files / samudra_ai-2.7.7-py3-none-any.whl

Download URL samudra_ai-2.7.7-py3-none-any.whl
Size 446.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bab5341553a3a6a7e476d0369a25b04982dc8bb86a1f91924f4a1e47142e74a6
BLAKE2b-256 checksum
How to use checksums
42d6bf12223810df421ed53c7ddfe7d5aaefd3e7fb03043da9b2294a4462e893
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release history Release notifications | RSS feed

2.8.0

2 release files

2.7.9

2 release files

2.7.8

2 release files

This release

2.7.7 This release

2 release files

2.7.6

2 release files

2.7.5

2 release files

2.7.4

2 release files

2.7.3

2 release files

2.7.2

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.8

2 release files

2.6.5

2 release files

2.5.9

2 release files

2.5.5

2 release files

2.4.9

2 release files

2.3.9

2 release files

2.3.3

2 release files

2.0.0

2 release files

1.8.3

2 release files

1.8.0

2 release files

1.7.5

2 release files

1.6.4

2 release files

1.5.9

2 release files

1.4.5

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.9

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.1.9

2 release files

1.1.3

2 release files

1.1.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page