Anda di halaman 1dari 18

Praktikum 3

Komputasi Data Spasial


Manipulasi Data Raster

Materi Hari Ini


Buka dan tutup file
Manipulasi data raster
Titik (Inversi)
Area (Smoothing)
Global (Transpose)

Membuka File
// Mendeklarasikan stream untuk proses
input
FILE nama_variabel;
// Membuka file
nama_variabel = fopen(DOKUMEN.TXT",
"rt");
Metode membuka file
Perintah untukNama File
Rt = read
Membuka file (file berada pada folder project)
W= write

Membaca File
//struktur perintah membaca file
fscanf(nama_variabel,"%3d %3d ,&mat[i]
[j]);

Perintah membaca file

Spasi

Nilai dari file yang dibaca


Akan masuk pada variabel mat

Menulis File
// Struktur dalam menulis
fprintf(dokumen2,"%4d",mat[i][j]);
Perintah menulis
Pada file

output

Variabel yang berisi nilai


Yang akan di tulis

// Struktur dalam menulis


fwrite(&mat[i][j],sizeof(unsigned short
int),1,nama_variabel);
Perintah menulis
Variabel yang berisi nilai
Besar derajat keabuanoutput
Pada file
Yang akan di tulis

Menutup file
fclose(nama_variabel);

Struktur file TXT

15 25
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 250 250 0 0 250 250
Header
0 0
Baris kolom
0 0 250 250 0 250 250 0
250 250 0 0
0 0 250 250 250 250 0 0 0
0 0 250 250 250 0 0 0 0 0
0 0 250 250 250 250 0 0 0
0 0 250 250 250 250 0 0 0
0 0 250 250 0 250 250 0 0
0 0 250 250 0 250 250 0 0
0 0 250 250 0 0 250 0 0 0
0 0 250 250 0 0 250 250 0
0 0
Value
0 0 250 250 0 0 250 250 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 250 250 250 250 0 0 0 0 0 250 250 250 0
0 0 250 250 250 250 250 0 0 0 250 250 250
0 250 250 0 0 250 250 0 0 250 250 0 250 250 0 0
250 250 0 0 250 250 0 0 250 250 0 0 0 0 0
0 250 250 0 0 250 250 0 0 250 250 250 0 0 0 0
0 250 250 0 0 250 250 0 0 0 250 250 250 0 0 0
0 250 250 0 0 250 250 0 0 0 0 250 250 250 0 0
0 250 250 0 0 250 250 0 0 0 0 0 250 250 0 0
250 250 0 0 250 250 0 0 250 250 0 250 250 0 0
0 250 250 250 250 250 0 0 0 250 250 250 250 250
0 250 250 250 250 0 0 0 0 0 250 250 250 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0

Struktur File RAW


Struktur File RAW dalam heksadesimal
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000FAFA0000FAFA0000FAFAFAFA
0000000000FAFAFA0000000000FAFA00FAFA000000FAFAFAFAFA000000FAFAFA
FAFA00000000FAFAFAFA00000000FAFA0000FAFA0000FAFA00FAFA00000000FA
FAFA0000000000FAFA0000FAFA0000FAFA00000000000000FAFAFAFA00000000
FAFA0000FAFA0000FAFAFA000000000000FAFAFAFA00000000FAFA0000FAFA00
0000FAFAFA0000000000FAFA00FAFA000000FAFA0000FAFA00000000FAFAFA00
000000FAFA00FAFA000000FAFA0000FAFA0000000000FAFA00000000FAFA0000
FA000000FAFA0000FAFA0000FAFA00FAFA00000000FAFA0000FAFA0000FAFAFA
FAFA000000FAFAFAFAFA00000000FAFA0000FAFA0000FAFAFAFA0000000000FA
FAFA000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000

Tampilan File RAW

Jenis manipulasi
Operasi titik, yaitu operasi yang dilakukan terhadap setiap
piksel pada citra yang keluarannya hanya ditentukan oleh
nilai piksel itu sendiri.
Operasi area, yaitu operasi yang dilakukan terhadap setiap
piksel pada citra yang keluarannya dipengaruhi oleh piksel
tersebut dan piksel lainnya dalam suatu daerah tertentu.
Salah satu contoh dari operasi berbasis area adalah operasi
ketetanggaan yang nilai keluaran dari operasi tersebut
ditentukan oleh nilai piksel-piksel yang memiliki hubungan
ketetanggaan dengan piksel yang sedang diolah.
Operasi global, yaitu operasi yang dilakukan tehadap setiap
piksel pada citra yang keluarannya ditentukan oleh
keseluruhan piksel yang membentuk citra.

Manipulasi
Adalah mengedit/mengubah data
raster sehingga menjadi sesuatu
yang berbeda

Invert

//OPERASI TITIK RASTER


for (i=0; i<baris; i++)
{
for (j=0; j<kolom; j++)
{
mat_neg[i][j] = 255 - mat[i][j];
}

Contoh 20 = 255 - 235

Abu
Abu
Mendekati putihMendekati hitam

Smoothing

//OPERASI AREA RASTER

for (i=0; i<baris; i++)


{
for (j=0; j<kolom; j++)
{
temp1 = mat[i][j];
temp2 = mat[i-1][j];
temp3 = mat[i][j-1];
temp4 = mat[i+1][j];
temp5 = mat[i][j+1];
total_piksel = 5;
// Hitungan Moving Average
mat_avg[i][j] =(temp1+temp2+temp3+temp4+temp5) /total_piksel;
}

Transpose
Before

After

// Operasi Global
for (i=0; i<baris; i++)
{
for (j=0; j<kolom; j++)
{
mat_trans[j][i] = mat[i][j];
}
}
int dummy;
kolom= dummy;
kolom=baris;
baris=dummy;

Sekian Terima Kasih