利用最小二乘法拟合脱密坐标的方法

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

公司某项目中,业主使用了由中科院进行过脱密处理的公网地图,同时提供给我们了几组控制点对。该控制点对为cgcs2000经纬度与脱密经纬度之间的对应关系。

2.解决思路尝试

2.1四参数法

我们对坐标的转换经常使用的是四参数法、七参数,前者是针对二维坐标提供四个参数(两个平移,一个旋转,一个缩放),后者是针对三维坐标提供七个参数(三个平移,三个旋转,一个缩放)。这两种模型在坐标系转换上经常使用。

但是,我们不断更换控制点对,尝试计算四参数,残差却一直显示过大。以残差最小的一组四参数进行了多个点的转换验证,误差均大于10M。

2.2保密插件法

由业主向测绘院申请保密插件进行坐标的实时脱密处理。但是该方案存在以下几个问题:

a.保密插件申请流程比较麻烦,而且费时。

b.大量轨迹点实时转换需要保密插件可以支持高并发,这点待定。

c.由之前用过保密插件的现场反馈,保密插件需要保持连网,在网络环境很差的情况下不好使用。

2.3最小二乘法(六参数)

在我们用arcgis输入了控制点对,然后选择最小二乘法进行转换后,发现坐标套合整体上不错。于是决定使用这个方案进行转换。

但是为什么这里不能使用四参数模型呢?

因为脱密坐标不是一个基于地理规则的变化,或者确切说他与我们的椭球体、投影均没有关系,它是通过复杂的数学公式进行的不规则变化。

3.最小二乘法简介

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

在坐标转换中,我们将其归纳为以下公式:

X1=a0+a1*X+a2*Y;

Y1=b0+b1*X+b2*Y;

4.工具使用

在网上可以下载到坐标转换工具,输入多组(大于三组)控制点对,计算出六参数。同样,一定要控制残差在一个可控的范围。将六参数与公式结合,便可以进行坐标的实时脱密转换了。

                                           

 

 

 

                       -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                          如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                      

时间: 2024-09-20 13:40:08

利用最小二乘法拟合脱密坐标的方法的相关文章

最小二乘法拟合

 /** * 最小二乘法拟合 *  *  * @author Ken转发 *  */public class Linest { /**  * <p>  * 函数功能:最小二乘法曲线拟合  * </p>  *   * @param x  *            实型一维数组,长度为 n .存放给定 n 个数据点的 X 坐标  * @param y  *            实型一维数组,长度为 n .存放给定 n 个数据点的 Y 坐标  * @param n  *        

php利用反射实现插件机制的方法

 本文实例讲述了php利用反射实现插件机制的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <?php /**  * @name    PHP反射API--利用反射技术实现的插件系统架构  */    interface Iplugin{        public static function getName();    }    function findPlugins(){        $plugins = array();        foreach (get_de

XP系统下利用注册表禁用光驱的方法

  XP系统下利用注册表禁用光驱的方法 1.首先单击"开始",进入"运行",输入"regedit",打开注册表. 2.然后在注册表编译器里,找到"HKEY_CURRENT_USER"选项,单击右键,展开. 3.接着在展开的注册表项里,找到"Software"选项,展开. 4.下一步在展开的注册表项里,找到"Microsoft"选项,展开.

利用js(jquery)操作Cookie的方法说明

 本篇文章主要是对利用js(jquery)操作Cookie的方法进行了详细的说明介绍,需要的朋友可以过来参考下,希望对大家有所帮助 Cookie操作是我们在Web开发中经常会用到的功能,以往我们一般是通过javascript实现的.下面这款jquery插件是专门用来进行cookie操作   的,包括cookie的添加.清除.读取-- 你可以在这款插件的主页下载到它:http://jquery.com/ 当在页面中引用了jquery文件及该插件文件后,可进行如下操作:   设置cookie 设置一

js使用onmousemove和onmouseout获取鼠标坐标的方法

 本文实例讲述了js使用onmousemove和onmouseout获取鼠标坐标的方法.分享给大家供大家参考.具体如下: 下面的js代码演示了onmousemove和onmouseout事件的用法,鼠标在指定区域内移动时会动态显示鼠标坐标信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <!DOCTYPE html> <html> <head> <script> func

win8系统下利用网卡限制上网速度的方法

  凡是使用路由器上网的用户都知道,如果一台电脑正在下载东西,那么将影响其他用户电脑的正常使用,传统解决方法是调整路由器限制,来达到对某一台电脑网速进行限制的问题,除了这类方法,我们还可以通过第三方软件来限制以及网卡限制,故此小编在这里为大家带来一种通过网卡对上网速度限制的方法,这里小编以win8系统为例,为大家详细介绍下! win8系统下利用网卡限制上网速度的方法 第一步:同时按下"Win+X"组合键,呼出系统快捷菜单,然后点击"设备管理器"; 第二步:在设备管理

利用隐藏分区快速恢复系统的方法

  小编这里要跟大家分享的是关于如何利用隐藏分区快速恢复系统的方法,所谓的隐藏分区即在常规条件下,不显示也不能直接使用的硬盘的部分空间.该空间可能未被划分出来,也可能是当前系统不认识的格式分区,或者是可以隐藏的备份分区.在一些品牌电脑上常常会出现隐藏分区,专门用来存放系统或者备份文件,特别是来备份或者存放它们品牌的数据或特色设置等.接下来一起来看看如何利用隐藏分区快速恢复系统! 步骤一.首先按下电源键开机,当显示屏出现电脑LOGO时请连续点击键盘上F9按键,在Windows恢复过程中,系统会自动

Android开发中MotionEvent坐标获取方法分析_Android

本文实例讲述了Android开发中MotionEvent坐标获取方法.分享给大家供大家参考,具体如下: Android MotionEvent中getX()与getRawX()都是获取屏幕坐标(横),但二者又有区别getX()           :   是获取相对当前控件(View)的坐标 getRawX()   :   是获取相对显示屏幕左上角的坐标 演示示例代码 Java代码: public class MainActivity extends Activity implements On

微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法

原文:微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法 微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法 腾讯地图坐标转百度坐标 案例:本次开发的系统是一个商家联盟积分系统.在全国各地都有商家联盟的网点. 要求实现的功能 a.微信粉丝通过微信号就能查看附近的商家 b.我的联盟系统统计在2公里之内的商家网点 c.并标出商家和粉丝位置的距离是多少米. d.在商家的详细介绍页面设置百度地图接入步行.公交.驾车一键导航功能 那么现在问题来了: 问题1:在做微信O2O开发的