在 QGIS 中开启 BIL、BIP 或 BSQ 格式档案¶
在处理遥测和科学资料时,常会遇到像是 BIL、BIP 或 BSQ 类型的格式。QGIS 用来读取影像资料的 GDAL 函式库有支援此类格式,但它没有办法直接开启这些档案。这里我们要展示如果从此格式建立相关的支援档案,让它们可以在 QGIS 中读取。
波段依行交错排列 (Band interleaved by line,BIL)、波段依像素交错排列 (Band interleaved by pixel,BIP),与波段序排列 (Band sequential,BSQ) 是三种常用于多波段影像储存的格式。(更多资讯请参考这里)
一般来说,这些档案都会附有一个 .hdr
档。如果你的资料集之中有 .hdr
档,请务必确认 .bil、.bsq 或 .bip 的主档名与 .hdr 档相同,而且他们必须在同一个资料夹之中。举例来说,如果有个档案名称为 image.bil
,伴随的档案应为 image.hdr
,而且会与 image.bil
位在相同资料夹。如此一来,当你选择 ,然后开启 image.bil
时,就不会出现任何问题。
有些时候,这些档案偏偏就是没有 .hdr
档。这种情况下,你需要利用本教学的方法自己创造一个才行。
取得资料¶
我们要使用 全球土地复盖设施(Global Land Cover Facility)提供的 AVHRR 全球土地复盖分类资料(Global Land Cover Classification data)作为示例。
此资料集以 BSQ 档发布。下载像素解析度 1 度的资料集
为了方便起见,你也可以直接用下面的连结下载:
gl-latlong-1deg-landcover.bsq.gz
资料来源 [GLCF]
操作流程¶
解压缩并取出 .bsq 档:如使用 Windows,可以使用 7-Zip 读取和解压缩 .gz 档。你会看到压缩档中只有一个叫做
gl-latlong-1deg-landcover.bsq
的 .bsq 档,没有 hdr 档。
如果你尝试在 QGIS 中开启
gl-latlong-1deg-landcover.bsq
的话,会有错误讯息显示。
如要克服此错误,我们得自己创造一个副档名为
.hdr
的档案。hdr 意味着档头(header),内含着资料集的结构以及各种资讯。这些资讯通常可以在资料集的诠释资料(Metadata)中找到,如果你连诠释资料都没有,找看看资料来源的网站或文件说明有没有提供。有些资讯就算你不知道,也可以用猜的。在本例中,资料的下载页面有提供连结至诠释资料,把它下载下来然后开启它。
.hdr 档必须要是纯文字档案,并且编排为以下的格式才行。我们已经找到某些参数了,但其他的还需要花点心力。格式的细节请参考这里。
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>
打开文字编辑器,然后依照前一个步骤的注明的格式输入,再把档案另存为
gl-latlong-1deg-landcover.hdr
。务必确认你的档名结尾不是.txt
。在文字档中的某些值很容易理解:ncols 和 nrows 是影像的行数和每行的像素数目,可以从诠释资料找到;cellsize 是像素解析度,诠释资料中为 1。左下角的 X 与 Y 座标(xllcorner 和 yllcorner)要靠我们决定,由于影像复盖全球,又使用经纬度编排,xllcorner 和 yllcorner 可以分别设为 -180 和 -90。无资料值(nodata_value)的资讯也找不到,用猜的话 -9999 是个较保险的数值。从诠释资料中,我们还可找到像素格式(Pixel Format)是 Byte,所以 nbits 要填上 8,然后 pixeltype 则为 **byte_unsigned**(无号位元组)。我们也没有位元组顺序(byteorder)的资讯,所以来试试看 msbfirst(最高有效位)。你也可以从这里下载正确格式的 hdr 档。
现在我们有档头档案了,把它移到与
gl-latlong-1deg-landcover.bsq
相同的目录下,然后再 QGIS 中选择 ,选择gl-latlong-1deg-landcover.bsq
作为输入档案然后按下 开启。
接下来的视窗会要你选择 CRS。由于档案是以经纬度编排,这边的 CRS 要选 WGS84 EPSG:4326。最后,你就可以看到 QGIS 已经载入本资料了。