最常用的影像数据格式应该是geotiff,除了一个tif文件外,还有一个tfw文件用以存放坐标信息。
如:
tiananmen.tif
tiananmen.tfw
组成一个geotiff文件。
(如果数据比较复杂,可能还会有.aux文件存放投影信息,.ovr文件存放金字塔信息。)
我们常用的一些真彩色卫星影像数据,就是geotiff格式的。
首先,*.tif文件与一般的图像文件无异,可以转为一个数组矩阵,矩阵下标就是像素坐标,每个像素的值可能是RGB,也可能是CMYK,构成图片的色值;或者这个*.tif文件是灰度文件,每个像素只有一个值,这个值可以是高度、人口密度等指标。
*.tfw文件,以ASCII编码,存放的坐标转换用的仿射参数。
0.00000257901740294【X方向上的像素分辨率 a】
0 【X方向的旋转系数 d】
0 【Y方向的旋转系数 b】
-0.00000257901740294 【Y方向上的像素分辨率 e】
117.96054991989289817 【栅格地图左上角象素中心X坐标 c】
40.95142835449129848 【栅格地图左上角象素中心Y坐标 f】
像素坐标(pixelX,pixelY)与实际地理坐标(geoX,geoY)之间的转换函数为:
geoX=a*pixelX+b*pixelY+c
geoY=d*pixelX+e*pixelY+f
如果知道一组像素坐标和实际地理坐标,可以通过最小二乘法,计算出abcdef六个参数。
当然除了geotiff外,还有其他影像数据格式,像素坐标与地理坐标之间的转换方式是一样的,有些区别的是,像素文件的压缩方式。这些区别,与地理空间无关,单纯就是图像文件tif、jpeg、png、img等之间的区别。
(更多可参见:https://gisgeography.com/gis-formats/)
除了上面表格中的,*.png加上*.pgw,也是一种GIS栅格文件,*.jpeg加上*.jgw,也是一种GIS栅格文件,为了兼容数据,大部分图像文件都支持空间扩展。
软件上来说,QGIS和arcgis都可以读写绝大部分栅格文件。
程序上来说,geotool和GDAL也都支持读写大部分栅格文件。
不过栅格文件结构很简单,就当做简单文件和矩阵来读写也行。