精华内容
下载资源
问答
  • 七参数坐标转换

    2018-08-30 21:41:02
    这是一个通用的地理坐标转换工具,基于七参数转换原理,实现了毫米级别的转换。如实现了WGS-84和XIAN80坐标系统之间的相互转化,经度的转换精度为小数点后7位,纬度的转换精度为小数点后6位,平面坐标转换精度为...
  • 这个不是现成的工具,而是具体的C语言代码功能实现。利用C语言实现了大地坐标系和空间直角坐标系的相互转换,以及求解七参数的值的方法。
  • 这个不是现成的工具,而是具体的Java语言代码功能实现。利用java语言实现了大地坐标系和空间直角坐标系的相互转换,以及求解七参数的值的方法。
  • 基于布尔萨模型的C++开发的一个简单的七参数坐标转换小程序
  • 四参数和七参数坐标转换,包括通过已知参数正算坐标,通过已知坐标反算转换参数,反算时用最小二乘法平差求解。 程序中附赠测试数据和强大的矩阵库! 结果已经验证准确,欢迎各位使用!
  • 参考了学长给的代码,修改完善后感觉简洁很多,有注释,交作业没问题(但最好还是另做修改)
  • 针对上个程序很多人不会用的问题,这个程序做了详细的中文说明。 解压后就可以在VS中调试使用,需要...四参数和七参数坐标转换,包括通过已知参数正算坐标,通过已知坐标反算转换参数,反算时用最小二乘法平差求解。
  • 布尔莎七参数;公共点残差;大地测量学;坐标换算;大地测量学 的编程作业,含源码,有兴趣的童鞋可以看一看,运行没有任何问题,用于坐标转换,最后成果输出为TXT文件
  • 七参数坐标转换

    2018-01-30 15:21:31
    依据不同的坐标对数据,工具可以自动求取七参数的数据。
  • 七参数坐标转换工具(可在WGS84、北京54、西安80、CGCS2000坐标系中任意两个转换),也可以自定义参数转换
  • 坐标转换时四参数与七参数坐标转换含义及区别
  • 文中介绍了使用Bursa(布尔莎)数学模型进行七参数坐标转换的方法与步骤,并基于EXCEL VBA平台开发了参数求解及坐标转换的自定义函数。由此,不但方便了计算,而且易于数据管理,具有很好的实用性。
  • 七参数坐标转换的几种解法1.简介2.七参数模型3.最小二乘的多种解法3.1参数平差3.2 布尔沙解法3.3 符有限制条件的间接平差3.4 罗德里格矩阵3.5四元数 1.简介 坐标转换是测量领域中数据处理的基础性工作。目前,广为...

    1.简介

    坐标转换是测量领域中数据处理的基础性工作。目前,广为接收的三维坐标转换模型是七参数模型,即1个缩放参数、3个旋转角度参数和3个平移参数。理论上9参数模型更加完善,但使用场景很少。

    2.七参数模型

    七参数的数学模型为:

    [ X Y Z ] s = k ∗ [ 1 0 0 0 c o s a − s i n a 0 s i n a c o s a ] [ c o s b 0 s i n b 0 1 0 − s i n b 0 c o s b ] [ c o s c − s i n c 0 s i n c c o s c 0 0 0 1 ] [ X Y Z ] o + [ T x T y T z ] (1) \begin{bmatrix}X \\Y \\ Z\end{bmatrix} _s=k*\begin{bmatrix}1&0 &0 \\0&cosa&-sina \\ 0&sina&cosa\end{bmatrix}\begin{bmatrix}cosb&0 &sinb\\0&1&0 \\ -sinb&0&cosb\end{bmatrix}\begin{bmatrix}cosc& -sinc&0 \\sinc&cosc&0 \\ 0&0&1\end{bmatrix}\begin{bmatrix}X \\ Y \\Z \end{bmatrix}_o+\begin{bmatrix} Tx \\ Ty \\Tz \end{bmatrix}\tag{1} XYZs=k1000cosasina0sinacosacosb0sinb010sinb0cosbcoscsinc0sinccosc0001XYZo+TxTyTz(1)
    式(1)中具体可概括为:
    [ X Y Z ] s = k ∗ [ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ] [ X Y Z ] o + [ T x T y T z ] (2) \begin{bmatrix}X \\Y \\ Z\end{bmatrix} _s=k*\begin{bmatrix}a1& a2 &a3 \\b1&b2&b3 \\ c1&c2&c3\end{bmatrix}\begin{bmatrix} X \\ Y \\Z \end{bmatrix}_o+\begin{bmatrix} Tx \\ Ty \\Tz \end{bmatrix}\tag{2} XYZs=ka1b1c1a2b2c2a3b3c3XYZo+TxTyTz(2)
    根据公共点的两套坐标,对式(2)的求解具体可概括为两类:最小二乘与整体最小二乘。本文主要简述最小二乘的几种解法。

    3.最小二乘的多种解法

    直接来看,对式(1)的求解很难。所以根据式(1)中旋转矩阵的转化与求解,目前的解法主要有以下几种:

    3.1参数平差

    式(1)不易求解,但不是不能求解。硬刚这7个参数有点难,但通过矩阵的合并,泰勒一阶展开,也可以写出来。将式(1)对7个参数进行泰勒一阶展开,然后罗列参数方程求解。

    3.2 布尔沙解法

    布尔沙模型是针对3个旋转角都是小角度的坐标转换模型,使用场景单一。小角度是多小呢,目前我的认知是不超过5度,这个关键是看我们的转换精度的预期控制。

    3.3 符有限制条件的间接平差

    硬刚这7个参数有点难,将式(1)化为式(2),对13个参数进行泰勒一阶展开,罗列参数方程。因为参数(2)旋转的参数见有约束,所以还要罗列6个条件方程。

    3.4 罗德里格矩阵

    比较巧妙的将式(1)中的旋转矩阵进行转换,最后仍然是一共有7个参数,所以还可以归结为间接平差的一种,只不过相比3.2法,求解简单一点。

    3.5四元数

    同样是将旋转矩阵进行了转换,但是感觉很复杂,比硬刚还硬刚,所以之后不写这个东西了。

    这是第一篇,之后会详细阐述这几种解法的过程,包括代码和数据,敬请期待与点赞。

    展开全文
  • python实现四参数七参数坐标转换

    千次阅读 热门讨论 2019-11-29 15:02:05
    四参和七参转换转换坐标没有什么问题,我附录了一些坐标信息检验,不过七参数的数值有些问题,不知道是哪里有些错误,希望大家指正,下面是完整代码: 在这里插入代码片 ```import numpy as np from numpy import ...

    四参和七参转换,转换坐标没有什么问题,我附录了一些坐标信息检验,不过七参数的数值有些问题,不知道是哪里有些错误,希望大家指正,下面是完整代码:

    在这里插入代码片
    ```import numpy as np
    from numpy import linalg
    
    def four():
        def four_number(x1,x2,x3,x4,xx1,xx2,xx3):
            
            """由三个共同点求两个不同平面直角坐标系的坐标转换"""
    
            def caculate_four(x4,old,new):
                    
                """计算新坐标"""        
                mid=new-old
                A_=np.array([[1,0,x4[0],-x4[1]],
                             [0,1,x4[1],x4[0]]])
    
                old_=np.array([[x4[0]],
                               [x4[1]]])
    
                xxx=linalg.lstsq(A,mid,rcond=-1)
    
                v=np.dot(A_,xxx[0])
                new_=old_+v
                return new_
    
            A=np.array([[1.0,0,x1[0],-x1[1]],
                        [0,1.0,x1[1], x1[0]],
                        [1.0,0,x2[0],-x2[1]],
                        [0,1.0,x2[1], x2[0]],
                        [1.0,0,x3[0],-x3[1]],
                        [0,1.0,x3[1], x3[0]]])
    
            old=np.array([[x1[0]],
                          [x1[1]],
                          [x2[0]],
                          [x2[1]],
                          [x3[0]],
                          [x3[1]]])
            
            new=np.array([[xx1[0]],
                          [xx1[1]],
                          [xx2[0]],
                          [xx2[1]],
                          [xx3[0]],
                          [xx3[1]]])
            
            return caculate_four(x4,old,new)
        
        x1 = [4031675.025,552545.805]
        xx1 = [4031634.029,552496.906]
        x2 = [4032992.528,547359.488]
        xx2 = [4032951.494,547310.569]
        x3 = [4026900.438,534348.966]
        xx3 = [4026859.289,534300.075]
    
        x4 = [4027240.551,541727.683]
        print("平面直角新坐标为\n",four_number(x1,x2,x3,x4,xx1,xx2,xx3))
    
    
    ##    四参数转换数据
    ##    旧:a 4031675.025,552545.805
    ##        b 4032992.528,547359.488
    ##        c 4026900.438,534348.966
    ##        
    ##    新:a 4031634.029,552496.906
    ##        b 4032992.528,547359.488
    ##        c 4026900.438,534348.966
    ##
    ##    待求旧:4027240.551,541727.683
    ##    待求新:4027199.461,541678.802
    four()
    
    
    def seven():
        def seven_number(x1,x2,x3,x4,xx1,xx2,xx3):
            
            """由三个共同点求两个不同空间直角坐标系的坐标转换"""
            
            def caculate_seven(x4,old,new):
                
                """计算新坐标"""
                
                mid=new-old
                A_=np.array([[1,0,0,x4[0],0,-x4[2],x4[1]],
                            [0,1,0,x4[1],x4[2],0,-x4[0]],
                            [0,0,1,x4[2],-x4[1],x4[0],0]])
    
                old_=np.array([[x4[0]],
                              [x4[1]],
                              [x4[2]]])
    
                xxx=linalg.lstsq(A,mid,rcond=-1)
    
                v=np.dot(A_,xxx[0])
                new_=old_+v
                return new_
    
            A=np.array([[1,0,0,x1[0],0,-x1[2],x1[1]],
                        [0,1,0,x1[1],x1[2],0,-x1[0]],
                        [0,0,1,x1[2],-x1[1],x1[0],0],
                        [1,0,0,x2[0],0,-x2[2],x2[1]],
                        [0,1,0,x2[1],x2[2],0,-x2[0]],
                        [0,0,1,x2[2],-x2[1],x2[0],0],
                        [1,0,0,x3[0],0,-x3[2],x3[1]],
                        [0,1,0,x3[1],x3[2],0,-x3[0]],
                        [0,0,1,x3[2],-x3[1],x3[0],0]])
    
            old=np.array([[x1[0]],
                          [x1[1]],
                          [x1[2]],
                          [x2[0]],
                          [x2[1]],
                          [x2[2]],
                          [x3[0]],
                          [x3[1]],
                          [x3[2]]])
            
            new=np.array([[xx1[0]],
                          [xx1[1]],
                          [xx1[2]],
                          [xx2[0]],
                          [xx2[1]],
                          [xx2[2]],
                          [xx3[0]],
                          [xx3[1]],
                          [xx3[2]]])
            return caculate_seven(x4,old,new)
           
        #共同点坐标
        x1=[3516952.028,519078.188,36.393]
        x2=[3516556.925,519081.738,31.720]
        x3=[3516569.509,518700.605,31.097]
        xx1=[3516904.452,519026.990,34.565]
        xx2=[3516509.353,519030.538,29.893]
        xx3=[3516521.939,518649.409,29.272]
        #待转换坐标
        x4=[3516587.828,518636.550,30.246]
    
        print("\n空间直角新坐标为\n",seven_number(x1,x2,x3,x4,xx1,xx2,xx3))
    
    ##    七参数转换数据
    ##    旧:a 3516952.028,519078.188,36.393
    ##        b 3516556.925,519081.738,31.720
    ##        c 3516569.509,518700.605,31.097
    ##
    ##    新:a 3516904.452,519026.990,34.565
    ##        b 3516509.353,519030.538,29.893
    ##        c 3516521.939,518649.409,29.272
    ##
    ##    待求旧:d 3516587.828,518636.550,30.246
    ##    待求新:d 3516540.258,518585.355,28.421
        
    seven()    
    
    
    展开全文
  • 基于MATLAB的七参数坐标系统转换问题分析,张鲜妮,王磊,GPS测量的坐标是基于WGS-84坐标系下的,而我国实用的测量成果大多都是基于北京54坐标系下的。随着GPS测量技术的广泛使用,由WGS-84坐标�
  • 而不同空间直角坐标系之间的转换一般通过七参数或者四参数来实现坐标转换。1四参数两个不同的二维平面直角坐标系之间转换通常使用四参数模型,四参数适合小范围测区的空间坐标转换,相对于七...

    5a978ae0ff5020c1824f160b65f25c52.gif

    坐标转换时RTK技术里不可缺少的重要部分。不同坐标系,其椭球体的长半径,短半径和扁率是不同的。比如我们常用的四种坐标系北京54、西安80、WGS84、CGCS2000所对应的椭球体,它们的椭球体参数就各不相同。而不同空间直角坐标系之间的转换一般通过七参数或者四参数来实现坐标转换。 1四参数 两个不同的二维平面直角坐标系之间转换通常使用四参数模型,四参数适合小范围测区的空间坐标转换,相对于七参数转换的优势在于只需要2个公共已知点就能进行转换,操作简单。 在该模型中有四个未知参数,即: (1)两个坐标平移量(△X,△Y),即两个平面坐标系的坐标原点之间的坐标差值。 (2)平面坐标轴的旋转角度A,通过旋转一个角度,可以使两个坐标系的X和Y轴重合在一起。 (3)尺度因子K,即两个坐标系内的同一段直线的长度比值,实现尺度的比例转换。通常K值几乎等于1。 四参数的数学含义是:用含有四个参数的方程表示因变量(y)随自变量(x)变化的规律。 举个例子,在珠海既有北京54的平面坐标又有珠海的平面坐标,在这两种坐标之间转换就用到四参数。四参数的获取需要有两个公共已知点。2七参数

    七参数一般采用布尔沙模型法,适合大范围测区的空间坐标转换,转换时需要至少3个公共已知点。因为有较多的已知点,所以七参数转换的坐标精度要高于四参数转换的坐标精度,但是操作较四参数法复杂。

    七参数模型中有七个未知参数,即:

    (1)三个坐标平移量(△X,△Y,△Z),即两个空间坐标系的坐标原点之间坐标差值。

    (2)三个坐标轴的旋转角度(△α,△β,△γ)),通过按顺序旋转三个坐标轴指定角度,可以使两个空间直角坐标系的XYZ轴重合在一起。

    (3)尺度因子K,即两个空间坐标系内的同一段直线的长度比值,实现尺度的比例转换。通常K值几乎等于1。

    七参数其涉及到的七个参数为:X平移,Y平移,Z平移,X旋转,Y旋转,Z旋转,尺度变化K。

    3区别 适用范围不一样:四参数用于较小范围,七参数用于较大范围。 需要的控制点不一样:四参考最少需要2个控制点对,七参数最少需要3个控制点对。 转换结果不一样:四参数仅对平面转换。 可以说,四参数是用于两个平面直角坐标系之间的互相转换,而七参数是用于两个三维空间直角坐标系之间的转换。 四参数可以利用任意两个具有三维坐标的已知等级控制点求出,求解较为简单,也较容易理解;而七参数需要在测区布设一定密度的等级控制网点,利用整个网的WGS-84坐标系下的三维约束平差结果和当地坐标系统的二维约束平差结果及各点的高程解算,求解较为复杂,理解起来相对困难。

    转载于:全成地信

    本文仅限行业学习交流之用,版权、著作权归原载平台及作者所有。我们尊重作者的成果,如涉嫌侵权,请联系我们及时删除。

    - END -

    常见坐标系种类及坐标转换讲解(PPT可下载)

    判断投影坐标是3度带还是6度带?计算当地中央子午线?看这篇就够了

    “2000坐标”成了标配,你还不懂坐标系定义和转换?(含西安80/WGS84转2000实操)

    干货 | 关于投影和坐标系那些事,你是否都已还给了老师?

    ArcGIS中的坐标系统和投影变换

    e61be4f03439685a8d5c519343b935f4.gif 266c1fb94829b446e4de961f0f3ff03d.gif戳原文,更有料!
    展开全文
  • 七参数坐标转换.zip

    2021-03-19 13:34:18
    七参数坐标转换适用于北京54坐标系、西安80坐标系、WGS84坐标系、国家2000不同坐标系之间(非同一椭球体)的较大范围内的高精度坐标转换。需要至少三个公共点,并对多个公共点进行精度分析,自动选择最优有效公共点...
  • 而不同空间直角坐标系之间的转换一般通过七参数或者四参数来实现坐标转换。 二.四参数转换 两个不同的二维平面直角坐标系之间转换通常使用四参数模型,四参数适合小范围测区的空间坐标转换,相对于七参数转换的...

    目录

     

    一.前言

    二.四参数转换

    三.七参数转换

    四.区别


    一.前言

     

            不同坐标系,其椭球体的长半径,短半径和扁率是不同的。比如我们常用的四种坐标系北京54、西安80、WGS84、CGCS2000所对应的椭球体,它们的椭球体参数就各不相同。而不同空间直角坐标系之间的转换一般通过七参数或者四参数来实现坐标转换。 

     

    二.四参数转换

     

    两个不同的二维平面直角坐标系之间转换通常使用四参数模型,四参数适合小范围测区的空间坐标转换,相对于七参数转换的优势在于只需要2个公共已知点就能进行转换,操作简单。

    在该模型中有四个未知参数,即:

    (1)两个坐标平移量(△X,△Y),即两个平面坐标系的坐标原点之间的坐标差值。

    (2)平面坐标轴的旋转角度A,通过旋转一个角度,可以使两个坐标系的X和Y轴重合在一起。

    (3)尺度因子K,即两个坐标系内的同一段直线的长度比值,实现尺度的比例转换。通常K值几乎等于1。

     

      四参数的数学含义是:用含有四个参数的方程表示因变量(y)随自变量(x)变化的规律。

     

    举个例子,在珠海既有北京54的平面坐标又有珠海的平面坐标,在这两种坐标之间转换就用到四参数。四参数的获取需要有两个公共已知点。

     

    三.七参数转换

     

    七参数一般采用布尔沙模型法,适合大范围测区的空间坐标转换,转换时需要至少3个公共已知点。因为有较多的已知点,所以七参数转换的坐标精度要高于四参数转换的坐标精度,但是操作较四参数法复杂。

     

    七参数模型中有七个未知参数,即:

    (1)三个坐标平移量(△X,△Y,△Z),即两个空间坐标系的坐标原点之间坐标差值。

    (2)三个坐标轴的旋转角度(△α,△β,△γ)),通过按顺序旋转三个坐标轴指定角度,可以使两个空间直角坐标系的XYZ轴重合在一起。

    (3)尺度因子K,即两个空间坐标系内的同一段直线的长度比值,实现尺度的比例转换。通常K值几乎等于1。

    七参数其涉及到的七个参数为:X平移,Y平移,Z平移,X旋转,Y旋转,Z旋转,尺度变化K。

     

    四.区别

     

    • 适用范围不一样:四参数用于较小范围,七参数用于较大范围。
    • 需要的控制点不一样:四参考最少需要2个控制点对,七参数最少需要3个控制点对。
    • 转换结果不一样:四参数仅对平面转换。
    • 四参数是用于两个平面直角坐标系之间的互相转换,而七参数是用于两个三维空间直角坐标系之间的转换。

     

    四参数可以利用任意两个具有三维坐标的已知等级控制点求出,求解较为简单,也较容易理解;而七参数需要在测区布设一定密度的等级控制网点,利用整个网的WGS-84坐标系下的三维约束平差结果和当地坐标系统的二维约束平差结果及各点的高程解算,求解较为复杂,理解起来相对困难。

    常见坐标系种类和坐标系统:坐标系统和坐标转换相关基础知识

     

    展开全文
  • 地理编码,实现各个坐标系统之间的转换并实现数据导入与导出。解决因为各大坐标系的因参考椭球几何中心不同而产生的定位误差。
  • 大地测量课程作业,布尔沙模型的坐标转换,以及空间和大地坐标之间的转换,用Qt在mingw下写的,有啥问题私我,新人哪做的不好求轻喷和关照谢谢
  • 大地测量程序必备,本程序使用了C#编写,操作简单,便于实现,如果有也在学习大地测量学的同学可以进行下载参考学习。
  • 基于 MATLAB 的七参数坐标系统转换问题分析 1 张鲜妮 21, ,王磊 21, 1中国矿业大学环境与测绘学院,江苏徐州 (221008 2江苏省资源环境信息工程重点实验室,江苏徐州 (221008 E-mail: 摘 要:GPS 测量的坐标是基于 WGS...
  • 布尔沙模型为常用的三维坐标转换模型,算法简单且容易实现。其主要是利用泰勒级数展开的方法将模型线性化,然后解算坐标转换的旋转和平移参数,最后可以 通过参数求解出在目的坐标系下坐标
  • 利用C++实现坐标转换,包含读取文件数据,利用矩阵(需自行添加矩阵库)计算,公共点求取出7参数,再用所求7参数检核非公共点。还可求取坐标残差,单位权中误差。。
  • 7参数坐标转换程序

    2016-09-19 18:42:01
    两个不同的三维空间直角坐标系之间转换时,通常使用七参数模型(数学方程组),在该模型中有七个未知参数。
  • 基于Matlab的七参数坐标转换研究与实现
  • 基于Matlab的七参数坐标转换研究与实现.pdf
  • 公共点和检核点坐标文件格式。 总点数 公共点名 源B 源L 目标B 目标L 4 a 39.363751864 120.370491472 39.36373678 120.37100839 b 39.334831878 120.392565339 39.33481664 120.39308201 c 39.365195702 120....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,963
精华内容 7,585
关键字:

七参数坐标转换