-
坐标
2013-03-20 15:02:55bd09经纬度坐标。允许的值为bd09ll、bd09mc、gcj02、wgs84。bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托坐标,gcj02表示经过国测局加密的坐标,wgs84表示gps获取的坐标bd09经纬度坐标。允许的值为bd09ll、bd09mc、gcj02、wgs84。bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托坐标,gcj02表示经过国测局加密的坐标,wgs84表示gps获取的坐标
-
【ArcGIS风暴】ArcGIS 10.2导入Excel数据X、Y坐标(经纬度、平面坐标),生成Shapefile点数据图层
2018-04-22 13:44:23用过CASS的人都知道,野外数字测图得到的点数据(平面坐标)可以直接导入到CASS中,进一步绘制地形图。那么,带有坐标的数据能不能在ArcGIS中实现点图层的生成呢?答案是必须的! 本文以气象台站shp数据的生成为例...用过CASS的人都知道,野外数字测图得到的点数据(平面坐标)可以直接导入到CASS中,进一步绘制地形图。那么,带有坐标的数据能不能在ArcGIS中实现点图层的生成呢?答案是必须的!
本文以气象台站shp数据的生成为例,详细介绍ArcGIS 10.2中导入X、Y坐标(这里指的是经度、纬度),生成Shapefile点数据的流程。
相关阅读:《全站仪、RTK测量坐标数据在CASS和ArcGIS中展点的区别和联系》
目录
1、数据准备
链接:https://pan.baidu.com/s/1eaulWklowfB-Qd5S-7wnkA
提取码:4ugl2、添加X、Y数据
(1)【文件】→【添加数据】→【添加XY数据】
add xy data (2)选择“气象台站.xlsx”中的sheet“气象台站”,X字段为经度,Y字段为纬度,Z字段为高程(此处没有),选择地理坐标系CGCS2000。
注意:坐标系只能选择地理坐标系,而不能选择投影坐标系!!!
选取字段、坐标系 点击【确定】。
(3)结果展示
3、属性表连接(Join)
属性表连接为可选项,可以不用连接,本文以连接各个气象台站的气温和降水数据为例。
(1)数据准备:气温降水.xlsx(点击下载)
(2)属性表连接
(3)结果展示
4、导出为Shapefile矢量数据
5、自定义投影转换
为了后面的计算面积等操作方便,现进行投影转换,本文自定义一个Albers投影,并进行投影转换。
注意:Albers投影的参数为中央经线105,标准纬线一25,标准纬线二47。
结果展示:
刘一哥GIS:专注GIS教育,探索GIS奥秘,分享GIS价值 !
-
地理坐标系与投影坐标系的区别
2018-08-17 22:57:17平时开展GIS开发、研究、应用工作,总会接触到坐标系,也会遇到坐标转换的问题,如地理坐标系、投影坐标系等。 地理坐标系是球面坐标,参考平面是椭球面,坐标单位是经纬度; 投影坐标系是平面坐标系,参考平面...1.基本概念
平时开展GIS开发、研究、应用工作,总会接触到坐标系,也会遇到坐标转换的问题,如地理坐标系、投影坐标系等。
地理坐标系是球面坐标,参考平面是椭球面,坐标单位是经纬度;
投影坐标系是平面坐标系,参考平面是水平面,坐标单位是米、千米等。
地理坐标系转换到投影坐标系的过程理解为投影,即将不规则的地球曲面转换为平面。
在当前的信息化的技术条件下,直接使用地理坐标系是不是更加真实准确,像谷歌地球;投影毕竟存在各种变形。
地理坐标系的WKID介绍:Geographic Coordinate Systems
投影坐标系的WKID介绍:Projected Coordinate Systems
EPSG:European Petroleum Survey Group,欧洲石油调查组织,
该组织负责专门维护地球上所有的测量坐标系统,并且给每组坐标系统都赋予了一个编号和一组描述(WKT),
比如大家常用的WGS84坐标系编号就是EPSG:4326,再比如互联网地图(谷歌、高德等)常用的伪墨卡托投影编号就是EPSG:3857。
可以理解成EPSG给大家维护了无数把尺子,并且给每把尺子搞了个编号,还标明了这把尺子适合什么条件下用。
2. 地理坐标系
2.1 地球的三级逼近
2.1.1 大地水准面
地球的自然表面不是平整的,需要想办法用数学公式描述地球表面,只能设想一个近似的数学面。
大地水准面是地球表面的第一级逼近。假设当海水处于完全静止的平衡状态时,从海平面延伸到所有大陆下部,而与地球重力方向处处正交的一个连续、闭合的曲面,这就是大地水准面。
地球椭球体是地球表面的第二级逼近。大地水准面可以近似成一个规则成椭球体,但并不是完全规则,其形状接近一个扁率极小的椭圆绕短轴旋转所形成的规则椭球体,这个椭球体称为地球椭球体。
地球椭球体的基本参数:
长半轴(赤道半径) a 短半轴(极半径) b 椭球体的扁率 à=(a-b)/a 第一偏心率 è=(a2-b2)/a2 第二偏心率 é=(a2-b2)/ b2
常见的椭球体的参数:
克拉索夫斯基椭球 1975 GRS椭球体 WGS-84椭球体 a 6 378 245.000 m 6 378 140.000 m 6 378 137.000 m b 6 356 863.019 m 6 356 755.288 m 6 356 752.314 m à 1/298.3 1/298.257 1/298.257 224 è 0.006 693 422 0.006 694 385 0.006 694 380 é 0.006 738 525 0.006 739 502 0.006 739 497
大地基准面是地球表面的第三极逼近。
椭球体是对地球的抽象,不能与地球表面完全重合,在设置参考椭球体的时候必然会出现有的地方贴近的好(参考椭球体与地球表面位置接近),有地地方贴近的不好的问题,因此这里还需要一个大地基准面来控制参考椭球和地球的相对位置。有以下两类基准面:
地心基准面:由卫星数据得到,使用地球的质心作为原点,使用最广泛的是 WGS 1984。
区域基准面:特定区域内与地球表面吻合,大地原点是参考椭球与大地水准面相切的点,例如Beijing-54、Xian-80。称谓的Beijing-54、Xian-80坐标系实际上指的是我国的两个大地基准面。
地心大地坐标系:指经过定位与定向后,地球椭球的中心与地球质心重合。如CGCS2000、WGS84。
参心大地坐标系:指经过定位与定向后,地球椭球的中心不与地球质心重合而是接近地球质心。区域性大地坐标系是我国基本测图和常规大地测量的基础。如Beijing-54、Xian-80。
2.2 地理坐标
地理坐标,就是用经线(子午线)、纬线、经度、纬度表示地面点位的球面坐标。
一般地理坐标可分为三种,天文经纬度,大地经纬度,地心经纬度。通常地图上使用的经纬度都为大地经纬度。
大地经度:参考椭球面上某点的大地子午面与本初子午面间的两面角。向东为正,向西为负。
大地纬度 :参考椭球面上某点的法线与赤道平面的夹角。向北为正,向南为负。
大地高: 指某点沿法线方向到参考椭球面的距离。
只需要参考椭球体参数以及大地基准面就可以确定地理坐标系。
下面是Arcgis中对北京1954坐标系的说明。——WKID:4214
主要就是以下几个参数:
Prime Meridian(起始经度) Datum(大地基准面): D_Beijing_1954 Spheroid(参考椭球体): Krasovsky_1940 (克拉索夫斯基椭球体)
西安-80地理坐标系。——WKID:4610
WGS-84地理坐标系。——WKID:4326
3.投影坐标系
在地球椭球面和平面之间建立点与点之间函数关系的数学方法,称为地图投影。
地球椭球表面是一种不可能展开的曲面,要把这样一个曲面表现到平面上,就会发生裂隙或褶皱。在投影面上,可运用经纬线的“拉伸”或“压缩”(通过数学手段)来加以避免,以便形成一幅完整的地图。地图投影的变形通常有:长度变形、面积变形和角度变形。在实际应用中,根据使用地图的目的,限定某种变形。
北京-54投影坐标系。——WKID:2435
国家2000投影坐标系。——WKID:4547
西安-80投影坐标系。——WKID:2383
WGS-84投影坐标系.。——WKID:3395
按变形性质分类:
等角投影:角度变形为零(Mercator)
等积投影:面积变形为零(Albers)
任意投影:长度、角度和面积都存在变形
其中,各种变形相互联系相互影响:等积与等角互斥,等积投影角度变形大,等角投影面积变形大。
从投影面类型划分:
横圆柱投影:投影面为横圆柱
圆锥投影:投影面为圆锥
方位投影:投影面为平面
从投影面与地球位置关系划分为:
正轴投影:投影面中心轴与地轴相互重合
斜轴投影:投影面中心轴与地轴斜向相交
横轴投影:投影面中心轴与地轴相互垂直
相切投影:投影面与椭球体相切
相割投影:投影面与椭球体相割
-
利用七参数进行CGCS2000坐标系到西安80坐标系的转换
2016-01-22 18:50:34因为工作,需要把CGCS2000坐标系下的坐标转到西安80坐标系下,中间由于用到了七参数,所以要进经过到空间直角坐标系的转换,然后再转换到西安80大地坐标下,最后再投影到西安80坐标的某度带。 要求是输入CGCS...问题
因为工作,需要把CGCS2000坐标系下的坐标转到西安80坐标系下,中间由于用到了七参数,所以要进经过到空间直角坐标系的转换,然后再转换到西安80大地坐标下,最后再投影到西安80坐标的某度带。
要求是输入CGCS2000下的大地坐标,最后输出西安80下的平面坐标。那么这项工作可以分为以下几个步骤:
1.CGCS2000下的大地坐标到CGCS2000下的空间直角坐标的转换;
2.CGCS2000下的空间直角坐标经过七参数转换,得到西安80下的空间直角坐标;
3.西安80下的空间直角坐标向西安80下的大地坐标转换;
4.西安80下的大地坐标进行高斯投影,得到平面坐标。大地坐标到空间直角坐标的转换
根据转换公式:
private double[] dd2kjzj(double[] dd){ double a=6378137,b=6356752.314; double ee=(a*a-b*b)/(a*a); double L=Math.toRadians(dd[0]),B=Math.toRadians(dd[1]),H=dd[2]; double N=a/Math.sqrt(1-ee*Math.sin(B)*Math.sin(B)); double X=(N+H)*Math.cos(B)*Math.cos(L); double Y=(N+H)*Math.cos(B)*Math.sin(L); double Z=(N*(1-ee)+H)*Math.sin(B); return new double[]{X,Y,Z}; }
注:函数里面的a,b的值是CGCS2000(和WGS84相同)下的。其他坐标系下的大地坐标向空间直角坐标的转换公式都是相同的,只是ab的值需要改动。
利用七参数进行坐标转换
得到空间直角坐标后就可以利用七参数进行坐标转换了。具体的七参数求解这里不进行讨论,有意向的网友可以自行百度。转换公式如下图所示:
经 猫醉 提醒,上图中a1为缩放因子,a2, a3, a4分别为xyz的旋转量(感谢)。/*七参数运算*/ private double[] qicanshu(double[] source){ double tX,tY,tZ; tX=dx+source[0]*(1+k)+Oz*source[1]-Oy*source[2]; tY=dy+source[1]*(1+k)-Oz*source[0]+Ox*source[2]; tZ=dz+source[2]*(1+k)+Oy*source[0]-Ox*source[1]; return new double[]{tX,tY,tZ}; }
方法中的source数组是CGCS2000坐标系下的空间直角坐标
dx,dy,dz是偏移量
Ox,Oy,Oz是旋转量
k是缩放因子空间直角坐标到大地坐标的转换
这个转换就是前面所示的逆运算,如下图
转换比较复杂,需要进行迭代运算。private double[] kjzj2dd(double[] kjzj){ double X=kjzj[0],Y=kjzj[1],Z=kjzj[2]; double a=6378140; double f=1/298.257; double e2=2*f-f*f; //e^2; double L=Math.toDegrees(Math.atan(Y/X)+Math.PI); double B2=Math.atan(Z/Math.sqrt(X*X+Y*Y)); double B1; double N; while (true){ N=a/Math.sqrt(1-f*(2-f)*Math.sin(B2)*Math.sin(B2)); B1=Math.atan((Z+N*f*(2-f)*Math.sin(B2))/Math.sqrt(X*X+Y*Y)); if(Math.abs(B1-B2)<0.0000000001) break; B2=B1; } double H=Z/Math.sin(B2)-N*(1-e2); double B=Math.toDegrees(B2); return new double[]{L,B,H}; }
高斯投影(正算)
在得到西安80坐标下的大地坐标后,需要进行高斯投影,这样才能够得到平面坐标。由于这个计算公式更加的复杂,公式什么的就不再列了。
//只适用于西安80下的坐标投影,代码来源于互联网,经测试还不错 private double[] dd2pm(double[] dd){ double L=Math.toRadians(dd[0]),B=Math.toRadians(dd[1]); //辅助量 double cosB = Math.cos(B); double sinB = Math.sin(B); double cosB_2 = cosB * cosB; double l = L - Math.toRadians(Lo); double ll = l * l; //计算系数 double N = 6399596.652 - (21565.045 - (108.996 - 0.603 * cosB_2) * cosB_2) * cosB_2; double a0 = 32144.5189 - (135.3646 - (0.7034 - 0.0041 * cosB_2) * cosB_2) * cosB_2; double a4 = (0.25 + 0.00253 * cosB_2) * cosB_2 - 0.04167; double a6 = (0.166 * cosB_2 - 0.084) * cosB_2; double a3 = (0.3333333 + 0.001123 * cosB_2) * cosB_2 - 0.1666667; double a5 = 0.00878 - (0.1702 - 0.20382 * cosB_2) * cosB_2; //计算高斯平面坐标值 double x = 6367452.1328 * B - (a0 - (0.5 + (a4 + a6 * ll) * ll) * ll * N) * cosB * sinB; double y = (1 + (a3 + a5 * ll) * ll) * l * N * cosB + 500000; double[] xy = new double[2]; xy[0] = x; xy[1] = y; return xy; }
这段代码只适用于IAG75(即西安80)下的高斯投影,其他的坐标系下的投影需要修改下参数。
总结
至此,左右的转换已经完成。用了大概一周吧(中间有很长一段时间纠结于误差大的惊人,今天才知道甲方给的测试数据有问题),算是复习了下专业知识。
下载源代码链接:https://pan.baidu.com/s/1sdglmFpIOhjTZvvp4zX_SQ 提取码:cmyz
使用方法
(补充自2018年4月19日)
程序是用java写的,封装成了CoordsTransformer 类。如果要用于C#、Python语言需要自行修改。// 首先获取该类的实例 CoordsTransformer coordsTransformer=CoordsTransformer.getInstance(); // 然后获取运行结果 double[] resutls=coordsTransformer.fromCgcs2Xian80(119.8774232,28.44428546,112.66);
如果数据量比较多的话,后面这句可以放在一个循环里面。
-
ggplot2学习笔记-修改坐标轴刻度
2018-07-22 14:27:371.修改坐标轴显示范围 scale_x_continous(limits=c("A","B")#显示范围为A-B 或者ylim(A,B) 2.修改坐标轴显示刻度 scale_x_continous(limits=c("A","B"), breaks=seq... -
坐标系
2020-03-11 11:06:23坐标系(coordinate system、CS) 由两个、三个甚至更多个坐标轴,单位标度等组成,使得可利用数学法则计算距离、角度或其他几何元素。如坐标轴相互垂直的笛卡尔(Cartesian)坐标系;坐标轴不必相互垂直的仿射... -
MATLAB 设置坐标名称,坐标刻度,坐标刻度名称,坐标点显示
2019-06-25 16:08:33可以用matlab提供的坐标轴设置函数axis进行设置(对当前坐标轴进行设置),具体用法如下: plot(x, y); // 画图后用axis函数设置坐标轴的范围 axis([xmin xmax ymin ymax]); % 设置坐标轴在指... -
笛卡尔坐标系
2019-04-10 20:01:41笛卡尔坐标系 在数学里,笛卡尔坐标系 (Cartesian coordinate system),亦称直角坐标系,是一种正交坐标系。二维的直角坐标系是由两条相互垂直、相交于原点的数线构成的。在平面内,任何一点的坐标是根据数轴上对应... -
R语言作图:坐标轴设置
2018-02-04 20:51:24要绘制一张赏心悦目的统计图表,坐标轴的设置至关重要。在R语言底层作图中,对坐标轴的调整主要通过调整plot函数、axis函数和title函数的一系列参数完成。 plot(x,y, ...) axis(side,at = NULL, labels = TRUE, ... -
计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换
2016-12-10 14:49:46相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换 -
你必须知道的地理坐标系和投影坐标系
2017-03-24 17:34:21你必须知道的地理坐标系和投影坐标系 -
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)
2018-09-10 20:00:24用matplotlib画二维图像时,默认情况下的横坐标和纵坐标显示的值有时达不到自己的需求,需要借助xticks()和yticks()分别对横坐标x-axis和纵坐标y-axis进行设置。 import numpy as np import matplotlib.pyplot as ... -
世界坐标系,相机坐标系和图像坐标系的转换(Python)
2020-02-05 16:45:40世界坐标系,相机坐标系和图像坐标系的转换(Python) 相机内参外参说明:https://panjinquan.blog.csdn.net/article/details/102502213 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系... -
Unity 世界坐标 屏幕坐标 视口坐标 GUI坐标
2018-07-20 11:54:06世界坐标: transform.position获取的是世界坐标 屏幕坐标: 单位像素 屏幕左下角(0,0)右上角(Screen.width,Screen.height) Screen.width = Camera.main.pixelWidth; Screen.height = Camera.main.... -
像素坐标、相机坐标、世界物理坐标之间的坐标转换条件。
2016-11-01 12:16:511、从像素坐标直接变化为世界物理坐标 下面是两者直接的主要的变化关系: 其中的前俩个可以以变化为一个3*3的矩阵,但是R|T是3*4的矩阵,当我们想把其进行合并成一个矩阵的时候,需要对其进行变化, 变换的规则是... -
地理坐标(经纬度坐标)和屏幕坐标(xy坐标)间的转换
2019-10-28 10:31:57在我们的屏幕上,有一张地图,这张地图经过缩放、平移、旋转,最终地理坐标和屏幕坐标的关系大致如下图所示: 这种关系要怎么描述呢?我们可以假设地图是一张纸,而屏幕是一堵墙。只要我们有两个图钉,我们就能把... -
直角坐标,柱坐标,球坐标变换
2019-12-31 06:29:24直角坐标(Cartesian),柱坐标(Cylindrical),球坐标(Spherical)之间的变换的结果非常容易在网上找到,但是推到过程不是那么的完善, 在这里记录一下。它们三者都是欧氏几何右手坐标系。 直角坐标系 柱坐标系 球坐标... -
世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真
2018-08-27 17:34:26世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真 照相机是日常生活中最常见的。它能把三维的空间图片等比例缩小投影在照片上,称为一个二维图像。 以下我们就讲一讲原理,并相应的进行matlab... -
世界坐标系和相机坐标系,图像坐标系的关系
2016-01-25 15:35:34二、图像坐标:我想和世界坐标谈谈(B) 玉米将在这篇博文中,对图像坐标与世界坐标的这场对话中涉及的第二个问题:谈话方式,进行总结。世界坐标是怎样变换进摄像机,投影成图像坐标的呢? 玉米做了一个简单的... -
opencv 从像素坐标得到世界坐标系坐标
2019-07-23 17:27:24文章目录坐标变换详解坐标转换代码实现 坐标变换详解 1.1 坐标关系 相机中有四个坐标系,分别为world,camera,image,pixel world为世界坐标系,可以任意指定轴和轴,为上图P点所在坐标系。 camera为相机坐标系,... -
导航基础之坐标系整理——导航坐标系、地球坐标系、载体坐标系
2020-01-07 17:06:48概述 在三维空间中,无约束的物体具有6个自由度,即三个方向的位置和三个欧拉角。故在导航中,明确坐标系的定义是基础。 ...导航坐标系可以是地固坐标系、地理坐标系等等,通常使用的是当地水... -
matlab设定坐标轴范围和坐标轴显示
2018-12-03 11:22:33设定坐标轴范围: 最简单的办法 axis([xmin,xmax,ymin,ymax]); 分坐标轴设定: xlim([xmin,xmax]);%对X轴设定显示范围 ylim([ymin,ymax]);%对Y轴设定显示范围 zlim([zmin,zmax]);%对Z轴设定显示范围 ... -
MATLAB设置坐标轴坐标
2019-10-18 20:25:45问题:设置坐标轴的任意坐标 比如x轴的范围是从0到500,想设置成47、98、321。此处数字任意,想设置成什么就设置成什么。 解决 编辑——坐标轴属性 右下角更多属性 属性栏中下拉选择XTick 追加、删除自己想要的... -
坐标系旋转后的点坐标、坐标点旋转后的点坐标
2018-05-24 19:38:32坐标系旋转后的点坐标、坐标点旋转后的点坐标 1. 坐标系旋转后的点坐标 -
球坐标系
2019-06-28 14:56:48球坐标系是三维坐标系的一种,用以确定三维空间中点、线、面以及体的位置,它以坐标原点为参考点,由方位角、仰角和距离构成。球坐标系在地理学、天文学中都有着广泛应用。 球坐标系 球坐标中是这样表示空间中... -
unity 七种坐标系统详解与互相转换的方法 模型坐标、世界坐标、观察坐标(视口坐标)、裁剪坐标、屏幕坐标...
2018-06-22 13:09:212,ui坐标,在canvas中的ui坐标。数据类型是vector3 3,世界坐标,三维世界坐标 数据类型是vector3 Unity3D的四种坐标系 【Unity3D的四种坐标系】 1、World Space(世界坐标):我们在场景中添加物体... -
世界坐标系、相机坐标系、图像平面坐标系
2018-07-12 18:04:09一、四个坐标系简介和转换 相机模型为以后一切标定算法的关键,只有这边有相当透彻的理解,对以后的标定算法才能有更好的理解。本人研究了好长时间,几乎每天都重复看几遍,最终才会明白其推导过程。 &... -
三维空间坐标系变换-旋转矩阵
2018-09-03 18:38:08空间中三维坐标变换一般由三种方式实现,第一种是旋转矩阵和旋转向量;第二种是欧拉角;第三种是四元数。这里先介绍旋转矩阵(旋转向量)与欧拉角实现三维空间坐标变换的方法以及两者之间的关系。 这里以常见的世界... -
西安80坐标转成经纬度坐标
2018-11-05 15:17:17西安80坐标转成经纬度坐标 1:我的x坐标5045849.03;我的y坐标42594842.63 x坐标是7位数,y坐标是8位数 2:数据分析x7位,y加上带号8位,投影带号为42,所以是3度带投影(我看别人这么分析的),然后去找3度带和6...
-
校园导航系统.zip
-
Unity游戏开发之数字华容道
-
jdk-7u191-linux-x64.tar.gz.zip
-
大学生职业生涯规划书.docx
-
易语言开发通达信DLL公式接口
-
securecrt一款好用的终端仿真程序
-
计算机考研408历年真题和答案汇编(2009-2021) 以及每一年的单独PDF
-
第九章 Caché 变量大全 $KEY 变量
-
在鼠标位置输入一个字母(模拟按健).e
-
设计模式之工厂模式
-
算法系列:基于 FPGA 的图像边缘检测系统设计(sobel算法)
-
FFmpeg4.3黄金系列课程:c++版
-
微猫wetool个人版安装包修复低版微信问题.exe
-
向量算子优化Vector Operation Optimization
-
中文说明worldserver.conf
-
【数据分析-随到随学】Python语法强化与数据处理
-
方法重写和多态
-
Arrays分类算法-Spiral Traverse(待完成)
-
第3章 入门程序、常量、变量
-
前端性能优化