Skip to main content

Paket Python untuk pengolahan koreksi bias model iklim global menggunakan deep learning CNN-BiLSTM.

Project description

samudra-ai

Paket Python untuk melakukan pengolahan koreksi bias model iklim global menggunakan arsitektur deep learning CNN-BiLSTM

SamudraAI 🌊

License: MIT PyPI version Python

Paket Python untuk koreksi bias model iklim menggunakan arsitektur deep learning CNN-BiLSTM.

SamudraAI memudahkan peneliti dan praktisi di bidang ilmu iklim untuk menerapkan metode koreksi bias yang canggih pada data GCM (General Circulation Model) menggunakan data observasi sebagai referensi.

Fitur Utama

  • 🧠 Arsitektur CNN-BiLSTM: Menggabungkan kemampuan ekstraksi fitur spasial dari CNN dengan pemahaman sekuens temporal dari LSTM.
  • 📂 Antarmuka Sederhana: API yang bersih dan mudah digunakan, terinspirasi oleh scikit-learn.
  • 🛠️ Pra-pemrosesan Terintegrasi: Fungsi bawaan untuk memuat, memotong, dan menormalisasi data iklim dalam format NetCDF.
  • 💾 Model Persistent: Kemampuan untuk menyimpan model yang telah dilatih dan memuatnya kembali untuk inferensi di kemudian hari.

Instalasi

Anda dapat menginstal SamudraAI langsung dari PyPI menggunakan pip:

pip install samudra-ai

Cara Penggunaan Cepat (Quick Start)

Berikut adalah alur kerja dasar untuk menggunakan SamudraAI.

1. Siapkan Data Anda

Pastikan Anda memiliki data dalam format xarray.DataArray:

  • gcm_hist_data: Data GCM historis (sebagai input X).
  • obs_data: Data observasi/reanalysis (sebagai target y).
  • periode_training : Samakan periode waktu antara gcm_hist_data dan obs_data
  • gcm_future_data: Data GCM masa depan yang ingin dikoreksi
  • periode_future: Tidak harus sama dengan periode_training (boleh lebih panjang)
### 2. import model
from samudra_ai import SamudraAI
from samudra_ai.data_loader import load_and_mask_dataset

### 3. Load GCM dan Observasi
gcm = load_and_mask_dataset("data_historical", "var_name_data_historical",
                            ("latitude_min", "latitude_max"), ("longitude_min", "longitude_max"),
                            ("periode awal (yyyy-mm-dd)", "periode akhir (yyyy-mm-dd)"))
obs = load_and_mask_dataset("data_observasi", "var_name_data_observasi",
                            ("latitude_min", "latitude_max"), ("longitude_min", "longitude_max"),
                            ("periode awal (yyyy-mm-dd)", "periode akhir (yyyy-mm-dd)"))

### 4. Inisialisasi dan Training Model
model = SamudraAI(time_seq="time_sequence") # time_sequence = periode temporal pembelajaran (bulanan)
model.fit(gcm, obs, epochs="epoch")    # epoch = jumlah pembelajaran model
model.plot_history(output_dir="local_path/")

### 5. Simpan dan/atau muat ulang model
model.save("nama_model")
model = SamudraAI.load("nama_model")

### 6. Evaluasi Historical dan Simpan Hasil Koreksi
eval_df, corrected_hist = model.evaluate_and_plot(
    raw_gcm_data=gcm,
    ref_data=obs,
    var_name_ref="sla",
    output_dir="local_path/",
    save_corrected_path="nama_hist_terkoreksi.nc"
)

### 6. Koreksi Proyeksi SSP
ssp = load_and_mask_dataset("data_proyeksi", "var_name_data_proyeksi",
                            ("latitude_min", "latitude_max"), ("longitude_min", "longitude_max"),
                            ("periode awal (yyyy-mm-dd)", "periode akhir (yyyy-mm-dd)"))
corrected_proj = model.correction(ssp, save_path="nama_proyeksi_terkoreksi.nc")

Best Practice

  • ✅ Disarankan menggunakan TensorFlow GPU untuk performa optimal
  • ✅ Disarankan memiliki memory / RAM yang cukup untuk pengolahan data dengan resolusi tinggi dan luasan domain yang besar
  • ✅ Jalankan pelatihan secara penuh di lingkungan lokal
  • ⚠️ Hindari mencampur save/load model .keras antar environment yang berbeda
  • ⚠️ Menggunakan Docker tetap bisa berjalan, namun proses save and load (penggunaan no.5) tidak bisa diproses karena perbedaan env
  • 💡 Format .nc hasil koreksi bisa langsung digunakan untuk plotting dan analisis

Lisensi

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

Project details


Release history Release notifications | RSS feed

This version

1.2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

samudra_ai-1.2.0.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

samudra_ai-1.2.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file samudra_ai-1.2.0.tar.gz.

File metadata

  • Download URL: samudra_ai-1.2.0.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for samudra_ai-1.2.0.tar.gz
Algorithm Hash digest
SHA256 2481ffaecd3502209cb440af2811c55e54e29c9ec60b5ebe5f73bb1d30f3e362
MD5 7fcf2af573cc396fa3c2d3753ae5df4a
BLAKE2b-256 29cf8a1e9e690fbf2af236e72396aadfca8b45c2233f89b5d11ce6263a16dde7

See more details on using hashes here.

File details

Details for the file samudra_ai-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: samudra_ai-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for samudra_ai-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e31ac4ccd47f60da5d8b7f3bb9a9b937857f7acb20c469ec92a7b8773f087451
MD5 5a06350793ceb00767953d3e770986d9
BLAKE2b-256 e6407acff23892eb9b8a16a71053a41c1f82de23d40dd3da273e713dcac3537a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page