cara mengekstrak data ncep+

11
Cara mengekstrak data NCEP [}tÅxÄ|Çt] Data angin reanalysis harian yang sering dipergunakan dapat di unduh melalui link berikut. Uwind http://www.esrl.noaa.gov/psd/cgi-bin/db_search/DBListFiles.pl?did=34&tid=26503&vid=1284 Vwind http://www.esrl.noaa.gov/psd/cgi-bin/db_search/DBListFiles.pl?did=34&tid=26503&vid=1285 Sedangkan data angin bulanan dapat di unduh dari link berikut http://www.esrl.noaa.gov/psd/data.ncep.reanalysis.derived.surface.html Ket : dimensi 2,5 derajat x 2,5 derajat. (1) Ekstrak menggunakan GrADS Install PCGrADS yang dapat di unduh dari (http://grads.iges.org/grads/head/html ). Data yang akan di ekstrak terlebih dahulu di copy ke dalam folder win32e ((C: ) > Program Files > PCGrADS > Win32e) Dan berikut adalah contoh pengambilan data pada longitude 95; latitude -5; syntax nya : Gambar contoh penulisan script pada GrADS

Upload: apriadi-budi-raharja

Post on 14-Sep-2015

166 views

Category:

Documents


19 download

DESCRIPTION

forcasting windrose

TRANSCRIPT

  • Cara mengekstrak data NCEP [}tx|t]

    Data angin reanalysis harian yang sering dipergunakan dapat di unduh melalui link berikut.

    Uwind http://www.esrl.noaa.gov/psd/cgi-bin/db_search/DBListFiles.pl?did=34&tid=26503&vid=1284

    Vwind http://www.esrl.noaa.gov/psd/cgi-bin/db_search/DBListFiles.pl?did=34&tid=26503&vid=1285

    Sedangkan data angin bulanan dapat di unduh dari link berikut

    http://www.esrl.noaa.gov/psd/data.ncep.reanalysis.derived.surface.html

    Ket : dimensi 2,5 derajat x 2,5 derajat.

    (1) Ekstrak menggunakan GrADS

    Install PCGrADS yang dapat di unduh dari (http://grads.iges.org/grads/head/html). Data yang

    akan di ekstrak terlebih dahulu di copy ke dalam folder win32e ((C: ) > Program Files > PCGrADS > Win32e)

    Dan berikut adalah contoh pengambilan data pada longitude 95; latitude -5; syntax nya :

    Gambar contoh penulisan script pada GrADS

  • Tulis seperti yang ada di dalam kotak merah. Kemudian akhiri dengan menulis disable fwrite

    File yang sudah di ekstrak nina.dat masih dalam bentuk biner, yang harus di rubah ke dalam

    bentuk ascii.

    Waktu (t) pada data bulanan dan harian dapat diperhitungkan secara manual dengan patokan 1

    adalah tanggal 1 bulan 1 tahun 1948. Sehingga pada contoh diatas, arti dari set t 713 725 adalah

    pemilihan waktu bulan mei tahun 2007 (713) sampai bulan Mei tahun 2008 (725).

    Untuk merubah file biner ke dalam ascii, diperlukan MATLAB, dengan script file .m adalah sbb:

    Gambar contoh file editor di Matlab (.m)

    Ubah input file (kotak orange) sesuai dengan file yang kita akan pergunakan, kemudian ubah file

    output nya (kotak hijau).

    File output adalah bentuk nilai u wind secara time series, sesuai dengan yang kita inginkan.

    Untuk mendapatkan nilai v wind, lakukan hal yang sama, ubah file inputnya vwnd.mon.mean.nc

    Masing2 file output u dan v yang sudah dalam bentuk ascii, di buka di excel dengan format sbb:

  • Gambar contoh perhitungan u-v menjadi kecepatan-arah

    Fungsi pada speed adalah : =SQRT((B2)^2+(C2)^2)

    Fungsi pada arah(radian) : =ASIN(C2/D2)

    Fungsi pada arah(derajat) : =DEGREES(E2)

    Fungsi pada arah(derajatOK) : =IF(F2

  • Gambar contoh data inputan WRPLOT

    Kemudian buka WRPLOT > Tools > Import from Excel. Upload data excel dengan mengklik .

    Ubah Excel column name dengan mendefinisi kan parameter yang diminta sesuai dengan letak

    kolom pada file Excel anda. Ubah First Row sesuai dengan data yang ada. Set Station

    information dengan data sembarang, kemudian klik Import > save. Setelah itu klik Add File,

    upload data (.sam) yang telah kita save sebelumnya. Klik Tab Windrose untuk melihat hasil

    gambar.

  • Gambar Contoh pendefinisian nama kolom.

    Contoh gambar windrose hasil plot di WRPLOT.

  • Jika anda memiliki software MIKE 21, anda dapat menggunakan tools plot composer untuk

    membuat gambar windrose.

    Terlebih dahulu buat data (.dfs0) dari MIKE ZERO > New > File > New > Time Series > OK > Blank

    Time series > OK > Set waktu, time step adalah 30 hari, jika data anda bulanan, no. of time step

    adalah banyaknya data, jika 1 tahun berarti 12 data; Set Item Information dengan merubah type

    u-velocity, kemudian insert > tambahkan type v-velocity (Jika data anda adalah arah dan

    kecepatan, ubah u-velocity menjadi speed, v-velocity menjadi direction) > OK > Save As file

    (.dfs0).

    MIKE ZERO > PLOT COMPOSER > Plot > Insert New Plot Object > Wind/Current Rose Plot > OK

    Kemudian muncul window Plot Properties

    Gambar window plot properties.

    Kemudian load data (.dfs0); jangan lupa definiskan jenis data u-v atau magnitude-direction.

    Load data

  • Contoh gambar windrose yang di plot dr MIKE.

  • (2) Ekstrak Menggunakan MATLAB

    Dapat langsung membuat vector angin di Matlab dan membaca data NCEP

    Buat file .m di matlab dengan syntax :

    clear all;

    close all;

    nc=netcdf('vwnd.mon.mean.nc','nowrite'); % buka file data angin komponen utara-selatan

    % dan bagaimana cara meresample sesuai resolusi yang diinginkan

    % agus setiawan - 2007

    % contoh ekstraksi data netcdf dari ncep utk wilayah indonesia

    % baca lintang dan bujur xgrid=nc{'lon'}(:); ygrid=nc{'lat'}(:); % hitung jumlah sel arah lintang dan bujur ny=size(ygrid,1); nx=size(xgrid,1); % baca faktor skala dan offset

    scalef=nc{'vwnd'}.scale_factor(:); addoff=nc{'vwnd'}.add_offset(:); % membaca data angin komponen utara-selatan

    % hanya di ambil pada jam pertama saja

    v_wind=nc{'vwnd'}(725,:); % kalikan/jumlahkan dengan faktor skala dan offset v_wind=v_wind.*scalef+addoff;

    % buka file data angin komponen timur-barat

    nc=netcdf('uwnd.mon.mean.nc','nowrite');

    % membaca data angin komponen timur-barat

    % hanya di ambil pada jam pertama saja

    u_wind=nc{'uwnd'}(725,:);

    % kalikan/jumlahkan dengan faktor skala dan offset u_wind=u_wind.*scalef+addoff;

    % perhatikan baik-baik!

    % data ncep memiliki 2 format grid

    % 1. fixed (2.5 x 2.5 derajat dengan jumlah sel 73 x 144) % 2. gaussian (T62 dengan jumlah sel 94 x 192) % jalankan ncdump untuk melihat format gridnya

    % set sel='fixed' atau sel='gauss'

    sel='fixed';

    if(sel=='fixed'),

    e Waktu, untuk bulan Mei 2008

  • dx=2.5; % selang sel dalam derajat

    % definisi untuk daerah indonesia

    lat_north = -5.0 ; % sel baris ke-34

    lat_south = -10.0; % sel baris ke-42

    lon_west = 100.0; % sel kolom ke-39

    lon_east = 115.0; % sel kolom ke-58

    %definisikan sel dalam bentuk lintang-bujur untuk keperluan resampling [lon,lat]=meshgrid(lon_west:dx:lon_east,lat_south:dx:lat_north);

    % indeks untuk ekstraksi

    % nilai ini bisa dicari dengan cara:

    % for i=1:144, lon(i)=(i-1)*360/144; % for i=1:73, lat(i)=(i-1)*180/73;

    baris_awal = 39;

    baris_akhir= 41;

    kolom_awal = 41;

    kolom_akhir= 47;

    % ekstrak daerah indonesia

    u_wind_ind=u_wind(baris_awal:baris_akhir,kolom_awal:kolom_akhir); v_wind_ind=v_wind(baris_awal:baris_akhir,kolom_awal:kolom_akhir);

    elseif(sel=='gauss'),

    lat_temp=[6.6666 4.7618379592896... 2.8571028709412 0.9523676037788 -0.9523676037788...

    -2.8571028709412 -4.7618379592896 -6.6665730476379...

    -8.5713081359863 -10.4760417938232 ];

    lat_temp=lat_temp';

    lon_temp=93.75:1.875:120;

    lat1=zeros(size(lat_temp,1),size(lon_temp,2)); for i=1:size(lat1,2), lat(:,i)=lat_temp(:)+lat1(:,i); end

    lon1=zeros(size(lat_temp,1),size(lon_temp,2)); for i=1:size(lon1,2), lon(:,i)=lon_temp(i)+lon1(:,i); end

    %lat_north = 8.5713081359863; % sel baris ke-43

    %lat_south = -12.3807764053345; % sel baris ke-54

    %lon_west = 93.75; % sel kolom ke-51

    %lon_east = 142.5; % sel kolom ke-77

    % indeks untuk ekstraksi

    Set daerah yang diinginkan

    Baris dan kolom berdasarkan perhitungan manual, hitung manual dengan

    penambahan atau pengurangan 2,5. Mis. -2.5 berarti baris ke 38

  • % nilai ini bisa dicari dengan cara:

    % for i=1:192, lon(i)=(i-1)*360/192; % [xlat,dlat,sinc]=gauss2lats(nlat); % perlu fungsi eksternal gauss2lats

    baris_awal = 44;

    baris_akhir= 53;

    kolom_awal = 51;

    kolom_akhir= 65;

    % ekstrak daerah indonesia

    u_wind_ind=u_wind(baris_awal:baris_akhir,kolom_awal:kolom_akhir); v_wind_ind=v_wind(baris_awal:baris_akhir,kolom_awal:kolom_akhir);

    end % if

    % definisikan parameter untuk resample

    dx_r=0.04;

    lat_r_north = -5.0; % batas utara

    lat_r_south = -10.0; % batas selatan

    lon_r_west = 100.0; % batas barat

    lon_r_east = 115.0; % batas timur

    [lon_r,lat_r]=meshgrid(lon_r_west:dx_r:lon_r_east,... lat_r_south:dx_r:lat_r_north); %[lon_r_n,lat_r_n]=[lon_r_west,lat_r_south]; % interpolasi

    % catatan:

    % tersedia 4 metode interpolasi:

    % 'nearest' - nearest neighbor interpolation

    % 'linear' - bilinear interpolation

    % 'cubic' - bicubic interpolation

    % 'spline' - spline interpolation

    u_wind_ind_r=interp2(lon,lat,u_wind_ind,lon_r,lat_r,'spline'); v_wind_ind_r=interp2(lon,lat,v_wind_ind,lon_r,lat_r,'spline');

    % hitung magnitude

    u_mag=sqrt(u_wind_ind_r.^2+v_wind_ind_r.^2); save mydata.out;

    % baca data garis pantai yang didapat dari coastline extractor

    cline=load('27050.dat'); cline(find(cline(:,:)==0))=nan; % plot vektor angin

    sel=10;

    lont=lon_r(1:sel:130,1:sel:376); latt=lat_r(1:sel:130,1:sel:376); uwindt=u_wind_ind_r(1:sel:130,1:sel:376); vwindt=v_wind_ind_r(1:sel:130,1:sel:376);

    Sama kan dengan yang sebelumnya

    File ini didapatkan dari mendownload di

    http://rimmer.ngdc.noaa.gov/coast/ dengan men-set terlebih

    dahulu domain yang kita butuhkan

    Tentukan sendiri banyaknya vector, disesuaikan dengan

    ukuran domain, besar kecilnya vector dapat juga di set di

    sel=10, semakin besar sel semakin besar ukuran vector.

  • quiver(lont,latt,uwindt,vwindt,'k') %quiver(lon_r,lat_r,u_wind_ind_r,v_wind_ind_r,'k') hold on

    pcolor(lon_r,lat_r,u_mag);shading('interp') plot(cline(:,1),cline(:,2),'k') hold on

    save('d:\nina\angin\14NOV.dat','lon','lat','u_wind_ind','v_wind_ind','-ASCII');

    % title('10 m Wind Speed, 1 January 2006 00:00 GMT')

    axis equal

    axis([104.9 115 -10 -5]) caxis([0 10]); h=colorbar('h','location','eastoutside');

    set(get(h,'title'),'String','Wind Speed (m/s)'); title('Kecepatan Angin Permukaan Mei 2008') filename = 'tesy';

    print ('-dbmp', filename);

    Run menggunakan peruntah F5.

    Dan langsung akan mendapatkan file 14NOV.dat dan gambar seperti ini :

    Gambar contoh hasil vektor angin pada MATLAB.

    Data 14NOV.dat akan berbentuk tidak beraturan dan harus kita olah terlebih dahulu untuk dijadikan

    input. Bentuknya : row awal lon, berikutnya lat, berikutnya u, berikutnya v. Jumlah row adalah selisih lat

    max lat min dibagi 2,5. Jumlah kolom adalah selisih lon max dan lon min di bagi 2,5. Kemudian arahnya

    terbalik. Row paling akhir adalah data data di bagian atas data sebenarnya. Hal ini harus dilakukan

    manual untuk mengurangi kesalahan fatal.

    Ubah nilai untuk penamaan di arah x dan y, disesuaikan saja

    untuk tampilan yang lebih baik

    Jangan lupa ubah nama-nama settingan

    Save data ke dalam bentuk ascii dengan format data lon, lat, u, v