TANGERANG SELATAN WEATHER

Senin, 08 Juni 2026

Menganalisis Gelombang Rossby dari Geopotensial

Northern Hemisphere jet stream meandering showing Rossby wave troughs and ridges Sumber: NASA Goddard Space Flight Center / Scientific Visualization Studio (SVS #4171)

Mengapa Gelombang Rossby Penting untuk Indonesia

Pola cuaca di Indonesia tidak terbentuk di tempat yang terisolasi. Anomali suhu dan tekanan yang muncul di atas Papua, Kalimantan, atau Sumatra sering kali terhubung ke gangguan skala planet yang jauh lebih besar — gelombang Rossby, atau yang sering juga disebut gelombang planet.

Di lintang tengah, gelombang Rossby stasioner menyebabkan jet stream berbelok-belok membentuk trough (palung) dan ridge (punggung) yang persisten selama berminggu-minggu. Fenomena ini memediasi telekoneksi antara Samudra Pasifik tropis dan Belahan Bumi Utara, termasuk respons ENSO yang terkenal. Di sisi lain, gelombang Rossby khatulistiwa (equatorial Rossby waves) beroperasi di bawah dinamika yang berbeda: mereka terperangkap di dekat ekuator, merambat ke barat, dan berinteraksi erat dengan konveksi aktif dan sistem hujan.

Bagi meteorolog yang bekerja di wilayah Indonesia (6°LU–11°LS), kedua jenis gelombang ini relevan. Dari selatan, pengaruh jet subtropis Belahan Bumi Selatan — biasanya sekitar 25°LS — kadang-kadang merembes ke batas selatan domain. Dari timur, gelombang Rossby khatulistiwa yang merambat dari Pasifik dapat memicu anomali sirkulasi yang signifikan di atas Benua Maritim. Kasus paling dramatis adalah genesis Topan Seroja (April 2021), di mana sebuah convectively coupled equatorial Rossby wave berinteraksi dengan dua Kelvin wave di sekitar 125–132°E, 6°LS–3°LU, menurut studi Geng et al. yang diterbitkan di Nature Communications.

Tutorial ini mengambil pendekatan diagnostik: kita download data geopotensial ERA5 di level 500 hPa, hitung anomali terhadap rata-rata tahunan, lalu visualisasikan hasilnya sebagai peta snapshot dan diagram Hovmöller. Analisis ini bersifat eksploratif — bukan klaim bahwa kita "mendeteksi gelombang Rossby mid-latitude" di atas domain tropis, melainkan latihan pembacaan sinyal gelombang yang nyata.

Mengenal Gelombang Rossby Secara Singkat

Gelombang Rossby muncul karena efek-β: variasi meridional dari parameter Coriolis \(f = 2\Omega \sin\varphi\) terhadap lintang \(\varphi\). Gradien ini didefinisikan sebagai

$$\beta = \frac{\partial f}{\partial y} = \frac{2\Omega \cos\varphi}{R}$$

di mana \(\Omega = 7{,}292 \times 10^{-5}\ \text{rad/s}\) adalah laju rotasi Bumi dan \(R\) adalah jari-jari Bumi. Nilai \(\beta\) maksimum di ekuator dan mengecil ke nol di kutub, sehingga efek pemulih gelombang Rossby paling kuat di lintang rendah dan menengah.

Relasi dispersi gelombang Rossby pada aliran latar belakang zonal \(U\) adalah

$$\omega = U k_x - \frac{\beta k_x}{k_x^2 + k_y^2}$$

dengan \(k_x\) dan \(k_y\) masing-masing adalah bilangan gelombang zonal dan meridional. Kecepatan fase relatif terhadap tanah menjadi

$$c = U - \frac{\beta}{k_x^2 + k_y^2}$$

Gelombang stasioner terjadi ketika \(c = 0\), yaitu saat panjang gelombang \(\lambda_s = 2\pi\sqrt{U/\beta}\). Perlu diperhatikan bahwa solusi stasioner membutuhkan aliran westerly (\(U > 0\)). Di lintang tengah, jet stream westerly memenuhi syarat ini. Sebaliknya, di ekuator di mana angin permukaan didominasi easterly trade winds, analisis stasioner gelombang Rossby klasik tidak berlaku langsung.

Wavenumber planet \(k = 1\text{–}3\) mendominasi variabilitas mid-latitude, sedangkan wavenumber sinoptik \(k = 4\text{–}7\) lebih relevan untuk cuaca harian. Gelombang Rossby khatulistiwa beroperasi pada wavenumber \(1\text{–}10\) dengan periode \(\sim 9{,}7\text{–}48\) hari.

Data yang kita gunakan adalah geopotensial ERA5 (European Centre for Medium-Range Weather Forecasts, ECMWF) pada level tekanan 500 hPa. ERA5 menyimpan variabel z dalam satuan \(\text{m}^2/\text{s}^2\) (joule per kilogram). Untuk mendapatkan tinggi geopotensial \(Z\) dalam meter, kita bagi dengan gravitasi standar:

$$Z = \frac{\Phi}{g_0}, \quad g_0 = 9{,}80665\ \text{m/s}^2$$

Tinggi geopotensial 500 hPa (Z500) adalah variabel standar untuk membaca pola sirkulasi skala besar karena berada di tengah troposfer, meminimalkan noise orografi permukaan sekaligus merepresentasikan struktur sinoptik hingga planet.

Mengunduh dan Membuka Data Geopotensial ERA5

Kita mulai dengan mengunduh data geopotensial ERA5 pada level 500 dan 850 hPa untuk seluruh 2024, dibatasi pada domain Indonesia. Snippet berikut menggunakan guard if not os.path.exists(OUT) agar file hanya diunduh sekali — jika file sudah ada di direktori kerja, proses langsung melanjutkan ke pembukaan dataset dengan xarray.

Untuk menjalankan ini, daftar akun terlebih dahulu di cds.climate.copernicus.eu dan simpan API key di ~/.cdsapirc. Unduhan sekali-jalan untuk data 2024 biasanya membutuhkan 5–20 menit tergantung antrean CDS.

import os, cdsapi, xarray as xr

OUT = "era5_z_pl500-850_indonesia_2024_d.nc"
if not os.path.exists(OUT):
    c = cdsapi.Client(quiet=True)
    c.retrieve(
        "reanalysis-era5-pressure-levels",
        {
            "product_type": "reanalysis",
            "variable": ["geopotential"],
            "pressure_level": ["500", "850"],
            "year": "2024",
            "month": [f"{m:02d}" for m in range(1, 13)],
            "day":   [f"{d:02d}" for d in range(1, 32)],
            "time":  "00:00",
            "area":  [6, 95, -11, 141],
            "format": "netcdf",
        },
        OUT,
    )

ds = xr.open_dataset(OUT)
# Beberapa file ERA5 pakai 'pressure_level', yang lain pakai 'level'
plev_coord = "pressure_level" if "pressure_level" in ds.coords else "level"

# Geopotensial (m²/s²) → tinggi geopotensial (m)
g0 = 9.80665
z500 = ds["z"].sel({plev_coord: 500}) / g0

print("Dataset variables:", list(ds.data_vars))
print("Dimensions:", dict(ds.sizes))
print(f"z500 shape: {z500.shape}, units: m")
print(f"z500 range: {float(z500.min()):.1f} m  to  {float(z500.max()):.1f} m")
Dataset variables: ['z']
Dimensions: {'valid_time': 366, 'pressure_level': 2, 'latitude': 69, 'longitude': 185}
z500 shape: (366, 69, 185), units: m
z500 range: 5814.6 m  to  5937.4 m

Output di atas menampilkan dimensi dataset dan rentang nilai Z500 untuk seluruh domain Indonesia sepanjang 2024. Nilai sekitar 5.500–5.900 m di 500 hPa konsisten dengan kondisi tropis di mana kolom troposfer hangat mengangkat isobar ke ketinggian lebih tinggi dibanding lintang tinggi.

Menghitung Anomali Tinggi Geopotensial

Sinyal gelombang Rossby tidak mudah terbaca dari field Z500 absolut karena nilai rata-ratanya sudah sangat besar (~5.700 m). Kita perlu mengisolasi anomali — deviasi dari rata-rata temporal pada setiap gridpoint. Ini adalah langkah standar dalam analisis gelombang planet: rata-rata tahunan 2024 berfungsi sebagai baseline satu tahun (bukan klimatologi 30-tahunan yang sebenarnya, tapi cukup untuk diagnostik eksploratif), dan residunya mencerminkan ridge dan trough yang datang silih berganti.

import numpy as np

# Tentukan dimensi waktu (ERA5 memakai 'valid_time' atau 'time')
time_dim = "valid_time" if "valid_time" in z500.dims else "time"

# Anomali terhadap rata-rata 2024 di setiap gridpoint
z500_mean = z500.mean(time_dim)
anom = z500 - z500_mean

print(f"Anomaly field shape: {anom.shape}")
print(f"Mean   = {float(anom.mean()):+.3f} m")
print(f"Std    = {float(anom.std()):.2f} m")
print(f"Min    = {float(anom.min()):+.1f} m")
print(f"Max    = {float(anom.max()):+.1f} m")
print(f"Median = {float(anom.median()):+.2f} m")
Anomaly field shape: (366, 69, 185)
Mean   = -0.000 m
Std    = 12.02 m
Min    = -63.0 m
Max    = +43.7 m
Median = -0.58 m

Mean anomali mendekati nol (secara definisi), sementara standar deviasi dan nilai ekstrem menunjukkan seberapa jauh Z500 bergerak dari kondisi rata-rata. Std ~12 m di domain tropis Indonesia adalah wajar — jauh lebih kecil dari amplitudo gelombang mid-latitude yang bisa mencapai 100–200 m, mencerminkan lemahnya efek-β dan ketiadaan jet stream westerly yang kuat di kawasan ini. Tetapi nilai ekstrem ±40–60 m menunjukkan bahwa gangguan signifikan masih muncul, terutama pada periode aktif equatorial Rossby waves atau ketika ridge subtropis selatan memperluas pengaruhnya ke utara.

Visualisasi Anomali Geopotensial sebagai Peta

Dengan anomali yang sudah terhitung, kita plot snapshot untuk hari dengan amplitudo anomali tertinggi sepanjang 2024. Hari dengan anomali paling ekstrem adalah momen di mana ridge atau trough paling jelas terlihat di atas domain.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import numpy as np

# Pilih hari dengan amplitudo anomali maksimum
abs_max_per_day = np.abs(anom).max(dim=("latitude", "longitude"))
idx = int(abs_max_per_day.argmax())
day = anom.isel({time_dim: idx})
day_str = str(day[time_dim].values)[:10]

fig = plt.figure(figsize=(9, 4.5))
ax = plt.axes(projection=ccrs.PlateCarree())
ax.set_extent([95, 141, -11, 6], crs=ccrs.PlateCarree())
ax.add_feature(cfeature.COASTLINE, linewidth=0.6)
ax.add_feature(cfeature.BORDERS, linewidth=0.3, alpha=0.5)

vmax = float(np.abs(day).max())
cf = ax.contourf(
    day.longitude, day.latitude, day.values,
    levels=np.linspace(-vmax, vmax, 21),
    cmap="RdBu_r",
    transform=ccrs.PlateCarree(),
    extend="both",
)
gl = ax.gridlines(draw_labels=True, linewidth=0.3, alpha=0.5)
gl.top_labels = False
gl.right_labels = False
cb = plt.colorbar(cf, ax=ax, orientation="horizontal", pad=0.08, shrink=0.85)
cb.set_label("Anomali tinggi geopotensial 500 hPa (m)")
ax.set_title(f"Anomali Z500 hPa — {day_str}")
plt.savefig("snippet-3.png", dpi=120, bbox_inches="tight")
plt.close()
print(f"saved snippet-3.png (day={day_str}, vmax={vmax:.1f} m)")

Map of 500 hPa geopotential height anomalies over Indonesia showing ridges and troughs

Pada peta di atas, warna merah menandai ridge (anomali positif, Z500 lebih tinggi dari rata-rata, sirkulasi antisiklonik), sedangkan warna biru menandai trough (anomali negatif, Z500 lebih rendah, sirkulasi siklonik). Pola ridge–trough yang berselang-seling secara zonal adalah tanda visual gelombang Rossby yang melintasi domain. Di tepi selatan domain (dekat 10°LS), sinyal biasanya lebih kuat karena pengaruh jet subtropis Belahan Bumi Selatan yang lebih terasa di situ.

Diagram Hovmöller untuk Melihat Propagasi Gelombang

Snapshot satu hari hanya memperlihatkan keadaan sesaat. Untuk melihat propagasi gelombang — apakah pola bergerak ke barat atau ke timur, dan seberapa cepat — kita butuh diagram Hovmöller: sumbu-x adalah bujur, sumbu-y adalah waktu, warna adalah anomali rata-rata pada band lintang tertentu.

Kita pilih band 10°LS–5°LS untuk menangkap sinyal di batas selatan domain yang lebih terpengaruh variabilitas subtropis. Fitur yang merambat ke barat muncul sebagai pita miring dari kanan-bawah ke kiri-atas (bujur menurun saat waktu bertambah). Fitur yang merambat ke timur tampak sebaliknya.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np

# Rata-ratakan anomali di band lintang 10°LS–5°LS
# ERA5 latitude berurutan menurun (6, 5.75, ..., -11)
lat_band = anom.sel(latitude=slice(-5, -10))
hov = lat_band.mean("latitude")          # shape: (time, longitude)
times = hov[time_dim].values
lons  = hov.longitude.values

vmax = float(np.abs(hov).quantile(0.98))
fig, ax = plt.subplots(figsize=(8, 6))
cf = ax.contourf(
    lons, times, hov.values,
    levels=np.linspace(-vmax, vmax, 21),
    cmap="RdBu_r",
    extend="both",
)
ax.set_xlabel("Longitude (°E)")
ax.set_ylabel("Waktu (2024)")
ax.set_title("Hovmöller Z500 hPa Anomali — Rata-rata 10°LS–5°LS")
cb = plt.colorbar(cf, ax=ax)
cb.set_label("Anomali (m)")
fig.autofmt_xdate()
plt.savefig("snippet-4.png", dpi=120, bbox_inches="tight")
plt.close()
print(f"saved snippet-4.png ({len(times)} days × {len(lons)} lons)")

Hovmöller diagram of 500 hPa geopotential anomalies showing westward-propagating waves over Indonesia

Pada diagram Hovmöller di atas, perhatikan pita-pita miring. Jika pita berwarna seragam miring dari kanan-bawah ke kiri-atas (bujur lebih besar di awal waktu, bujur lebih kecil di akhir waktu), itu menunjukkan fitur yang merambat ke barat — sesuai dengan karakter equatorial Rossby waves. Sebaliknya, pita yang miring dari kiri-bawah ke kanan-atas mengindikasikan propagasi ke timur, yang lebih khas Kelvin waves. Di banyak periode, kita akan menemukan campuran keduanya, mencerminkan kompleksitas dinamika Benua Maritim.

Kemiringan pita juga menyiratkan kecepatan fase: pita curam berarti propagasi cepat, pita landai berarti lambat. Equatorial Rossby waves biasanya merambat dengan kecepatan ~5–8 m/s ke barat.

Penutup dan Langkah Berikutnya

Kita telah melewati seluruh alur kerja dasar: unduh geopotensial ERA5 500 hPa lewat cdsapi, konversi ke tinggi geopotensial, hitung anomali terhadap rata-rata 2024, visualisasikan sebagai peta snapshot, dan akhirnya baca propagasi gelombang lewat diagram Hovmöller. Hasilnya adalah dua plot yang bisa langsung dikomunikasikan ke rekan-rekan forecaster sebagai diagnostik level sinoptik.

Beberapa langkah lanjutan yang menarik untuk dijelajahi:

  • FFT zonal pada satu lintang — hitung Fourier transform dari anomali Z500 di lintang tertentu (misalnya 8°LS) untuk mengidentifikasi wavenumber dominan. Wavenumber 5–10 biasanya lebih dominan di domain Indonesia dibanding wavenumber planet 1–3.
  • Korelasi silang dengan curah hujan — bandingkan fase ridge/trough Z500 dengan anomali curah hujan dari ERA5 total_precipitation atau IMERG. Trough aktif sering kali bertepatan dengan konveksi kuat dan curah hujan di atas rata-rata.
  • Level 200 hPa — untuk melihat struktur vertikal gelombang, tambahkan analisis geopotensial di 200 hPa (level jet stream atas) dan bandingkan dengan 500 hPa.
  • Perbandingan dengan MJO — plot fase RMM (Real-time Multivariate MJO) di atas diagram Hovmöller untuk melihat bagaimana MJO memodulasi amplitudo dan kecepatan propagasi gelombang Rossby khatulistiwa, pola yang terbukti relevan dalam genesis Seroja 2021.
  • Vortisitas relatif — hitung curl dari u/v wind ERA5 di level yang sama untuk mengonfirmasi bahwa trough Z500 memang berkorespondensi dengan anomali vortisitas positif yang kita harapkan dari teori.

Eksplorasi artikel meteorologi lainnya di meteo.my.id — mulai dari analisis tekanan permukaan, visualisasi angin dengan quiver plot, hingga deteksi cold surge dari data suhu 2 m ERA5. Kunjungi arsip lengkap di meteo.my.id.

Referensi

Tidak ada komentar:

Posting Komentar