Pengolahan data MAWS#

Impor pustaka python yang dibutuhkan #

import numpy as np
import sys
from diklatmar import loader

Lokasi Data#

Lokasi Data Diklat#

dir_data = "/data/local/marine-training/data/MATPEL_03/MAWS_BMKG"

Lokasi Meta file#

Metadata AWS Existing#

fnme_meta1 = "metadata_existing.csv"

Buka metadata 1#

data = loader(dir_data)
df_meta1 = data.meta(fnme_meta1)
2025-05-07 14:04:41 :	I	Loaded metadata from metadata_existing.csv
# Menampilkan tabel metadata
print(df_meta1)
                                      station   latitude   longitude
id                                                                  
1000000009           AWS_Maritim__Ujung_Kulon  -6.815362  105.482341
3000000001                 AWS_Maritim_Bungus  -1.029570  100.395900
3000000002                AWS_Maritim_Kendari  -3.978255  122.597562
3000000004              AWS_Maritim_Bakauheni  -5.869730  105.755494
3000000006          AWS_Maritim_Tanjung_Perak  -7.196366  112.741795
3000000007    AWS_Maritim_Banyuwangi_Ketapang  -8.142775  114.401037
3000000008                AWS_Maritim_Maumere  -8.621250  122.219722
3000000009          AWS_Maritim_Tanjung_Priok  -6.121360  106.838106
3000000010                 AWS_Maritim_Bitung   1.458697  125.217993
3000000011              AWS_Maritim_Pontianak  -0.020613  109.337349
3000000012          AWS_Maritim_Lembar_Lombok  -8.730206  116.073726
3000000014               AWS_Maritim_Semarang  -6.943510  110.431310
3000000015                AWS_Maritim_Paotere  -5.109306  119.419730
3000000016        AWS_Maritim_Dermaga_7_Merak  -5.922931  105.991811
3000000017                AWS_Maritim_Cilacap  -7.724845  109.023000
3000000018             AWS_Maritim_Kep_Seribu  -5.656575  106.574023
3000000020       AWS_Maritim_Kota_Baru_Kalsel  -3.271340  116.180070
3000000022                AWS_Maritim_Belinyu  -1.629848  105.733411
3000000023  AWS_Maritim_Tanjung_Balai_Karimun   0.988130  103.435320
3000000024               AWS_Maritim_Pemenang  -8.393633  116.099609
3000000025                AWS_Maritim_Bau_Bau  -5.457129  122.615760
3000000026     AWS_Maritim_Tigaras_Danau_Toba   2.798000   98.789083
3000000027               AWS_Maritim_Ciwandan  -6.014820  105.951580
3000000028                  AWS_Maritim_Ambon  -3.696242  128.173943
3000000029         AWS_Maritim_Dok_IIJayapura  -2.535071  140.718554
3000000030                  AWS_Maritim_Batam   1.164722  103.996670
3000000031            AWS_Maritim_Probolinggo  -7.726563  113.225716
3000000032                AWS_Maritim_Nunukan   4.145324  117.665538
3000000033             AWS_Maritim_Balikpapan  -1.162981  116.780232
3000000034                  AWS_Maritim_Benoa  -8.747114  115.208687
3000000035                 AWS_Maritim_Sorong  -0.888814  131.266570
3000000036                 AWS_Maritim_Kupang -10.188707  123.527018
3000000037                AWS_Maritim_Ternate   0.813629  127.388821
3000000038                 AWS_Maritim_Sabang   5.889736   95.319380
3000000046              AWS_Maritim_Gilimanuk  -8.161093  114.437265
3000000047              AWS_Maritim_Padangbai  -8.533838  115.509487

Metadata AWS MMS 1#

fnme_meta2 = "metadata_mms1.csv"

Buka metadata 2#

df_meta2 = data.meta(fnme_meta2)
2025-05-07 14:04:41 :	I	Loaded metadata from metadata_mms1.csv
# Menampilkan tabel metadata
print(df_meta2)
                                station   latitude   longitude
id                                                            
4000000001            AWS_Maritim_BAJOE  -4.543464  120.405456
4000000002            AWS_Maritim_JAMBI  -0.803240  103.483000
4000000027    AWS_Maritim_KUALA_TANJUNG   3.380154   99.469821
4000000005      AWS_Maritim_LABUAN_BAJO  -8.460550  119.919900
4000000007           AWS_Maritim_MALANG  -8.434172  112.683796
4000000034           AWS_Maritim_NATUNA   3.892710  108.383400
4000000010        AWS_Maritim_PALEMBANG  -2.217510  104.488350
4000000011             AWS_Maritim_PALU  -0.711692  119.857228
4000000012    AWS_Maritim_PANGKALAN_BUN  -2.739063  111.728834
4000000013          AWS_Maritim_PANJANG  -5.469986  105.319980
4000000016           AWS_Maritim_SADENG  -8.191283  110.799452
4000000017        AWS_Maritim_SAMARINDA  -0.570467  117.206440
4000000020       AWS_Maritim_ULEE_LHEUE   5.566502   95.294757
4000000021           AWS_Maritim_MANADO   1.497902  124.839557
4000000023           AWS_Maritim_TIDORE   0.680083  127.455880
4000000024          AWS_Maritim_MERAUKE  -8.478508  140.380499
4000000025            AWS_Maritim_TEGAL  -6.848089  109.127352
4000000026          AWS_Maritim_BELAWAN   3.785223   98.700572
4000000028             AWS_Maritim_TUAL  -5.616902  132.741513
4000000029      AWS_Maritim_KARIMUNJAWA  -5.878397  110.429594
4000000031  AWS_Maritim_TANGKIANG_LUWUK  -1.210097  122.629740
4000000033    AWS_Maritim_BELANG_BELANG  -2.473550  119.131067
4000000036       AWS_Maritim_GARONGKONG  -4.366579  119.612001
4000000037             AWS_Maritim_ROTE -10.722342  123.043262
4000000038         AWS_Maritim_TOROBULU  -4.445947  122.456296
4000000039             AWS_Maritim_BIAK  -1.185679  136.076831
4000000040             AWS_Maritim_BIRA  -5.606003  120.466757
4000000041          AWS_Maritim_PACIRAN  -6.865680  112.367521
4000000042         AWS_Maritim_SAUMLAKI  -7.981906  131.290586
4000000043  AWS_Maritim_KAYANGAN_LOMBOK  -8.485700  116.673984
4000000044            AWS_Maritim_AMBON  -3.790782  128.101176

Plot lokasi MAWS#

Load lokasi MAWS berdasarkan metadata#

lons1 = df_meta1["longitude"].values
lats1 = df_meta1["latitude"].values
lons2 = df_meta2["longitude"].values
lats2 = df_meta2["latitude"].values

locs1 = np.column_stack((lons1, lats1))
locs2 = np.column_stack((lons2, lats2))

imdir = "./imgs"
exts = [95, 135, -10, 10]
data_lons = [100, 105, 110, 115, 120]
data_lats = [-5, -5, -5, -5, -5]
data_points = np.column_stack((data_lons, data_lats))

Plot MAWS#

from diklatmar import plotter

maws = plotter(img_dir=imdir)
maws.plot_aws_location(awslocs1=locs1, awslocs2=locs2)
# maws.plot_aws_location()
2025-05-07 14:04:42 :	I	Using default extents = [90, 145, -15, 15]
2025-05-07 14:04:42 :	I	Creating plot, please kindly wait...
../_images/3ccae4804d2e956da858a02e06144da6b6edc45b45db90a2f4f394b4bf03c2b9.png

!!! Pertanyaan 1 !!!#

Coba buat plot berisi lokasi MAWS disekitar wilayah kerja anda

# Write your code here

Catatan !!!#

Beberapa data MAWS tidak tersedia secara lengkap untuk periode 2023–2024.

Akses Data#

Data observasi yang didapatkan dari MAWS disimpan dalam file dengan format .parquet. Format data ini dipilih karena efisiensi dalam penyimpanan dan pengambilan data. Selain itu, format ini menyediakan skema kompresi dan penyandian berkinerja tinggi untuk menangani data yang kompleks dalam jumlah besar dan didukung oleh banyak bahasa pemrograman dan alat analisis.

Untuk memuat atau membaca data, kita akan memerlukan pustaka python pandas. Pada bahasan berikut akan diberikan contoh mengakses data secara manual maupun dengan menggunakan modul yang telah disiapkan.

Contoh akses data#

Akses data secara manual#

Definisikan lokasi/path file#

file_path = "/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=12/23.parquet"

'''
Pada pelatihan ini, file disusun berdasarkan tahun, bulan, dan tanggal. 
Berikut merupakan contoh untuk mengakses satu tanggal (23) pada tahun 2024 bulan 12 untuk AWS_Maritim__Ujung_Kulon
''';

Load data menggunakan pustaka Pandas#

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
data_maws = pd.read_parquet(file_path)
# data_maws.index = pd.to_datetime(data_maws.index, format="%Y-%m-%d %H:%M:%S")
data_maws
windspeed winddir temp rh pressure rain solrad netrad watertemp waterlevel ta_min ta_max pancilevel pancitemp
time
2024-12-23 02:57:00 4.7 17.0 26.4 91.5 1010.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2024-12-23 02:58:00 4.7 17.0 26.5 92.1 1010.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2024-12-23 02:59:00 4.8 16.0 26.5 91.6 1010.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2024-12-23 03:00:00 5.2 15.0 26.6 91.7 1010.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2024-12-23 03:01:00 4.8 16.0 26.6 91.1 1010.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2024-12-23 17:30:00 5.1 13.0 26.8 92.7 1009.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2024-12-23 17:31:00 4.4 11.0 26.8 92.6 1009.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2024-12-23 17:32:00 4.9 11.0 26.9 92.6 1009.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2024-12-23 17:33:00 5.0 12.0 26.9 92.6 1009.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2024-12-23 17:34:00 4.1 15.0 26.9 92.8 1009.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

877 rows × 14 columns

isinstance(data_maws.index, pd.DatetimeIndex)
True
data_maws['rh'].plot(figsize=(10, 5))  # width=10, height=5 (dalam satuan inch)
plt.title("Grafik")
plt.xlabel("Waktu")
plt.ylabel(r"$RH \ [$%$]$")
plt.grid(True)
plt.show()
%time
../_images/867b0ed310df607df477fb519fe2fc95bd1604782c716fbef22744d6603c7a14.png
CPU times: user 7 μs, sys: 0 ns, total: 7 μs
Wall time: 13.8 μs

!!! Pertanyaan 2 !!!#

Mengakses dan membuat grafik sederhana untuk parameter suhu udara dan kelembapan nisbi

# Write your code here

Bagaimana memuat data selama satu bulan?#

Membuat daftar path file yang terdapat pada satu direktori bulan tertentu#
import os
path2dir = "/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11"
fl_path_list = sorted([os.path.join(path2dir, f) for f in os.listdir(path2dir) if f.endswith('.parquet')])
fl_path_list
['/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/01.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/02.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/03.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/04.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/05.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/06.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/07.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/08.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/09.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/10.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/11.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/12.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/13.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/14.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/15.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/16.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/17.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/18.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/19.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/20.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/21.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/22.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/23.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/24.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/25.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/26.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/27.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/28.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/29.parquet',
 '/data/local/marine-training/data/MATPEL_03/MAWS_BMKG/1000000009-AWS_Maritim__Ujung_Kulon/Year=2024/Month=11/30.parquet']
Membaca dan memuat data#

Membaca masing-masing file harian dalam bentuk dataframe kemudian menyimpannya ke dalam list, selanjutnya menggabungkannya menggunakan pd.concat()

df_list = []
for fl in fl_path_list:
    df = pd.read_parquet(fl)
    df_list.append(df)
    
df_month = pd.concat(df_list)
df_month
windspeed winddir temp rh pressure rain solrad netrad watertemp waterlevel ta_min ta_max pancilevel pancitemp
time
2024-11-01 00:00:00 0.0 91.0 26.8 92.5 1010.4 0.0 0.0 0.0 0.0 1.195 0.0 0.0 0.0 0.0
2024-11-01 00:01:00 0.1 84.0 26.9 92.2 1010.4 0.0 0.0 0.0 0.0 1.196 0.0 0.0 0.0 0.0
2024-11-01 00:02:00 0.2 88.0 26.9 92.4 1010.4 0.0 0.0 0.0 0.0 1.186 0.0 0.0 0.0 0.0
2024-11-01 00:03:00 0.6 103.0 26.9 92.2 1010.4 0.0 0.0 0.0 0.0 1.199 0.0 0.0 0.0 0.0
2024-11-01 00:04:00 0.9 88.0 27.0 91.4 1010.4 0.0 0.0 0.0 0.0 1.201 0.0 0.0 0.0 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2024-11-30 23:55:00 0.4 113.0 25.8 98.8 1008.8 0.0 0.0 0.0 0.0 1.192 0.0 0.0 0.0 0.0
2024-11-30 23:56:00 0.5 113.0 25.8 98.8 1008.9 0.0 0.0 0.0 0.0 1.184 0.0 0.0 0.0 0.0
2024-11-30 23:57:00 0.5 110.0 25.8 98.8 1008.9 0.0 0.0 0.0 0.0 1.182 0.0 0.0 0.0 0.0
2024-11-30 23:58:00 0.4 110.0 25.8 98.7 1008.9 0.0 0.0 0.0 0.0 1.183 0.0 0.0 0.0 0.0
2024-11-30 23:59:00 0.4 110.0 25.7 98.6 1008.9 0.0 0.0 0.0 0.0 1.186 0.0 0.0 0.0 0.0

39561 rows × 14 columns

isinstance(df_month.index, pd.DatetimeIndex)
True
df_month['temp'].plot(figsize=(10, 5))  # width=10, height=5 (dalam satuan inch)
plt.title("Grafik")
plt.xlabel("Waktu")
plt.ylabel(r"$Air \ Temp \ [\circ C]$")
plt.grid(True)
plt.show()
../_images/979436e2de58e256ed9ff878a0a24bc8eaa1c322c24d1fb29073a068af34425e.png

Bagaimana menyeleksi data dari resolusi tiap menit menjadi data setiap 10 menit?#

df_month_10min = df_month.resample('10min').first()
df_month_10min
windspeed winddir temp rh pressure rain solrad netrad watertemp waterlevel ta_min ta_max pancilevel pancitemp
time
2024-11-01 00:00:00 0.0 91.0 26.8 92.5 1010.4 0.0 0.0 0.0 0.0 1.195 0.0 0.0 0.0 0.0
2024-11-01 00:10:00 0.5 89.0 27.3 91.9 1010.4 0.0 0.0 0.0 0.0 1.209 0.0 0.0 0.0 0.0
2024-11-01 00:20:00 0.9 95.0 27.6 91.0 1010.6 0.0 0.0 0.0 0.0 1.208 0.0 0.0 0.0 0.0
2024-11-01 00:30:00 0.1 88.0 27.9 90.1 1010.8 0.0 0.0 0.0 0.0 1.196 0.0 0.0 0.0 0.0
2024-11-01 00:40:00 0.7 92.0 28.4 88.5 1010.8 0.0 0.0 0.0 0.0 1.193 0.0 0.0 0.0 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2024-11-30 23:10:00 0.3 89.0 25.4 98.5 1008.2 0.0 0.0 0.0 0.0 1.259 0.0 0.0 0.0 0.0
2024-11-30 23:20:00 0.1 123.0 25.4 98.6 1008.5 0.0 0.0 0.0 0.0 1.237 0.0 0.0 0.0 0.0
2024-11-30 23:30:00 0.0 112.0 25.5 98.7 1008.5 0.0 0.0 0.0 0.0 1.245 0.0 0.0 0.0 0.0
2024-11-30 23:40:00 0.8 113.0 25.5 98.6 1008.6 0.0 0.0 0.0 0.0 1.230 0.0 0.0 0.0 0.0
2024-11-30 23:50:00 0.3 103.0 25.7 98.9 1008.7 0.0 0.0 0.0 0.0 1.213 0.0 0.0 0.0 0.0

4320 rows × 14 columns

!!!!! PENTING !!!!!#

Mohon membaca lebih lanjut mengenai resampling:

  1. Time Offset String

  2. User guide

!!! Pertanyaan 3 !!!#

Mengakses dan membuat grafik sederhana untuk parameter suhu udara dan kelembapan nisbi untuk periode 1 bulan dengan resolusi temporal 1 jam

# Write your code here

Akses data menggunakan modul yang telah disiapkan#

Pada bagian impor pustaka di awal notebook ini, kita telah mengimpor modul yang telah disiapkan: diklatmar. Pada modul tersebut terdapat submodul: plotter dan loader. Submodul plotter digunakan untuk keperluan plotting sedangkan loader digunakan untuk keperluan mengakses dan memuat data. Berikut merupakan contoh untuk menggunakan submodul loader untuk mengakses data. Bedanya dengan mteode manual sebelumnya, memuat data menggunakan submodul loader akan langsung memuat data satu bulan.

Inisialisasi submodul dengan direktori data#

data_load = loader(data_dir=dir_data)

Muat data AWS#

# Contoh ini menggunakan data MAWS Ujung Kulon
id_aws = 1000000009
tahun = 2024
bulan = 10

aws_data = data_load.maws_data(
    id_aws=id_aws,
    year=tahun,
    month=bulan
)
2025-05-07 14:05:14 :	I	Found AWS id: 1000000009
2025-05-07 14:05:14 :	I	Found year: 2024
2025-05-07 14:05:14 :	I	Found month: 10
2025-05-07 14:05:14 :	I	Loaded 10 files with 13535 records.
aws_data
windspeed winddir temp rh pressure rain solrad netrad watertemp waterlevel ta_min ta_max pancilevel pancitemp
time
2024-10-22 00:00:00 0.0 0.0 0.0 0.0 1012.3 0.0 0.0 0.0 0.0 2.160 0.0 0.0 0.0 0.0
2024-10-22 00:01:00 0.0 0.0 0.0 0.0 1012.3 0.0 0.0 0.0 0.0 2.153 0.0 0.0 0.0 0.0
2024-10-22 00:02:00 0.0 0.0 0.0 0.0 1012.3 0.0 0.0 0.0 0.0 2.159 0.0 0.0 0.0 0.0
2024-10-22 00:03:00 0.0 0.0 0.0 0.0 1012.3 0.0 0.0 0.0 0.0 2.159 0.0 0.0 0.0 0.0
2024-10-22 00:04:00 0.0 0.0 0.0 0.0 1012.4 0.0 0.0 0.0 0.0 2.164 0.0 0.0 0.0 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2024-10-31 23:55:00 0.3 101.0 26.8 92.1 1010.4 0.0 0.0 0.0 0.0 1.180 0.0 0.0 0.0 0.0
2024-10-31 23:56:00 0.0 92.0 26.9 92.1 1010.4 0.0 0.0 0.0 0.0 1.182 0.0 0.0 0.0 0.0
2024-10-31 23:57:00 0.1 89.0 26.8 92.2 1010.4 0.0 0.0 0.0 0.0 1.192 0.0 0.0 0.0 0.0
2024-10-31 23:58:00 0.3 83.0 26.9 92.4 1010.4 0.0 0.0 0.0 0.0 1.181 0.0 0.0 0.0 0.0
2024-10-31 23:59:00 0.5 95.0 26.8 92.7 1010.4 0.0 0.0 0.0 0.0 1.184 0.0 0.0 0.0 0.0

13535 rows × 14 columns

Muat dan simpan ke dalam file csv#

# Contoh ini menggunakan data MAWS Ujung Kulon
id_aws = 1000000009
tahun = 2024
bulan = 10
dir_saving = '/home/dika/Diklat_Mar_2025/results/csv_files'

aws_data = data_load.maws_data(
    id_aws=id_aws,
    year=tahun,
    month=bulan,
    save_data=True,
    sv_dir=dir_saving
)
2025-05-07 14:05:14 :	I	Found AWS id: 1000000009
2025-05-07 14:05:14 :	I	Found year: 2024
2025-05-07 14:05:14 :	I	Found month: 10
2025-05-07 14:05:14 :	I	Loaded 10 files with 13535 records.
---------------------------------------------------------------------------
PermissionError                           Traceback (most recent call last)
Cell In[27], line 7
      4 bulan = 10
      5 dir_saving = '/home/dika/Diklat_Mar_2025/results/csv_files'
----> 7 aws_data = data_load.maws_data(
      8     id_aws=id_aws,
      9     year=tahun,
     10     month=bulan,
     11     save_data=True,
     12     sv_dir=dir_saving
     13 )

File ~/marinemet-training/4_/diklatmar/loader.py:84, in loader.maws_data(self, id_aws, year, month, save_data, sv_dir)
     81 self.logging(MSG_INFO, f"Loaded {len(parquet_files)} files with {len(df_month)} records.")
     83 if save_data:
---> 84     dir2sv = os.makedirs(sv_dir, exist_ok=True)
     85     pth2sv = f"{sv_dir}/{id_aws}_{year_str}_{month_str}.csv"
     86     df_month.to_csv(pth2sv)

File <frozen os>:217, in makedirs(name, mode, exist_ok)

File <frozen os>:217, in makedirs(name, mode, exist_ok)

File <frozen os>:227, in makedirs(name, mode, exist_ok)

PermissionError: [Errno 13] Permission denied: '/home/dika/Diklat_Mar_2025'

!!! Pertanyaan 4 !!!#

Mengakses data MAWS disekitar anda selama satu tahun. Buatlah serta membuat grafik sederhana

# Write your code here