Format Check

Il servizio di Format Check rappresenta lo strumento principale di controllo per l'accesso agli altri servizi o strumenti implementati. Questo strumento controlla infatti se l'archivio di immagini satellitari fornito in input è conforme allo standard stabilito come input ai vari servizi. Al Format Check vengono fornite in ingresso l'informazione del formato (inputFormat) che dovrebbero avere le immagini contenute nell'archivio e la piattaforma (platform), ovvero da quale satellite sono state acquisite le immagini. Questo servizio controlla la conformità dell'archivio in input ai seguenti standard:

Terminata l'elaborazione il servizio restituisce un messaggio dove informa l'utente se l'archivio di immagini è conforme alle informazioni specificate come input; in caso di esito negativo viene specificato in quale parametro l'archivio non è conforme all'input fornito per il test.

In figura 3.1 è rappresentato il diagramma di funzionamento del servizio di Format Check, in cui a seconda degli input forniti vengono seguiti cammini differenti per il test del pacchetto. Dallo schema si vede una prima differenziazione tra i formati GeoTIFF e CEOS: nel caso il formato sia GeoTIFF non vi sono altre alternative perché lo script accetta solo la piattaforma Landsat-7, mentre per il formato CEOS vi è un`ulteriore ramificazione per differenziare le piattaforme Landsat-5 e Landsat-7.

Figure 3.1: Diagramma del servizio Format Check.
\includegraphics[width=10cm]{images/formatCheck.eps}

Il riconoscimento del formato dell'immagini contenute dentro l'archivio è stato implementato in un programma chiamato fck che, data un`immagine di input, ne riconosce il formato. Il programma fck essendo implementato con le librerie GDAL riconosce tutti i formati supportati dalle librerie stesse.

Per eseguire il servizio di Format Check sull'immagine in input, il programma fck è basato sulla chiamata alla funzione GDALOpen() che fallisce (restituendo NULL, e stampando a monitor un messaggio di errore) nel caso in cui il file di input non sia un file immagine riconosciuto. Diversamente, nel caso in cui il contenuto nella variabile hDataset sia diverso da NULLi, e venga quindi riconosciuto un formato di immagine valido, l'esecuzione procede con la chiamata alla funzione GDALGetDatasetDriver che restituisce il riferimento al Driver (memorizzato nella variabile hDriver) associato al dataset in fase di elaborazione. Usando il Driver dell'immagine si può richiamare la funzione GDALGetDriverLongName che permette di stampare il nome del formato dell'immagine. Nelle seguenti linee di codice è riportato come viene fatto il controllo:

language=c
\begin{lstlisting}[frame=tb]{somecode}
hDataset = GDALOpen( argv[i], GA_ReadOnly...
...Driver ) );
\par
}else{
printf(''%s: Not image\n'',argv[i]);
}
\end{lstlisting}

Mario Cavicchi 2007-07-25