投影数据库
A. 数据库-关系代数-投影 看图
投影操作是一个关系操作,所谓的出现重复行是指多个记录在投影属性上具有相同的取值,例如:
学号 姓名 性别 年龄
01 艾伦 男 17
02 三笠 女 17
03 阿明 男 17
在性别和年龄两个属性上投影后数据集只保留这两个属性列,结果如下:
性别 年龄
男 17
女 17
男 17
其中第一行和第三行就是重复行,虽然来自不同记录,但是这两个属性上的内容相同
对于关系代数来说,需要消除相同的行(SQL语句默认不消除重复)
最后结果就是:
性别 年龄
男 17
女 17
B. 数据库投影的定义是什么
一个dataset(对应GDALDataset类)是一个光栅数据以及和它有关系的信息的集合。 特别地dataset包含了光栅数据的大小(像素、线等)。dataset同时也为对应的 光栅数据指定了坐标系统。dataset本身还可以包含元数据,它们以一种键/值对 的方式来组织。
GDAL的数据集是基于OpenGIS Grid Coverages的格式定义的。
坐标系统Dataset的坐标系统由OpenGIS WKT字符串定义,它包含了:
一个全局的坐标系名称。
一个地理坐标系名称。
一个基准标识符。
椭球体的名字。长半轴(semi-major axis)和反扁率(inverse flattening)。
初子午线(prime meridian)名和其与格林威治子午线的偏移值。
投影方法类型(如横轴莫卡托)。
投影参数列表(如中央经线等)。
一个单位的名称和其到米和弧度单位的转换参数。
轴线的名称和顺序。
在预定义的权威坐标系中的编码(如EPSG)。
更多信息请参考OpenGIS WKT坐标系统定义,以及osr教程文档和 OGRSpatialReference类的描述文档。
在GDAL中,返回坐标系统的函数是GDALDataset::GetProjectionRef()。 它返回的坐标系统描述了地理参考坐标,暗含着仿射地理参考转换,这地理参考转换是由GDALDataset::GetGeoTransform()来返回。由GCPs地理参考坐标描述的坐标系统是由 GDALDataset::GetGCPProjection()返回的。
注意,返回的坐标系统字符串“”表示未知的地理参考坐标系统。
仿射地理变换
GDAL数据集有两种方式描述栅格位置(用点/线坐标系)以及地理参考坐标系之间的关系。 第一种也是比较常用的是使用仿射转换,另一种则是GCPs。
仿射变换由6个参数构成,它们由GDALDataset::GetGeoTransform()返回它们把点/线坐标, 用下面的关系转将点/线影射到地理坐标:
Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2)
Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)
假设影像上面为北方,GT2和GT4参数为0,而GT1是象元宽,GT5是象元高, (GT0,GT3)点位置是影像的左上角。
注意,上面所说的点/线坐标系是从左上角(0,0)点到右下角,也就是坐标轴从 左到右增长,从上到下增长的坐标系(即影象的行列从左下角开始计算)。 点/线位置中心是(0.5,0.5)。