Aprire file in formato BIL, BIP o BSQ in QGIS.

Nel trattare dati provenienti da sensori remoti e dataset scientifici capita spesso di imbattersi in formati come BIL, BIP o BSQ. la libreria GDAL - che è utilizzata da QGIS per leggere i file raster, supporta questi formati ma non può aprirli da sola. Esamineremo il processo che conduce alla creazione di file di supporto che permettono a QGIS di leggere questi file.

Bande interalacciate a mezzo di linee (BIL), bande interallaciate con i pixel (BIP) e bande sequenziali (BSQ) sono comuni metodi di organizzare i dati immagine per immagini multibanda. (Per saperne di più su questi formati)

Solitamente, questi file sono accompagnati da un file con estensione .hdr . Se il vostro set di dati comprende un file .hdr assicuratevi che il nome radice dei file con estensione .bil, .bsq, e .hdf file sia il medesimo e che si trovino tutti nella stessa directory. Per esempio, se il file si chiama image.bil`, il file associato dovrà chiamarsi  ``image.hdr e dovrà essere presente nella stessa directory del file image.bil. A questo punto, quando andrete su Layer ‣ Aggiungi Raster, il file image.bil una volta selezionato, verrà aperto senza alcun problema.

Molte volte i file non arrivano con un file .hdr associato. In questi casi, dovremo creare questo file manualmente come viene mostrato nel seguito della nostra esercitazione.

Ottenere i dati necessari

Useremo come esempio i dati di AVHRR Global Land Cover Classification data tratti da Global Land Cover Facility

I dataset di Global Coverage sono distribuiti in file di formato BSQ. Scaricate il 1 Degree pixel resolution dataset.

For convenience, you may directly download a copy of the dataset from the link below:

gl-latlong-1deg-landcover.bsq.gz

Fonte Dati [GLCF]

Procedimento

  1. Unzip and extract the .bsq file. On Windows, you may use the excellent 7-Zip utility to read and extract .gz file. You will see that you only have a .bsq file named gl-latlong-1deg-landcover.bsq. There is no hdr file.

../_images/1196.png
  1. Rendetevi conto del fatto che se tentate di aprire il file gl-latlong-1deg-landcover.bsq in QGIS così com’è, riceverete un messaggio di errore.

../_images/2160.png
  1. Per superare questo problema, creeremo un file con estensione .hdr , cioè un file header. Un file header - in italiano file intestazione - contiene informazioni circa il dataset e la sua organizzazione. Di solito, queste informazioni sono fornite come componenti dei metadati del dataset. Se non disponete di metadati, date un’occhiata al sito web o alla documentazione per trovare delle indicazioni. Tra l’altro alcune informazioni possono essere inferite anche quando non se ne possiede una conoscenza diretta. Nel caso di questo dataset la pagina dove si scaricano i dati fornisce un link di collegamento ai metadati. Scaricate i metadati e apriteli.

../_images/3100.png
  1. Il file .hdr che creeremo dovrà essere un file di testo organizzato nel modo presentato di seguito. Alcuni di questi parametri ci vengono forniti in modo esplicito dai metadati mentre altri hanno bisogno di essere inferiti in base al nostro ragionamento. Click su questo link se volete imparare qualcosa riguardo i vari formati.

ncols <number of columns or width of the raster>
nrows <number of rows or height of the raster>
cellsize <pixel size or resolution>
xllcorner <X coordinate of lower-left corner of the raster>
yllcorner <Y coordinate of the lower-left corner of the raster>
nodata_value <pixel value to be ignored>
nbits <number of bits per pixel>
pixeltype <type of values stored in a pixel, typically float or integer>
byteorder <byte order in which image pixel values are stored, msb or lsb>
  1. Open a text editor and create a file in the format specified in the previous step. Save the file as gl-latlong-1deg-landcover.hdr. Make sure the file doesn’t have .txt at the end. Some of the values in the text files are easy to understand. The ncols and nrows come from the metadata as the Number of Lines and Number of Pixels per Line. The cellsize is 1 as the Pixel resolution from the metadata. The X,Y coordinate of lower-left corner needs to be worked out by us. Since the file covers the entire World and units are lat/long, xllcorner and yllcorner are -180 and -90 respectively. We do not have any information about the nodata_value, so -9999 is a safe bet. From metadata again, Pixel Format is Byte, so nbits will equal to 8 and pixeltype will be byte_unsigned. We do not have information about the byteorder, so leave it as msbfirst. You may download the correctly formatted HDR file from here.

../_images/557.png
  1. Adesso che avete il file header, mettetelo nella stessa directory in cui si trova gl-latlong-1deg-landcover.bsq`. Portatevi quindi in in QGIS, andate su Layer ‣ Aggiungi Raster, e selezionate gl-latlong-1deg-landcover.bsq come vostra scelta e fate click su Apri.

../_images/655.png
  1. Nella prossima schermata vi verrà chiesto di scegliere un SR. Dal momento che i dati sono in Lat/Long scegliete WGS84 EPSG:4326 come SR. A questo punto vedrete il dataset finalmente caricato regolarmente in QGIS.

../_images/754.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)