
Sumber: Wikimedia Commons / Michael Jastremski — Creative Commons.
Laju Adiabatik Kering dan Konsepnya
Ketika sebuah parcel udara terangkat ke atas — baik oleh orografi, konvergensi permukaan, maupun gaya apung — tekanan di sekelilingnya turun. Parcel meluas secara adiabatik, tanpa bertukar panas dengan lingkungan, sehingga suhunya menurun. Laju penurunan suhu ini, yang disebut dry adiabatic lapse rate (DALR), menjadi patokan dasar dalam termodinamika atmosfer.
Proses ini bersifat adiabatik karena perpindahan parcel berlangsung jauh lebih cepat dibandingkan laju difusi panas antara parcel dan lingkungan. Dalam konteks meteorologi sinoptik, asumsi adiabatik berlaku baik untuk parcel yang bergerak secara vertikal dalam skala waktu menit hingga jam. Akibatnya, satu-satunya sumber perubahan suhu parcel adalah kerja ekspansi atau kompresi — bukan pertukaran panas langsung.
Nilai DALR diturunkan langsung dari dua konstanta fisika: gravitational acceleration \(g\) dan specific heat at constant pressure \(C_p\) untuk udara kering. Hubungannya sederhana:
$$\Gamma_d \;=\; \frac{g}{C_p} \;\approx\; 9{,}8\ \text{K/km}$$
Artinya, setiap kali parcel udara kering naik sejauh 1 km, suhunya turun sekitar \(9{,}8\ \text{K}\). Nilai ini bersifat konstan selama udara belum jenuh — belum ada kondensasi, belum ada pelepasan latent heat. Konstanta \(C_p\) untuk udara kering bernilai \(1004\ \text{J/kg/K}\), sedangkan \(g\) bernilai \(9{,}80665\ \text{m/s}^2\). Pembagian keduanya langsung memberikan DALR dalam satuan K/m, yang kemudian kita konversi ke K/km untuk kemudahan interpretasi.
Mengapa hal ini penting? Apabila kita membandingkan DALR dengan environmental lapse rate (laju penurunan suhu lingkungan yang sebenarnya), kita dapat menentukan stability kolom atmosfer: apakah parcel yang terangkat akan terus naik (tidak stabil) atau kembali ke posisi awal (stabil). Lingkungan dengan lapse rate melebihi DALR disebut absolutely unstable; lapse rate di bawah SALR disebut absolutely stable; dan di antara keduanya berada dalam kondisi conditionally unstable — tidak stabil hanya jika udara sudah jenuh. Pemahaman ini mendasari analisis parcel ascent yang digunakan dalam pembuatan prognosis konvektif, pembacaan radiosonde, dan perhitungan CAPE.
Snippet berikut menghitung DALR secara langsung dari konstanta fisika menggunakan NumPy.
import numpy as np
# Konstanta fisika udara kering
g = 9.80665 # gravitational acceleration (m/s²)
Cp = 1004.0 # specific heat at constant pressure (J/kg/K)
# Dry adiabatic lapse rate
DALR = g / Cp # K/m
DALR_per_km = DALR * 1000 # K/km
print(f"g = {g} m/s²")
print(f"Cp = {Cp} J/kg/K")
print(f"DALR = g/Cp = {DALR:.5f} K/m")
print(f"DALR = {DALR_per_km:.2f} K/km")
g = 9.80665 m/s²
Cp = 1004.0 J/kg/K
DALR = g/Cp = 0.00977 K/m
DALR = 9.77 K/km
Hasil di atas mengkonfirmasi bahwa \(\Gamma_d \approx 9{,}77\ \text{K/km}\), yang sering dibulatkan menjadi \({\sim}9{,}8\ \text{K/km}\) dalam literatur meteorologi. Konstanta DALR ini akan kita gunakan ulang pada semua snippet berikutnya.
Simulasi Profil Suhu Parcel dan Lingkungan
Dengan DALR yang sudah kita hitung, langkah berikutnya adalah membangun profil vertikal suhu dari permukaan hingga ketinggian 6 km. Kita butuh dua profil: profil suhu parcel yang naik mengikuti DALR, dan profil suhu lingkungan dengan lapse rate yang lebih kecil — mencerminkan kondisi atmosfer stabil secara kondisional.
Profil parcel dihitung sebagai:
$$T_{\text{parcel}}(z) \;=\; T_{\text{surface}} - \Gamma_d \cdot z$$
Sedangkan profil lingkungan menggunakan environmental lapse rate misalnya sebesar \(6{,}5\ \text{K/km}\) — nilai mendekati rata-rata troposfer standar (International Standard Atmosphere):
$$T_{\text{env}}(z) \;=\; T_{\text{surface}} - \Gamma_e \cdot z$$
Perbedaan antara keduanya menentukan apakah parcel lebih hangat (dan lebih ringan) dari lingkungan, sehingga cenderung terus naik.
import numpy as np
# Reuse DALR dari snippet-1
g = 9.80665
Cp = 1004.0
DALR = g / Cp * 1000 # K/km
# Parameter permukaan
T_surface = 300.0 # suhu permukaan (K)
ELR = 6.5 # environmental lapse rate (K/km)
# Grid ketinggian 0–6 km, interval 500 m
z_km = np.arange(0, 6.5, 0.5) # km
# Profil suhu (K)
T_parcel = T_surface - DALR * z_km
T_env = T_surface - ELR * z_km
# Header tabel
print(f"{'z (km)':>7} | {'T_parcel (K)':>12} | {'T_env (K)':>10} | {'ΔT (K)':>8}")
print("-" * 48)
for z, tp, te in zip(z_km, T_parcel, T_env):
delta = tp - te
print(f"{z:7.1f} | {tp:12.2f} | {te:10.2f} | {delta:8.2f}")
z (km) | T_parcel (K) | T_env (K) | ΔT (K)
------------------------------------------------
0.0 | 300.00 | 300.00 | 0.00
0.5 | 295.12 | 296.75 | -1.63
1.0 | 290.23 | 293.50 | -3.27
1.5 | 285.35 | 290.25 | -4.90
2.0 | 280.46 | 287.00 | -6.54
2.5 | 275.58 | 283.75 | -8.17
3.0 | 270.70 | 280.50 | -9.80
3.5 | 265.81 | 277.25 | -11.44
4.0 | 260.93 | 274.00 | -13.07
4.5 | 256.05 | 270.75 | -14.70
5.0 | 251.16 | 267.50 | -16.34
5.5 | 246.28 | 264.25 | -17.97
6.0 | 241.39 | 261.00 | -19.61
Kolom \(\Delta T = T_{\text{parcel}} - T_{\text{env}}\) menunjukkan selisih suhu parcel terhadap lingkungan. Nilai positif berarti parcel lebih hangat dari lingkungan — parcel bersifat buoyant dan akan terus naik. Nilai negatif berarti parcel lebih dingin, menandakan kondisi stabil yang menghambat ascent lebih lanjut. Dari profil ini, kita juga dapat mulai melihat di ketinggian berapa parcel mulai lebih dingin dari lingkungan — yang menjadi dasar deteksi level keseimbangan (equilibrium level).
Perlu diperhatikan bahwa profil lingkungan (T_env) ini adalah profil sintetis dengan ELR konstan 6,5 K/km. Pada kondisi nyata, profil lingkungan berasal dari pengukuran radiosonde atau output model NWP, dan tidak selalu monotonik — bisa ada lapisan inversi suhu di mana suhu justru meningkat dengan ketinggian. Namun untuk membangun intuisi numeris mengenai hubungan DALR dan environmental lapse rate, profil sintetis ini sudah memadai.
Deteksi Level Kondensasi Angkat Numeris
Parcel yang naik secara kering (tanpa kondensasi) tidak selalu tetap kering. Seiring ketinggian bertambah, suhu parcel mendekati dewpoint — titik di mana uap air mulai terkondensasi menjadi droplet awan. Ketinggian di mana suhu parcel bertemu dengan dewpoint disebut lifting condensation level (LCL).
Untuk mendeteksinya secara numeris, kita bangun profil dewpoint yang menurun lebih lambat dari profil suhu parcel. Pendekatan umum: dewpoint menurun sekitar \(1{,}8\ \text{K/km}\) seiring kenaikan parcel (mengikuti aturan praktis untuk udara yang sedikit basah). Kemudian kita cari titik persilangan kedua profil dengan linear interpolation di antara dua titik grid yang mengapitnya.
import numpy as np
# Reuse DALR dan profil parcel dari snippet-2
g = 9.80665
Cp = 1004.0
DALR = g / Cp * 1000 # K/km
T_surface = 300.0
Td_surface = 294.0 # dewpoint di permukaan (K), RH ~70 %
ELR = 6.5 # environmental lapse rate (K/km)
DDR = 1.8 # dewpoint depression rate (K/km)
z_km = np.arange(0, 6.5, 0.5)
T_parcel = T_surface - DALR * z_km
T_dewpt = Td_surface - DDR * z_km
# Selisih: positif = parcel masih lebih hangat dari dewpoint (kering)
diff = T_parcel - T_dewpt
# Deteksi persilangan dengan interpolasi linear
lcl_km = None
for i in range(len(diff) - 1):
if diff[i] > 0 and diff[i + 1] <= 0:
# Interpolasi linear antar titik i dan i+1
frac = diff[i] / (diff[i] - diff[i + 1])
lcl_km = z_km[i] + frac * (z_km[i + 1] - z_km[i])
T_lcl = T_parcel[i] + frac * (T_parcel[i + 1] - T_parcel[i])
break
if lcl_km is not None:
print(f"Lifting Condensation Level (LCL) terdeteksi:")
print(f" Ketinggian LCL = {lcl_km:.2f} km")
print(f" Suhu parcel di LCL = {T_lcl:.2f} K ({T_lcl - 273.15:.2f} °C)")
else:
print("LCL tidak terdeteksi dalam rentang ketinggian yang dihitung.")
Lifting Condensation Level (LCL) terdeteksi:
Ketinggian LCL = 0.75 km
Suhu parcel di LCL = 292.64 K (19.49 °C)
Interpolasi linear antara dua titik grid memberikan estimasi LCL yang cukup akurat untuk keperluan analisis sinoptik. Semakin rapat grid ketinggian, semakin tepat estimasi LCL yang diperoleh. Untuk keperluan operasional yang membutuhkan presisi lebih tinggi, kita dapat menggunakan formula analitik Bolton (1980) yang menurunkan LCL langsung dari suhu permukaan dan dewpoint tanpa perlu grid ketinggian.
Pada kasus ini, dengan dewpoint permukaan sekitar \(294\ \text{K}\) (sekitar \(21\ ^\circ\text{C}\)) dan suhu permukaan \(300\ \text{K}\) (\(27\ ^\circ\text{C}\)), dewpoint depression di permukaan adalah \(6\ \text{K}\). Aturan praktis menyatakan bahwa LCL kira-kira berada pada ketinggian \(125\ \text{m} \times \text{dewpoint depression}\) dalam \(^\circ\text{C}\) — sehingga estimasi kasar kita sekitar \(750\ \text{m}\), yang konsisten dengan hasil interpolasi numeris. Cloud base yang berada di ketinggian \(1\text{–}2\ \text{km}\) adalah tipikal untuk awan kumulus di daerah tropis dengan kelembapan permukaan tinggi.
Perbandingan dengan Laju Adiabatik Jenuh
Setelah LCL terlampaui, kondensasi aktif terjadi dan latent heat dilepaskan ke dalam parcel. Pelepasan panas ini memperlambat laju pendinginan parcel. Kondisi ini dikenal sebagai pendinginan adiabatik jenuh, dengan saturated adiabatic lapse rate (\(\Gamma_s\)) berkisar antara \(5\text{–}6\ \text{K/km}\), jauh lebih kecil dari \(\Gamma_d\).
\(\Gamma_s\) bervariasi tergantung suhu dan tekanan — lebih kecil di troposfer bawah yang hangat karena kapasitas uap air lebih besar (sehingga lebih banyak latent heat yang dilepaskan per kilometer), dan mendekati \(\Gamma_d\) di troposfer atas yang dingin dan kering. Di daerah tropis dekat permukaan, \(\Gamma_s\) bisa serendah \(4\text{–}5\ \text{K/km}\), sementara di lapisan atas troposfer bisa mencapai \(7\text{–}8\ \text{K/km}\). Untuk analisis numeris sederhana ini, kita gunakan nilai representatif \(\Gamma_s = 5{,}5\ \text{K/km}\).
import numpy as np
# Reuse konstanta
g = 9.80665
Cp = 1004.0
DALR = g / Cp * 1000 # K/km
SALR = 5.5 # saturated adiabatic lapse rate (K/km)
T_surface = 300.0
Td_surface = 294.0
DDR = 1.8
z_km = np.arange(0, 6.5, 0.5)
T_parcel_dry = T_surface - DALR * z_km
T_dewpt = Td_surface - DDR * z_km
# Hitung LCL (interpolasi linear)
diff = T_parcel_dry - T_dewpt
lcl_km, T_lcl = None, None
for i in range(len(diff) - 1):
if diff[i] > 0 and diff[i + 1] <= 0:
frac = diff[i] / (diff[i] - diff[i + 1])
lcl_km = z_km[i] + frac * (z_km[i + 1] - z_km[i])
T_lcl = T_parcel_dry[i] + frac * (T_parcel_dry[i + 1] - T_parcel_dry[i])
break
# Profil parcel gabungan: kering di bawah LCL, jenuh di atas LCL
T_parcel_full = np.where(
z_km <= lcl_km,
T_surface - DALR * z_km,
T_lcl - SALR * (z_km - lcl_km)
)
print(f"LCL = {lcl_km:.2f} km | T_LCL = {T_lcl:.2f} K")
print()
print(f"{'z (km)':>7} | {'T_dry (K)':>9} | {'T_full (K)':>10} | {'Fase':>12} | {'Beda T (K)':>10}")
print("-" * 60)
for z, td, tf in zip(z_km, T_parcel_dry, T_parcel_full):
fase = "Kering" if z <= lcl_km else "Jenuh"
beda = td - tf
print(f"{z:7.1f} | {td:9.2f} | {tf:10.2f} | {fase:>12} | {beda:10.2f}")
LCL = 0.75 km | T_LCL = 292.64 K
z (km) | T_dry (K) | T_full (K) | Fase | Beda T (K)
------------------------------------------------------------
0.0 | 300.00 | 300.00 | Kering | 0.00
0.5 | 295.12 | 295.12 | Kering | 0.00
1.0 | 290.23 | 291.29 | Jenuh | -1.05
1.5 | 285.35 | 288.54 | Jenuh | -3.19
2.0 | 280.46 | 285.79 | Jenuh | -5.32
2.5 | 275.58 | 283.04 | Jenuh | -7.46
3.0 | 270.70 | 280.29 | Jenuh | -9.59
3.5 | 265.81 | 277.54 | Jenuh | -11.72
4.0 | 260.93 | 274.79 | Jenuh | -13.86
4.5 | 256.05 | 272.04 | Jenuh | -15.99
5.0 | 251.16 | 269.29 | Jenuh | -18.12
5.5 | 246.28 | 266.54 | Jenuh | -20.26
6.0 | 241.39 | 263.79 | Jenuh | -22.39
Kolom "Beda T" menunjukkan seberapa besar perbedaan antara profil kering dan profil gabungan (kering + jenuh). Di bawah LCL, kedua profil identik. Di atas LCL, profil jenuh lebih hangat karena latent heat memperlambat pendinginan — perbedaan ini semakin besar seiring ketinggian bertambah. Inilah inti dari mengapa awan konvektif yang dalam dapat mencapai troposfer atas: latent heat terus menyuplai energi ke parcel yang naik.
Langkah Selanjutnya dan Kesimpulan
Dari empat snippet di atas, kita telah menunjukkan secara numeris tiga konsep inti parcel ascent:
- \(\Gamma_d \approx 9{,}8\ \text{K/km}\) — laju pendinginan parcel udara kering, diturunkan langsung dari \(g/C_p\).
- LCL — ketinggian di mana suhu parcel menyentuh dewpoint, menandai awal pembentukan awan. Kita deteksi dengan interpolasi linear antara titik-titik grid NumPy.
- \(\Gamma_s \approx 5\text{–}6\ \text{K/km}\) — laju pendinginan jenuh di atas LCL, lebih lambat karena latent heat memperlambat penurunan suhu parcel.
Pendekatan numeris ini sengaja dibuat minimal — hanya NumPy, tanpa dependensi meteorologi khusus — agar mudah direplikasi dan dipahami secara konseptual. Dari sini, ada beberapa arah yang bisa kita eksplorasi selanjutnya: menghitung stability index seperti Lifted Index atau Showalter Index dari profil yang sama, menerapkan metode ini pada data radiosonde nyata (misalnya dari BMKG atau Wyoming Upper Air), atau memperluas simulasi untuk menghitung convective available potential energy (CAPE) sebagai ukuran potensi badai konvektif.
Eksplorasi artikel meteorologi lainnya di meteo.my.id. Kunjungi https://meteo.my.id untuk topik lebih lanjut seputar analisis atmosfer, NWP, dan data science cuaca.
Tidak ada komentar:
Posting Komentar