Kadarsah

Meteorologi dan Sains Atmosfer

Pengolahan Data Curah Hujan Dan Angin

Posted by kadarsah pada September 9, 2008

Pengolahan data curah hujan dengan menggunakan Matlab sangat bermanfaat dalam menganalisis serta menampilkan visualisasi yang menawan.
Berikut misalnya data curah hujan suatu stasiun:

datatabel

Data curah hujan tersebut jika berbentuk matrik menjadi:

A=[0 29.2 40.6 11.2 4.8 4.6 5.2 0.2 22.8 19.8 7 0.4 10.8 0 0.6 1.8 32.4 0 2 1.8 28.6 13 0 1.8 8.6 5 0.2 0 0 0 11.2]

Maka jika di plot menjadi

>>plot(a)

>> grid on

>> xlabel(‘Hari’)

>> ylabel(‘Curah Hujan (mm)’)

Hasilnya Gambar (a)

>> bar(a)

>> ylabel(‘Curah Hujan (mm)’)

>> xlabel(‘Hari’)

>> grid on

Hasilnya Gambar (b)

>> plot(a,’*’)

>> axis([0 45 0 45]) %mengatur agar panjang x dari 0-45 sedangkan y juga dari 0-45

Hasilnya Gambar (c)

Untuk membuat plot, matlab menyediakan beberapa pilihan untuk penggambaran, yang dibagi menjadi tiga pilihan(warna,bentuk plot data,bentuk garis yang menghubungkan data).

>> plot(a,’r*:’)

>> xlabel(‘Hari’)

>> ylabel(‘Curah Hujan (mm)’)

Plot diatas memplot data a, menggunakan warna merah(a), data plot berbentuk bintang (*) dan garis yang menghubungkan data (: ) yang berbentuk bintang tadi berbentuk titik-titik.

Hasilnya Gambar (d)

datatitik

datadiagram
Pengolahan data angin untuk keperluan meteorologi sangat penting mengingat besarnya peranan angin dalam mempengaruhi fenomena-fenomena meteorologi.  Pengolahan data angin dan sekaligus memvisualisasikannya dengan software tertentu merupakan suatu keharusan. Software yang bisa digunakan antara lain: GrAds dan Matlab.
Kecepatan angin dapat dibuat skala, dan yang paling terkenal adalah skala yang di sebut Skala Beaufort  seperti yang ditunjukan tabel dibawah ini.

Skala Beaufort

Data volume vektor

Data volume vektor merupakan data yang lebih banyak memiliki informasi dibanding skalar. Setiap koordinat data volume vektor memiliki tiga data yang berkaitan dengan data yang dimaksud. Data tersebut terdiri dari suatu vektor yang menunjukan arah dan besarnya data. Di bidang meteorologi data angin merupakan salah satu data volume vektor. Dengan memetakan angin dalam bidang tiga dimensi (volume) dapat membantu untuk menganalisis perilaku, angin pada tiap saat dan pada tiap tempat. Umumnya angin dipetakan secara dua dimensi (arah dan besarnya kekuatan angin) tetapi hal itu akan sulit untuk mengetahui perilaku,kondisi angin pada saat bersamaan di tempat yang berbeda-beda khususnya dibawah atau di atas lapisan gambar dua dimensi yang kita maksud. Begitu pula jika digambarkan secara melintang,kondisi dan perilaku angin sebelum dan sesudah gambar melintang tidak dapat ditampilkan secara bersamaan. Dalam meteorologi untuk mengatasi kondisi ini bisa digunakan Vis5D yang bisa menggambarkan angin dalam bentuk tiga dimensi disertai parameter meteorologi yang lain misalnya tekanan dan kelembaban serta topografi daerah yang di amati. Sehingga perilaku angin, tekanan, dan parameter meteorology lainnya ketika berada dilaut, daratan, gunung dan lembah dapat diamati dengan baik seperti yang ditunjukan gambar dibawah.

vis5d

Salah satu software lainnya adalah Matlab yang dapat menggambarkan dan mengolah data angin dengan sangat baik.

Matlab memiliki fitur-fitur sebagai berikut:

· Stream lines : menggambarkan aliran angin dalam bentuk garis secara 2 atau 3 dimensi.

· Stream particles: menggambarkan partikel atau titik yang diamati dalam suatu jejak angin yang berbentuk garis (stream line).

· Stream ribbons : sama dengan stream lines, tetapi aliran angin digambarkan seperti pita dengan lebar pita menunjukan kemampuan angin untuk berputar. Bentuk pita ini sesuai dengan nilai curl dari vektor angin yang diamati.

· Stream tubes : sama dengan stream lines, tetapi aliran angin digambarkan dalam tabung-tabung alir dan dapat digunakan untuk analisis divergensi vektor angin.

· Cone plots:menggambarkan angin seperti kerucut dengan posisi kerucut merupakan arah angin. Besarnya kerucut menunjukan besar-kecilnya kekuatan angin.

Berikut merupakan visualisasi dari metode yang disebutkan diatas ( semua menggunakan program Matlab dengan modifikasi data dan program yang disesuaikan dengan data meteorology di Indonesia).

Data vektor yangdigunakan disini adalah data angin.

Di Matlab 7, ketika dilakukan perintah load wind akan memunculkan variable : x,y,z,u,v dan w.

Data angin ini berukuran 35 x 41x 15 (jadi banyaknya 35 baris, 41 kolom, tinggi 15. sehingga secara sederhana dapat digambarkan bahwa data angin ini seperti sebuah kotak yang terdiri dari 35 baris bata, 41 kolom bata dengan tinggi 15 bata. Jadi jumlah bata yang membentuk kotak tersebut sebanyak: 21525 buah.

Bata-bata itulah yang merupakan data angin yang memiliki variabel : x,y,z,u,v dan w.

X menunjukan posisi data kecepatan angin u ( arah utara-selatan).

Y menunjukan posisi data kecepatan angin v ( arah barat-timur)

Z . menunjukan posisi data kecepatan angin w ( arah atas-bawah).

Untuk mengetahui kecepatan angin pada suatu titik maka dihitung dengan melibatkan kecepatan angin u, kecepatan angin v, dan kecepatan angin w.

Kecepatan angin =

Data vektor ini dapat dianalisisi dengan beberapa cara diantara:

· Stream line: digunakan untuk merunut kecepatan angin

· Penampang melintang untuk mengetahui data angin secara melintang

· Kontour pada penampang melintang untuk meningkatkan pemahaman data angin

Plot Stream Line untuk Data vektor

Contoh:

>> load wind

>> [sx,sy] = meshgrid(80,20:5:60)

sx =

80

80

80

80

80

80

80

80

80

sy =

20

25

30

35

40

45

50

55

60

>> streamline(stream2(x(:,:,15),y(:,:,15),u(:,:,15),v(:,:,15),sx,sy)) hasilnya gambar a

>> load wind

>> zmax = max(z(:))

zmax =

16

>> zmin = min(z(:))

zmin =

-0.0020

>> streamslice(x,y,z,u,v,w,[ ],[ ],(zmax-zmin)/2)

hasilnya gambar b

>> streamslice(x,y,z,u,v,w,[ ],[ ],10)

hasilnya gambar c

>> streamslice(x,y,z,u,v,w,[ ],[ ],5)

hasilnya gambar d

>> streamslice(x,y,z,u,v,w,[ ],[ ],2)

hasilnya gambar e

>> streamslice(x,y,z,u,v,w,[ ],[ ],1)

hasilnya gambar f

a-fKalau kita gambarkan angin tadi dalam tiga dimensi dan dengan menampilkan lapisan tertentu saja hasilnya seperti dibawah ini ( dengan mengikuti script berikut ini):

load wind

[sx,sy,sz] = meshgrid(77,20:5:60,0:3:20);

h = streamline(x,y,z,u,v,w,sx,sy,sz);

set(h,’Color’,’green’)

view(3)

box

kotak-angin

Berikut merupakan tahapan dalam menentukan titik awal data angin ditampilkan

load wind

>> [sx,sy,sz] = meshgrid(75,25:5:60,0:3:15)

plot3(sx(:),sy(:),sz(:),’*blue’)

axis(volumebounds(x,y,z,u,v,w))

grid; box; daspect([2 2 1])

sx(:,:,1) =

75

75

75

75

75

75

75

75

sx(:,:,2) =

75

75

75

75

75

75

75

75

sx(:,:,3) =

75

75

75

75

75

75

75

75

sx(:,:,4) =

75

75

75

75

75

75

75

75

sx(:,:,5) =

75

75

75

75

75

75

75

75

sx(:,:,6) =

75

75

75

75

75

75

75

75

sy(:,:,1) =

25

30

35

40

45

50

55

60

sy(:,:,2) =

25

30

35

40

45

50

55

60

sy(:,:,3) =

25

30

35

40

45

50

55

60

sy(:,:,4) =

25

30

35

40

45

50

55

60

sy(:,:,5) =

25

30

35

40

45

50

55

60

sy(:,:,6) =

25

30

35

40

45

50

55

60

sz(:,:,1) =

0

0

0

0

0

0

0

0

sz(:,:,2) =

3

3

3

3

3

3

3

3

sz(:,:,3) =

6

6

6

6

6

6

6

6

sz(:,:,4) =

9

9

9

9

9

9

9

9

sz(:,:,5) =

12

12

12

12

12

12

12

12

sz(:,:,6) =

15

15

15

15

15

15

15

15

hasilnya seperti  gambar di bawah

titik

>> streamline(x,y,z,u,v,w,sx(:),sy(:),sz(:))

akan muncul gambar

titik2

load wind

xmin = min(x(:));

xmax = max(x(:));

ymax = max(y(:));

zmin = min(z(:));

wind_speed = sqrt(u.^2 + v.^2 + w.^2)

hsurfaces = slice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin)

set(hsurfaces,’FaceColor’,’interp’,’EdgeColor’,’c’)

kotak >>[sx,sy,sz] = meshgrid(75,25:10:60,0:3:15);

hlines = streamline(x,y,z,u,v,w,sx,sy,sz);

set(hlines,’LineWidth’,2,’Color’,’r’)

kotak2

load wind

xmin = min(x(:));

xmax = max(x(:));

ymax = max(y(:));

zmin = min(z(:));

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

hsurfaces = slice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);

set(hsurfaces,’FaceColor’,’interp’,’EdgeColor’,’none’)

hcont = …

contourslice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);

set(hcont,’EdgeColor’,[.7,.7,.7],’LineWidth’,.5)

[sx,sy,sz] = meshgrid(75,25:10:60,0:3:15);

hlines = streamline(x,y,z,u,v,w,sx,sy,sz);

set(hlines,’LineWidth’,2,’Color’,’r’)

view(3)

daspect([2,2,1])

axis tight

box

stream1

load wind

xmin = min(x(:));

xmax = max(x(:));

ymax = max(y(:));

zmin = min(z(:));

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

hsurfaces = slice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);

set(hsurfaces,’FaceColor’,’interp’,’EdgeColor’,’none’)

[sx,sy,sz] = meshgrid(75,25:10:60,0:3:15);

hlines = streamline(x,y,z,u,v,w,sx,sy,sz);

set(hlines,’LineWidth’,2,’Color’,’r’)

view(3)

daspect([2,2,1])

axis tight

box

stream2

load wind

xmin = min(x(:));

xmax = max(x(:));

ymin = min(y(:));

ymax = max(y(:));

zmin = min(z(:));

daspect([2,2,1])

xrange = linspace(xmin,xmax,8);

yrange = linspace(ymin,ymax,8);

zrange = 3:4:15;

[cx cy cz] = meshgrid(xrange,yrange,zrange);

hcones = coneplot(x,y,z,u,v,w,cx,cy,cz,5);

set(hcones,’FaceColor’,’red’,’EdgeColor’,’none’)

stream3

load wind

xmin = min(x(:));

xmax = max(x(:));

ymin = min(y(:));

ymax = max(y(:));

zmin = min(z(:));

daspect([2,2,1])

xrange = linspace(xmin,xmax,8);

yrange = linspace(ymin,ymax,8);

zrange = 3:4:15;

[cx cy cz] = meshgrid(xrange,yrange,zrange);

hcones = coneplot(x,y,z,u,v,w,cx,cy,cz,5);

set(hcones,’FaceColor’,’red’,’EdgeColor’,’none’)

[cx cy cz] = meshgrid(xrange,yrange,zrange);

hcones = coneplot(x,y,z,u,v,w,cx,cy,cz,5);

set(hcones,’FaceColor’,’red’,’EdgeColor’,’none’)

hold on

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

hsurfaces = slice(x,y,z,wind_speed,[xmin,xmax],ymax,zmin);

set(hsurfaces,’FaceColor’,’interp’,’EdgeColor’,’none’)

hold off

axis tight; view(30,40); axis off

camproj perspective; camzoom(1.5)

camlight right; lighting phong

set(hsurfaces,’AmbientStrength’,.6)

set(hcones,’DiffuseStrength’,.8)

kotak_stream

load wind

xmin = min(x(:));

xmax = max(x(:));

ymin = min(y(:));

alt = 7.356; % z-value for slice and streamtube plane

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

hslice = slice(x,y,z,wind_speed,xmax,ymin,alt);

set(hslice,’FaceColor’,’interp’,’EdgeColor’,’none’)

colormap hsv(16)

color_lim = caxis;

cont_intervals = linspace(color_lim(1),color_lim(2),17);

hcont = contourslice(x,y,z,wind_speed,xmax,ymin,…

alt,cont_intervals,’linear’);

set(hcont,’EdgeColor’,[.4 .4 .4],’LineWidth’,1)

[sx,sy,sz] = meshgrid(xmin,20:3:50,alt);

daspect([1,1,1]) % set DAR before calling streamtube

htubes = streamtube(x,y,z,u,v,w,sx,sy,sz,[1.25 30]);

set(htubes,’EdgeColor’,’none’,’FaceColor’,’r’,…

‘AmbientStrength’,.5)

view(-100,30)

axis(volumebounds(x,y,z,wind_speed))

set(gca,’Projection’,’perspective’)

camlight left

tube_angin

load wind

xmin = min(x(:));

xmax = max(x(:));

ymin = min(y(:));

alt = 7.356; % z-value for slice and streamtube plane

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

colormap hsv(16)

color_lim = caxis;

cont_intervals = linspace(color_lim(1),color_lim(2),17);

[sx,sy,sz] = meshgrid(xmin,20:3:50,alt);

daspect([1,1,1]) % set DAR before calling streamtube

htubes = streamtube(x,y,z,u,v,w,sx,sy,sz,[1.25 30]);

set(htubes,’EdgeColor’,’none’,’FaceColor’,’blue’,…

‘AmbientStrength’,.5)

view(-100,30)

axis(volumebounds(x,y,z,wind_speed))

set(gca,’Projection’,’perspective’)

camlight left

box on

tube2

load wind

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

hiso = patch(isosurface(x,y,z,wind_speed,40));

isonormals(x,y,z,wind_speed,hiso)

set(hiso,’FaceColor’,’red’,’EdgeColor’,’none’)

tube3 hcap = patch(isocaps(x,y,z,wind_speed,40),…

‘FaceColor’,’interp’,…

‘EdgeColor’,’none’)

tube41

load wind

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

hiso = patch(isosurface(x,y,z,wind_speed,40));

isonormals(x,y,z,wind_speed,hiso)

set(hiso,’FaceColor’,’red’,’EdgeColor’,’none’)

hcap = patch(isocaps(x,y,z,wind_speed,40),…

‘FaceColor’,’interp’,…

‘EdgeColor’,’none’)

daspect([1,1,1])

[f verts] = reducepatch(isosurface(x,y,z,wind_speed,30),0.07)

h1 = coneplot(x,y,z,u,v,w,verts(:,1),verts(:,2),verts(:,3),3)

tube51 set(h1,’FaceColor’,’blue’,’EdgeColor’,’none’)

tube61xrange = linspace(min(x(:)),max(x(:)),10)

yrange = linspace(min(y(:)),max(y(:)),10)

zrange = 3:4:15

[cx,cy,cz] = meshgrid(xrange,yrange,zrange)

h2 = coneplot(x,y,z,u,v,w,cx,cy,cz,2)

set(h2,’FaceColor’,’green’,’EdgeColor’,’none’

tube72

axis tight

box on

camproj perspective

camzoom(1.25)

view(65,45)

tube81

camlight(-45,45)

set(gcf,’Renderer’,’zbuffer’)

lighting phong

set(hcap,’AmbientStrength’,.6)

tube10

load wind

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

hiso = patch(isosurface(x,y,z,wind_speed,40));

isonormals(x,y,z,wind_speed,hiso)

set(hiso,’FaceColor’,’red’,’EdgeColor’,’none’)

hcap = patch(isocaps(x,y,z,wind_speed,40),…

‘FaceColor’,’interp’,…

‘EdgeColor’,’none’)

daspect([1,1,1])

[f verts] = reducepatch(isosurface(x,y,z,wind_speed,30),0.07)

h1 = coneplot(x,y,z,u,v,w,verts(:,1),verts(:,2),verts(:,3),3)

set(h1,’FaceColor’,’blue’,’EdgeColor’,’none’)

xrange = linspace(min(x(:)),max(x(:)),10)

yrange = linspace(min(y(:)),max(y(:)),10)

zrange = 3:4:15

[cx,cy,cz] = meshgrid(xrange,yrange,zrange)

h2 = coneplot(x,y,z,u,v,w,cx,cy,cz,2)

set(h2,’FaceColor’,’green’,’EdgeColor’,’none’)

set(hcap,’AmbientStrength’,.6)

axis tight

box on

camproj perspective

camzoom(1.25)

view(65,45)

camlight(-45,45)

set(gcf,’Renderer’,’zbuffer’);

lighting phong

set(hcap,’AmbientStrength’,.6)

tubeeeload wind

spd = sqrt(u.*u + v.*v + w.*w);

p = patch(isosurface(x,y,z,spd, 40));

isonormals(x,y,z,spd, p)

set(p, ‘FaceColor’, ‘red’, ‘EdgeColor’, ‘none’);

p2 = patch(isocaps(x,y,z,spd, 40));

set(p2, ‘FaceColor’, ‘interp’, ‘EdgeColor’, ‘none’)

daspect([1 1 1]);

[f verts] = reducepatch(isosurface(x,y,z,spd, 30), .2);

h=coneplot(x,y,z,u,v,w,verts(:,1),verts(:,2),verts(:,3),2);

set(h, ‘FaceColor’, ‘cyan’, ‘EdgeColor’, ‘none’);

[sx sy sz] = meshgrid(75, 30:5:60, 0:5:35);

h2=streamline(x,y,z,u,v,w,sx,sy,sz);

set(h2, ‘Color’, [.4 1 .4]);

colormap(jet)

box on

axis tight

camproj perspective;

camva(34);

campos([165 -20 65]);

camtarget([100 40 -5])

camlight left;

lighting gouraud

garis_cub Ketika kita menggunakan teknik lain dalam menganalisa angin adalah dengan stream ribbon.

load wind

[sx sy sz] = meshgrid(75, [25 30 35 40 45 50 55], [3 6 9 12 15 18 21]);

daspect([1,1,1]);

h=streamribbon(x,y,z,u,v,w,sx,sy,sz);

set(h,’facecolor’,’red’,’edgecolor’,’none’)

box on;

camproj perspective;

axis([70 138 17 60 2.5 16]);

axis tight

camva(28);

campos([175 10 85]);

camtarget([105 40 0])

camlight left;

lighting gouraud

pita1

load wind

[sx sy sz] = meshgrid(80,20:5:50,0:3:15);

daspect([2 2 2])

streamribbon(x,y,z,u,v,w,sx,sy,sz);

%—–Define viewing and lighting

axis tight

shading interp;

view(3);

camlight; lighting gourau

hasilnya gambar a

load wind

[sx sy sz] = meshgrid(80,20:15:50,0:5:20);

daspect([2 2 2])

streamribbon(x,y,z,u,v,w,sx,sy,sz);

%—–Define viewing and lighting

axis tight

shading interp;

view(3);

camlight; lighting gouraud

hasilnya gambar b

load wind

[sx sy sz] = meshgrid(80,20:15:50,0:2:15);

daspect([2 2 2])

streamribbon(x,y,z,u,v,w,sx,sy,sz);

%—–Define viewing and lighting

axis tight

shading interp;

view(3);

camlight; lighting gouraud

box on

hasilnya gambar c

load wind

[sx sy sz] = meshgrid(80,20:10:50,0:5:15);

daspect([1 1 1])

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

cav = curl(x,y,z,u,v,w);

spd = sqrt(u.^2 + v.^2 + w.^2).*.1;

streamribbon(verts,x,y,z,cav,spd);

%—–Define viewing and lighting

axis tight

shading interp

view(3)

camlight; lighting gouraud

box on

hasilnya gambar d

load wind

[sx sy sz] = meshgrid(80,20:5:50,0:3:15);

daspect([1 1 1])

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

cav = curl(x,y,z,u,v,w);

spd = sqrt(u.^2 + v.^2 + w.^2).*.1;

streamribbon(verts,x,y,z,cav,spd);

%—–Define viewing and lighting

axis tight

shading interp

view(3)

camlight; lighting gouraud

hasilnya gambar e

load wind

[sx sy sz] = meshgrid(80,20:15:50,0:5:15);

daspect([1 1 1])

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

cav = curl(x,y,z,u,v,w);

spd = sqrt(u.^2 + v.^2 + w.^2).*.1;

streamribbon(verts,x,y,z,cav,spd);

%—–Define viewing and lighting

axis tight

shading interp

view(3)

camlight; lighting gouraud

hasilnya gambar e

a_fpita_anginGambar dibawah merupakan tampilan yang sama dari script berikut ini:

load wind

[sx sy sz] = meshgrid(80,20:15:50,0:3:21);

daspect([2 2 2])

streamribbon(x,y,z,u,v,w,sx,sy,sz);

%—–Define viewing and lighting

axis tight

shading interp;

view(3);

camlight; lighting gouraud

box on

pitaberuntun

load wind

[sx sy sz] = meshgrid(75, [30 35 45 50 55 60 65], [5 10 15 20 25 30 35]);

daspect([1,1,1]);

h=streamtube(x,y,z,u,v,w,sx,sy,sz);

set(h,’facecolor’,’red’,’edgecolor’,’none’);

box on;

camproj perspective;

axis([70 138 17 60 2.5 16]);

axis tight

camva(28);

campos([175 10 95]);

camtarget([105 40 0])

camlight left;

lighting gouraud

tube_cone

load wind

[sx sy sz] = meshgrid(80,20:10:50,0:5:15);

daspect([1 1 1])

streamtube(x,y,z,u,v,w,sx,sy,sz);

%—–Define viewing and lighting

view(3)

axis tight

shading interp;

camlight; lighting gouraud

hasilnya gambar a

load wind

[sx sy sz] = meshgrid(80,20:10:50,0:3:15);

daspect([1 1 1])

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

div = divergence(x,y,z,u,v,w);

streamtube(verts,x,y,z,-div);

%—–Define viewing and lighting

view(3)

axis tight

shading interp

camlight; lighting gouraud

box on

hasilnya gambar b

load wind

[sx sy sz] = meshgrid(80,20:10:50,0:5:15);

daspect([1 1 1])

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

div = divergence(x,y,z,u,v,w);

streamtube(verts,x,y,z,-div);

%—–Define viewing and lighting

view(3)

axis tight

shading interp

camlight; lighting gouraud

hasilnya gambar c


load wind

[sx sy sz] = meshgrid(80,20:10:40,0:5:10);

daspect([1 1 1])

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

div = divergence(x,y,z,u,v,w);

streamtube(verts,x,y,z,-div);

%—–Define viewing and lighting

view(3)

axis tight

shading interp

camlight; lighting gouraud

hasilnya gambar d


gambar_4_tube

load wind

[sx sy sz] = meshgrid(80,20:5:60,0:3:15);

daspect([1 1 1])

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

div = divergence(x,y,z,u,v,w);

streamtube(verts,x,y,z,-div);

%—–Define viewing and lighting

view(3)

axis tight

shading interp

camlight; lighting gouraud

box on

tubebanyak

load wind

lims = [90.64 126.67 27.25 38.75 -0.05 7.86];

[x,y,z,u,v,w] = subvolume(x,y,z,u,v,w,lims);

cav = curl(x,y,z,u,v,w);

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

[sx sy sz] = meshgrid(100,20:5:30,1:5);

verts = stream3(x,y,z,u,v,w,sx,sy,sz,.5);

h = streamribbon(verts,x,y,z,cav,wind_speed,2);

set(h,’FaceColor’,’blue’,…

‘EdgeColor’,[.7 .7 .7],…

‘AmbientStrength’,.6)

axis(volumebounds(x,y,z,wind_speed))

grid on

shading interp

view(3)

camlight right;

set(gcf,’Renderer’,’zbuffer’); lighting phong

box on

angin1 load wind

[sx sy sz] = meshgrid(80,20:1:55,5);

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

sl = streamline(verts);

iverts = interpstreamspeed(x,y,z,u,v,w,verts,.025);

axis tight; view(30,30); daspect([1 1 .125])

camproj perspective; camva(8)

set(gca,’DrawMode’,’fast’)

box on

streamparticles(iverts,35,’animate’,10,’ParticleAlignment’,’on’)

angin2

load wind

[sx sy sz] = meshgrid(80,23:2:50,5:5:15);

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

sl = streamline(verts);

iverts = interpstreamspeed(x,y,z,u,v,w,verts,.025);

axis tight; view(30,30); daspect([1 1 .125])

camproj perspective; camva(8)

set(gca,’DrawMode’,’fast’)

box on

streamparticles(iverts,35,’animate’,10,’ParticleAlignment’,’on’)

teras_angin

load wind

[sx sy sz] = meshgrid(80,23:2:50,5:5:10);

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

sl = streamline(verts);

iverts = interpstreamspeed(x,y,z,u,v,w,verts,.025);

axis tight; view(30,30); daspect([1 1 .125])

camproj perspective; camva(8)

set(gca,’DrawMode’,’fast’)

box on

streamparticles(iverts,35,’animate’,10,’ParticleAlignment’,’on’)

teras2 load wind

[sx sy sz] = meshgrid(100,20:2:56,5);

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

sl = streamline(verts);

iverts = interpstreamspeed(x,y,z,u,v,w,verts,0.05);

axis tight; view(30,30);

daspect([1.5 1.5 0.100])

camproj perspective; camva(8)

set(gca,’DrawMode’,’fast’)

box on

streamparticles(iverts,35,’animate’,10,’ParticleAlignment’,’on’)

shading interp

teras3

load wind

[sx sy sz] = meshgrid(100,18:2:56,5);

verts = stream3(x,y,z,u,v,w,sx,sy,sz);

sl = streamline(verts);

iverts = interpstreamspeed(x,y,z,u,v,w,verts,0.05);

axis tight; view(30,30);

daspect([1.5 1.5 0.100])

camproj perspective; camva(8)

set(gca,’DrawMode’,’fast’)

box on

streamparticles(iverts,35,’animate’,10,’ParticleAlignment’,’on’)

shading interp

terass

27 Tanggapan to “Pengolahan Data Curah Hujan Dan Angin”

  1. Anto J.Wijaya said

    Pak, saya mau tanya dan mohon dijelaskan apa maksud gambar 2/3 gambar terakhir?

    Terimakasih
    Anto

  2. kadarsah said

    Gambar 1 dari bawah menunjukkan visualisasi aliran angin pada level 5 yang bergerak kekanan dan sebagian yang berada di titik awal mengalami pembelokan dan membuat pusaran.

    Gambar 2 dari bawah menunjukkan hal yang sama tetapi dengan visualisasi aliran angin yang lebih renggang agar mudah mendeteksi arah angin serta perilakunya.

    Gambar 3 dari bawah menunjukkan hal yang sama tetapi juga menunjukkan aliran angin pada level 10 sehingga kita bisa mengetahu bahwa aliran angin pada tiap lapisan berbeda kecepatan, arah dan perilakunya.

  3. khairullah said

    Assalamu ‘alaikum Wr. Wb.
    Saya merasa berterima kasih merasa terbantu dengan penjelasan-penjelasan bapak tentang analisis data meteorologi/klimatologi, terutama tentang penggunaan aplikasi Mathlab. Saya berusaha untuk mempelajari banyak masalah tersebut karena disiplin ilmu saya berbeda yaitu dari Agronomi. Saya lebih tahu banyak tentang bagaimana keadaan di lapangan khususnya pertanian daripada aplikasi komputer. Saya menguasai statistik tapi dengan perhitungan manual. Yang mau saya tanyakan: 1) Aplikasi Mathlab dapat digunakan untuk tujuan dan data apa saja, di mana dapat saya temukan tutorialnya? 2)Apakah program aplikatif yang dapat saya gunakan untuk penggunaan neraca air kahan suatu daerah? 3) Di antara pengolahan data yakni model pengolahan prakiraan musim mana yang lebih akurat? Apakah ARIMA, Wavelet atau ANFIS? Terima kasih

  4. kadarsah said

    Walaikumsalam Wr.Wb

    Terimakasih atas komentar dan pertanyaannya.
    1.Aplikasi Matlab bisa gunakan di berbagai bidang ( meteorologi,geofisika, teknik mesin, osenografi,matematika, fisika, penerbangan, ekonomi dlln).
    Tutorialnya bisa di temukan di Matlab help atau Demos dan selanjutnya bisa dikembangkan sendiri.

    2.Program aplikatif untuk menghitung neraca air suatu daerah (?) , kalau saya dulu menggunakan metode F.J Mock dan di Matlab tidak secara khusus menghitung hal tersebut tetapi kita yang harus membuatnya.

    3.Untuk penggunaan ARIMA,Wavelet atau ANFIS masing-masing memiliki kelebihan dan kekurangan.
    Terlebih jika metode tersebut digunakan untuk perkiraan musim/presiksi curah hujan di Indonesia ( yang memiliki karakteristik yang berbeda dan komplek)akan memiliki efek yang berbeda-beda. Bisa jadi daerah A sangat bagus jika menggunakan ARIMA tetapi jelek jika menggunakan Wavelet dan ANFIS, sedangkan daerah B sangat bagus menggunakan ANFIS.

    Di Matlab ( khususnya versi 7.01) juga ada fitur-fitur ANFIS, WAVELET dan ARIMA yang bisa digunakan dan kembangkan sendiri.
    Contohnya : https://kadarsah.wordpress.com/2008/04/28/analisis-wavelet-matlab-pada-bidang-meteorologi/

    Terimakasih
    Kadarsah

  5. Nugroho said

    mo tanya lagi ya…
    bagaimana cara insert map (peta) sesuai dengan longitute dan latitute-nya (misalnya saja peta Indonesia) ke dlm matlab, sehingga disamping kontur pada lintang dan bujur tertentu juga ada informasi lain berupa berupa map wilayah yang direpresentasikan oleh konturnya tersebut. thx

  6. kadarsah said

    Di Matlab ada fasilitas untuk itu , silakan di cari. Saya sudah lupa.

  7. andy said

    pa mau bertanya, bila menggunakan matlab bisa membuat simulasi radar udara ?

    mohon bantuannya

    terimakasih

  8. bmkgkotabaru said

    Terima kasih atas berbagai informasinya yang sangat bermanfaat pak.
    Mohon izin bertanya pak. Ada beberapa pertanyaan yang agak menyimpang dari materi di atas, maaf.
    1. masalah metode cressman.
    a. dari materi kuliah yang pernah saya dapatkan, untuk menghitung nilai dari suatu titik di lokasi yang dicari dengan menggunakan metode cressmann, ada yang menggunakan data background (data hasil prakiraan) dan ada yang tidak. dari keduanya jika dihitung maka berapapun nilai data background hasilnya akan tetap sama dengan perhitungan yang tidak menggunakan data background.
    berikut rumus yang saya dapatkan waktu kuliah.

    Xa = Xb + (E (Wi*(X0-Xb))/(E Wi))

    Xa = nilai titik yang dicari
    Xb = data background
    X0 = nilai hasil pengamatan
    Wi = beban
    E = sigma

    setelah dipelajari dari sumber lain ternyata, penyebut yang ada bukan hanya ‘ E Wi’ tetapi
    ‘E Wi + e^2’, dimana disebutkan e merupakan perbandingan antara error pengamatan (observation error) dengan error prakiraan pertama (first guess field error). mohon dijelaskan maksud dan cara mencarinya!

    b. untuk menghitung beban (W) mana yang lebih baik antara menggunakan metode cressman atau barnes?

    2. bisakah kita mengambil 1 unsur meteorologi saja dari pengamatan synoptik yang dilakukan secara otomatis setiap saat ?, misalnya seperti ini, pada jam 01.00 z, semua data synoptik sudah terkirim, kita hanya menginginkan data suhu saja dari tiap-tiap stasiun untuk kemudian diplot pada peta Indonesia, sehingga kita bisa melakukan analisa cuaca dari data suhu tersebut.

    sekian, terima kasih atas perhatiannya.
    mohon maaf atas sebelumnya.

    • kadarsah said

      Saya akan mencoba menjawab:
      1a.Nilai e merupakan perbandingan antara error/kesalahan observasi dengan error prakiraan pertama. Error prakiraan pertama ini didapat dari dugaan/prakiraan saat pertama kali ( pada awal pertama kali dilakukan). Sedang error observasi adalah didapat antara observasi dengan prediksi.

      1b.Saya kira metode barnes (1964).Yang di terbitkan setelah metode Cressman (1959) dan merupakan perbaikan dari kelemahan metode Cressman.

      2.Bisa, ada beberapa cara, yang memungkinkan adalah dengan membuat program agar data yang kita inginkan data itulah yang kita plot atau gunakan.

      Semoga membantu.

      Referensi:
      Barnes, S. L., 1964: A Technique for Maximizing Details in Numerical Weather Map Analysis. Journal of Applied Meteorology, 3:396-409.

      Cressman, G. P., 1959: An Operational Objective Analysis System. Monthly Weather Review, 87:367-374.

  9. dony said

    pak maap mau nanya dimana kita bisa download program Vis5D
    karna saya coba selalu tidak berjalan dalam pengistalanya
    terima kasih pak…

  10. Mamat Rachmat said

    Blog yang sangat menarik. Memberikan banyak pengetahuan baru bagi saya. Terima kasih.

  11. Inung said

    mau tanya Pak..
    Kalau analisis data curah hujan dengan menggunakan Matlab itu contohnya seperti apa ya??

  12. Didin ADri said

    mau nanya pak, bagaimana memperoleh data angin suatu daerah pak…..
    sekalian minta tolong pak, apa kita punya tutorial Grads…? klu ada mohon di bagi pak….

  13. muh busyra said

    bisa sebutkan kelebihan dan kekurangan model arima jika di bandingkan dengan model anfis dan weflet??????

    makasih….

  14. Wah berarti ke depan daerah Yogyakarta tetap diancam gempa kuat ya pak……

  15. denmoko said

    tampilan grafis angin di mathlab-nya keren…
    misalnya kita punya data angin jam2an/harian dalam setahun, apakah bisa simulasikan seperti grafik diatas..? kalo bisa caranya bagaimana..?

    terima kasih..

  16. Anton said

    Pak, saya perlu data tanah yang gratis dimana ya?

  17. ada data curah hujan 5 tahun kebelakang untuk kota bogor???

  18. soni darma laserio said

    pak, saya mau mengolah data curah hujan hasil keluaran ORG, data keluaran ORG tersebut tiap file terdiri dari 8 kolom dan 1440 data. dan file nya ada sekitar 720 file(data 2 tahun). data yang saya olah akan dibuat grafiknya, dimana grafik yang akan diplot tersebut merupakan kolom 2 dan dan kolom 8. dari 8 kolom keluaran ORG tersebut. masalahnya saat dibuka dengan excel, notpad maupun mfile 8 kolom data tersebut hanya terbaca satu kolom(hanya dipisah oleh spasi. jadi yang ingin saya tanyakan adalah bagai mana saya memplot grafik tersebut dengan matlab, mengingat banyaknya data yang akan diolah apabila dilakukan pengolahan data manual. (dilakukan pemisahan kolom)

  19. ali said

    Pak,
    kalau untuk medapat data kecepatan angin periode ulang 50 tahunan kepulauan seribu secara online dimana? mohon bantuannya. terima kasih

  20. Pak Kadrasah sy ingin bertanya bagaimana membuat program prediksi curah hujan dengan matlab, sy mempunyai 5 data imputan yaitu angin, temperatur, curah hujan, kelembapan,dan tekanan… bisa pak saya lihat listing programnya… karena sy msh bingung menginput data yg berupa excedl di gunakan di wavelet…..

Tinggalkan Balasan ke Kadarsah Batalkan balasan