1、地图投影投影变换地图配准 预备知识(复习)既然GIS是解决地理位置(未知)怎样从GIS的角度去认识地球?GIS应该是从坐标系统开始的,然后带领我们一步步向前 GIS中的坐标系定义是GIS系统的基础,正确定义GIS系统的坐标系非常重要。GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐标系,首先必须弄清地球椭球体(Ellipsoid)、大地基准面(Datum)及地图投影(Projection)三者的基本概念及它们之间的关系。大地水准面是由静止海水面并向大陆延伸所形成的不规则的封闭曲面。它是重力等位面,即物体沿该面运动
2、时,重力不做功(如水在这个面上是不会流动的)地球椭球体地球椭球体只不过是一个具有长半轴,短半轴和变率的椭球体,可以任意放置的,它没有为我们规定度量的起点,所以就有基准面的产生,而基准面就是规定了度量标准。基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面.椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,一般意义上基准面与参考椭球体是同一个概念。地球椭球的参数可用地球椭球的参数可用a(长半径长半径)、b(
3、短半径)及(短半径)及(扁率)表示。扁率(扁率)表示。扁率为为 aba 1979年国际大地测量与地球物理联合会推荐的地球椭球参数年国际大地测量与地球物理联合会推荐的地球椭球参数a=6378140m=6378140m,b=6356755.3m,=6356755.3m,=1:298.257。旋转椭球面是数学表面,可用如下的公式表示:旋转椭球面是数学表面,可用如下的公式表示:1222bzayax 按一定的规则将旋转椭球与大地体套合在一起,这项工作按一定的规则将旋转椭球与大地体套合在一起,这项工作称称椭球定位椭球定位。定位时采用椭球中心与地球质心重合,椭球短轴。定位时采用椭球中心与地球质心重合,椭球短
4、轴与地球短轴重合,椭球与全球大地水准面差距的平方和最小,与地球短轴重合,椭球与全球大地水准面差距的平方和最小,这样的椭球称这样的椭球称总地球椭球总地球椭球。总地球椭球与参考椭球(水准面)的区别总地球椭球与参考椭球(水准面)的区别PPPPababM铅垂线法线(大地原点)大地水准面总地球椭球体面参考椭球体面地面总地球椭球体参考椭球体赤道赤道(北极)(南极)总地球椭球定位方法:椭球中心与地球中心重合,椭球短轴与地球自转轴重合等条件。参考椭球定位方法:椭球中心与地球中心不要求重合,要求椭球短轴与地球自转轴平行,使大地起始子午面与天文起始子午面平行,使椭球面与本国大地水准面充分接近。上述两种椭球大小相同
5、:长半径a=6378140m,短半径b=6356755.3m,扁率=1:298.257用途:全球测图用途:国家测图 对于地理坐标,只需要确定两个参数,即椭球体和大地基准面。(为什么?)有了基准面我们就可以操作了,我们的一切都是基于基准面的,为了说明这个,我还看了一下相关资料。ENVI中的坐标定义文件存放在HOMEITTIDL70productsenvi45map_proj 文件夹下,三个文件记录了坐标信息:ellipse.txt椭球体参数文件 datum.txt基准面参数文件 map_proj.txt坐标系参数文件 在ENVI中自定义坐标系分三步:定义椭球体、基准面和定义坐标参数第一步、添加椭
6、球体 语法为,。这里将“Krassovsky,6378245.0,6356863.0”因为Envi下面有这个椭球体,我没有加。第二步、添加基准面 语法为,。这里将“Beijing-54,Krassovsky,-12,-113,-41”datum.txt末端。第三步、定义坐标 在ENVI任何用到投影坐标的功能模块中都可以新建坐标系(在任何地图投影选择对话框中,点击“New”按钮。),这里我们选择Map-Customize Map Projection,如图所示,将相应的参数添加,这里添加的参数如图所示。注:投影类型选择Transverse Mercator,Scale factor填写0.999
7、6,与Gauss-Kruger等同。False easting中如果把带号,即39500000,得到的坐标就带有带号。填写相关参数后,在map_proj.txt坐标系参数文件中看到,完毕。ERDAS中添加椭球体和基准面F:Program FilesLeica GeosystemsGeospatial Imaging 9.2etcspheroid.tab 记住一个椭球体可以有多个基准面基本语法为:“椭球名称”“椭球序号”椭球体长半轴 椭球体短半轴“椭球名称”0 0 0 0 0 0 0“基准面名称1”dx1 dy1 dz1 rx1 rz1 ds1“基准面名称2”dx2 dy2 dz2 rx2 rz
8、1 ds2.其中:“基准面名称”dx dy dz rx rz ds中,dx、dy、dz是x、y、z3个轴对于WGS84基准点的平移参数,单位为m。rx、ry、rz是x、y、z、3个轴对于WGS84基准点的旋 转参数,单位为rad。Ds是对于WGS84基准点的比例因子。在更多的情况下椭球的基准面是基于它本身的。这时假定椭球的中心点是与没有经过任何平移或旋转的WGS84的基准面相重合,即这时椭球基准面的7个参数均 为0,即这时椭球基准面的7个参数均为0。我国在使用克拉索夫斯基椭球和IAG75椭球时就是用椭球体本身为基准 在spheroid.tab文件末尾加入如下语句即可,IAG 75 75 637
9、8140 6356755.2882“xian 80”0 0 0 0 0 0 0 在Viewer中打开图像数据,Utility-layer info,在projection info 栏中可以看到目前的数据投影信息还不完整。点击edit菜单中的change map model,在弹出窗口中将unite参数设为meters,projection,参数设为Tansverse Mercator。接下来再点击edit菜单中的Add/Change projection,在弹出对话框中将原始投影参数添加进去。投影变换想想同一基准面的投影变换?不同基准面之间的变换?在在ArcGIS Desktop中进行三参数
10、或七参数精中进行三参数或七参数精确投影转换确投影转换 ArcGIS中定义的投影转换方法,在对数据的空间信息要求较高的工程中往往不能适用,有比较明显的偏差。在项目的前期数据准备工作中,需要进行更加精确的三参数或七参数投影转换。下面介绍两种办法来在ArcGIS Desktop中进行这种转换。方法1:在ArcMap中进行动态转换假设原投影坐标系统为Xian80坐标系统,本例选择为系统预设的Projected Coordinate SystemsGauss KrugerXian 1980Xian 1980 GK Zone 20投影,中央经线为117度,要转换成Beijing 1954Beijing 1
11、954 GK Zone 20N。在ArcMap中加载了图层之后,打开View-Data Frame Properties对话框,显示当前的投影坐标系统为Xian 1980 GK Zone 20,在下面的选择坐标系统框中选择Beijing 1954 GK Zone 20N,在右边有一个按钮为Transformations.动态投影(ArcMap)所谓动态投影指,ArcMap中的Data 的空间参考或是说坐标系统是默认为第一加载到当前工作区的那个文件的坐标系统,后加入的数据,如果和当前工作区坐标系统不相同,则ArcMap会自动做投影变换,把后加入的数据投影变换到当前坐标系统下显示!但此时数据文件所
12、存储的数据并没有改变,只是显示形态上的变化!因此只是显示形态上的变化!因此叫动态投影!叫动态投影!表现这一点最明显的例子就是,在Export Data时,会让你选择是按this layers source data(数据源的坐标系统导出),还是按照the Data(当前数据框架的坐标系统)导出数据!(注意在某些叠加分析的时候会出错?)返回 首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为 地理坐标系统,是以经纬度为地图的存储单位的。很明显,Geographic coordinate syst em是球
13、面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作 呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上?这必然要求 我们找到这样的一个椭球体。这样的椭球体具有特点:可以量化计算的。具有长半轴,短 半轴,偏心率。以下几行便是Krasovsky_1940椭球及其相应参数。Spheroid:Krasovsky_1940 Semimajor Axis:6378245.000000000000000000 Semiminor Axis:6356863.018773047300000000 Inverse Flattening(扁率):298.300000000000
14、010000 然而有了这个椭球体以后还不够,还需要一个大地基准面将这个椭球定位。在坐标系统描 述中,可以看到有这么一行:Datum:D_Beijing_1954 表示,大地基准面是D_Beijing_1954。点击打开一个投影转换对话框,可以在对话框中看到Convert from和Into表明了我们想从什么坐标系统转换到什么坐标系统。在下方的using下拉框右边,点击New.,新建一个投影转换公式,在Method下拉框中可以选择一系列转换方法,其中有一些是三参数的,有一些是七参数的,然后在参数表中输入各个转换参数。输入完毕以后,点击OK,回到之前的投影转换对话框,再点击OK,就完成了对当前地图
15、的动态投影转换。这时还没有对图层文件本身的投影进行转换,要转换图层文件本身的投影,再使用数据导出,导出时选择投影为当前地图的投影即可。方法2:对于有大量图层需要进行投影转换时,这种手工操作的办法显得比较繁琐,每次都需要设置参数。可以只定义一次投影转换公式,而在此后的转换中引用此投影转换公式即可。这种方法需要在ArcTools中进行操作。在Data Management ToolsProjections and Tranformations下,有Create Custom Geographic Transformation命令。打开这个命令,选择输入和输出的投影,可以是系统自带的也可以是自己设置
16、的,选择转换方法,与方法种介绍的类似,可选择三参数或者七参数,然后输入各个参数指。通过为这个投影转换公式指定一个名称,可以在以后的操作中直接引用此公式而不用重复输入各个参数了。点击OK生成这个投影转换公式。在方法一里面,我们是动态的改变了地图的投影,然后通过数据导出的办法将要转换投影的图层重新生成的。在这里,我们可以直接使用Data Management ToolsProjections and Tranformations下的Project命令,生成转换后的图层文件,Project命令分别位于Feature和Raster目录下,分别针对于矢量和栅格数据。在这个命令中,在指定了输入的图层后,I
17、nput Coordinate System自动的识别出了输入的投影,需要用户指定输出的投影,如果两者与之前定义投影转换公式的输入和输入投影的话,在下面的Geographic Transformation下拉框中会出现之前定义的公式名称,直接选择即可使用。这些参数怎么获取?(1)直接去买(2)如果有同一个点在不同椭球体下的坐标可以在mapgis中实现,mapgis可以反算出这几个参数。附加内容:把地球椭球面上的图形展绘到平面上,必然产生变形。为把地球椭球面上的图形展绘到平面上,必然产生变形。为了减少变形误差,采用一种适当的投影方法,这就是高斯投影。了减少变形误差,采用一种适当的投影方法,这就是
18、高斯投影。高斯投影是将地球划分为若干个带,先将每个带投影到圆高斯投影是将地球划分为若干个带,先将每个带投影到圆柱面上。然后展成平面。我们可以设想将一个空心的椭圆柱横柱面上。然后展成平面。我们可以设想将一个空心的椭圆柱横套地球,使椭圆柱的中心轴线位于赤道面内并通过球心。将地套地球,使椭圆柱的中心轴线位于赤道面内并通过球心。将地球按球按6分带分带,从从0起算往东划分起算往东划分,06为第为第1带带,612为第为第2带,带,174180为第为第30带带,东半球共分东半球共分30个投影,按带进行投影。进行第个投影,按带进行投影。进行第1带投影时,使地球带投影时,使地球3经线与经线与圆柱面相切,圆柱面相
19、切,3经线长不变形。经线长不变形。036YY1296XX036YXXY12961231314151617181920212223123452425262728293031323334353637383940414244454606121872788490961021081141201261321381 306带3带图中上半部为图中上半部为6度带分带情况:度带分带情况:将地球按将地球按6分带分带,从从0起算往东划分起算往东划分,06(第(第1带)带),612(第(第2带),带),174180(第(第30带)带),东半东半球共分球共分30个投影,我国领土从个投影,我国领土从1323带。带。图中下半
20、部为图中下半部为3带分带情况:带分带情况:1 304 30(第(第1带),带),4 30 (第(第2带)带),我国领土,我国领土3带从带从2446带。带。等角等角:即椭球面上图形投影到即椭球面上图形投影到平面之后,其角度相等,无角度平面之后,其角度相等,无角度变形,但距离与面积稍有变形。变形,但距离与面积稍有变形。中央经线投影后仍直线,中央经线投影后仍直线,且且长度不变形,见右图。长度不变形,见右图。因此因此用这用这条直线作为平面直角坐标系的纵条直线作为平面直角坐标系的纵轴轴x轴轴。而两侧其他经线投影后而两侧其他经线投影后呈向两极收敛的曲线,并与中央呈向两极收敛的曲线,并与中央经线对称,距中央
21、经线越远长度经线对称,距中央经线越远长度变形越大。变形越大。赤道投影也为直线。因此赤道投影也为直线。因此,这条直线作为平面直角坐标的横轴这条直线作为平面直角坐标的横轴y轴轴。南北纬线投影后呈凹向两极的曲线,且与赤道投影对称。南北纬线投影后呈凹向两极的曲线,且与赤道投影对称。NSNS0606圆桩面Y轴X轴投影带中央经线赤道投影(c)高斯平面直角坐标系定义:高斯平面直角坐标系定义:高斯投影各带构成独立的坐标高斯投影各带构成独立的坐标系,中央经线为系,中央经线为x轴,赤道投影为轴,赤道投影为y轴,两轴的交点为坐标原轴,两轴的交点为坐标原点。点。由由通用横坐标通用横坐标换算换算实际横坐标实际横坐标公式
22、如下:公式如下:Y实际实际=Y通用通用(去掉小数点向左数第(去掉小数点向左数第7、8两位为带两位为带号)号)-500000m 注:我国领土从注:我国领土从1323带,带号占两位,直接去掉头两位即带,带号占两位,直接去掉头两位即可。可。例如:某点通用横坐标例如:某点通用横坐标Y通用通用=20386575.310m,求该,求该 点实际横点实际横坐标。坐标。首先,将首先,将 20386575.310m中中20去掉(第去掉(第7位为位为0,第,第8位为位为2)则则 Y实际实际=386575.310-500000 =-113424.690m如何快速判断是3度带还是6度带?X,Y判断?地图配准个人理解:将
23、不正确的坐标赋予正确的坐 标的过程?过程线:配准-定义投影-投影转换 几何校正就是将图像数据投影到平面上,使其符合地图投影系统的过程;而将地图坐标系统赋予图像数据的过程,称为地理参考(Georeferencing)。由于所有地图投影系统都遵从于一定的地图坐标系统,所以几何校正过程包含了地理参考过程。前几天在群里激烈的讨论了一下,配准过程中能不能用经纬度校正?最终觉得是可以的。首先,我们知道平面坐标肯定有经纬度坐标;其次即使这个点是球面上的,但是投影后不应该改变吧,但是一定要知道是那个基准面上的,因为同一个点在不同的基准面上是不一样的。回忆了一下自己曾经做过的实验,虽然当时没有在ArcGis下做
24、,但是原理是不应该变的把!为了说明问题,我只好把我的实验报告拿出来(有点舍不得)这次配准是借助R2V和Workstation。Workstation的功能很强大的,但是我只用了有限的几次,可悲啊!上面几个点是我用来做控制点的,在Workstation中打开后,然后输入经纬度坐标。看到geographic想到了什么?因为我用的是经纬度做校正的点,那么我们还应该把这个弄到平面上去吧,看下面的 这些参数应该很清楚了,这些才是做平面投影时候的参数。在网上还找到一下东西,顺便整理一下,希望主人能够谅解先看第一个主人的:地图配准可分为影像配准和空间配准。影像配准的对象是raster图,譬如TIFF图。配准
25、后的图可以保存为ESRI GRID,TIFF,或ERDAS IMAGINE格式。空间配准(Spatial Adjustment)是对矢量数据配准。一、影像配准在ArcGIS中配准:1.打开ArcMap,增加Georeferencing工具条。2.把需要进行纠正的影像增加到ArcMap中,会发现Georeferencing工具条中的工具被激活。在view/data frame properties的coordinate properties中选择坐标系。如果是大地(投影)坐标系选择predefined中的Projected coordinate system,坐标单位一般为米。如果是地理坐标系(
26、坐标用经纬度表示)表示则选择Geographic coordinate system。3.纠正前可以去掉“auto adjust”前的勾。在校正中我们需要知道一些特殊点的坐标。如公里网格的交点,我们从图中均匀的取几个点,不少于7个。在实际中,这些点要能够均匀分布在图中。4.首先将Georeferencing工具条的Georeferencing菜单下Auto Adjust不选择。5.在Georeferencing工具条上,点击Add Control Point按钮。6.使用该工具在扫描图上精确到找一个控制点点击,然后鼠标右击,Input X and Y输入该点实际的坐标位置。采用地理坐标系时应输
27、入经纬度,经纬度用小数表示,如1103030应写成 110.508(=110+30.5/60)。7.用相同的方法,在影像上增加多个控制点,输入它们的实际坐标。8.增加所有控制点后,在Georeferencing菜单下,点击Update Display。9.更新后,就变成真实的坐标。10.在Georeferencing菜单下,点击Rectify,将校准后的影像另存。这位主人已经告诉我们,我们在投影的时候看我们要选择以米为单位的还是以经纬度为单位的,一大堆的文字描述的很详细,但是如果能有相关图片的配合应该更好!第二位主人的:影像校准所有图件扫描后都必须经过扫描纠正,对扫描后的栅格图进行检查,以确保
28、矢量化工作顺利进行。对影像的校准有很多方法,下面介绍一种常用方法。打开ArcMap,增加Georeferncing工具条。把需要进行纠正的影像增加到ArcMap中,会发现Georeferncing工具条中的工具被激活。在校正中我们需要知道一些特殊点的坐标。通过读图,我们知道坐标的点就是公里网格的交点,我们可以从图中均匀的取几个点。一般在实际中,这些点应该能够均匀分布。首先将Georeferncing工具条的Georeferncing菜单下Auto Adjust不选择。在Georeferncing工具条上,点击Add Control Point按钮。使用该工具在扫描图上精确到找一个控制点点击,然
29、后鼠标右击输入该点实际的坐标位置,如下图所示:用相同的方法,在影像上增加多个控制点,输入它们的实际坐标。增加所有控制点后,在Georeferencing菜单下,点击Update Display。更新后,就变成真实的坐标。在Georeferencing菜单下,点Rectify,将校准后的影像另存。通过比较可以看出两位主人的步骤是一某一样的,只是一个用的是经纬度为单位,而另一位是用米为单位的。如果我没有记错的话,还有其他办法比如把这些要校正的点对应起来写在一个txt文件里,然后读取进来。对于与矢量的校正就略了吧。刚才说过校正后要定义投影:对于以经纬度为单位的我个人认为分为两步:Geographic-project 而以米为单位的一步到位。个人觉得,定义投影只是附加了相关信息,而投影变换才会使配准后的坐标发生改变。但是我个人建议用米为单位,如果以经纬度为单位,稍不准确,那么误差就会很大。如有不同意见的,请QQ留言或者邮件交流。Thanks for attention!