Advertisement

经纬度转化为xy坐标系_CGCS2000坐标系如何在TransCAD/TransModeler中添加

阅读量:

TransCAD/TransModeler软件的地图(map)希望以标准的地理坐标经纬度来表示空间位置。如果遇到不同坐标系存储的数据,需要整合到同一个地图上,就需要支持各种坐标系统和地图投影。TransCAD/TransModeler包括百余种坐标系统,支持多种地图投影,可以将不同的坐标系统存储的空间数据的整合。当你拿到一张城市和交通规划CAD图纸时,你肯定会寻思使用什么坐标系和投影导入。很不幸,国内很多城市的坐标系和投影参数是保密的,而且都不一样,会造成一些困惑:一方面无法使用精准的坐标系和投影导入(一般我们可以用Gauss -Kruger高斯-克吕格即横轴墨卡托投影、UTM通用横轴卡托投影导入近似地使用),另一方面现在做区域规划的时候,不同城市的图很难无缝地拼起来。

国家推出了最新的2000国家大地坐标系,英文名称为China Geodetic Coordinate System 2000,英文缩写为CGCS2000(有关参数等详细信息可网上查看)。例如第三次全国土地调查的成果,就要求用全国统一的CGCS2000坐标系提供。采用2000国家大地坐标系具有科学意义,随着经济发展和社会的进步,我国航天、海洋、地震、气象、水利、建设、规划、地质调查、国土资源管理等领域的科学研究需要一个以全球参考基准为背景的、全国统一的、协调一致的坐标系统,来处理国家、区域、海洋与全球化的资源、环境、社会和信息等问题,需要采用定义更加科学、原点位于地球质量中心的三维国家大地坐标系。

关于地理坐标系(GeographicCoordinate System)、投影坐标系(Projected Coordinate System)等一些基础知识,在这里就不详细介绍了。实际上里面还有各种参数的专业术语,很多GIS专业出身的人在日常工作中被请教到,也一时很难有条理地说清楚,请读者自己网上查看吧。

TransCAD/TransModeler软件自带的地图投影设置中,对一些国家和地区,例如北美和日本,种类分得很细,对中国只含CIESIN Grid、ACMR Coordinate System、China Belt I、ChinaBelt II、1980 Hong Kong Grid、台湾1967和1997年的12个Grid Zone和OldJinmen Grid。国内用户在导入导出其他GIS数据时,如果数据不是以经纬度或上述坐标系统表示,则有必要定制自己的地图投影来完成坐标变换。TransCAD/TransModeler软件允许用户自定义坐标系,在程序目录下创建一个名为USERPRJ的文本文件(无后缀),写上必要的内容即可。我们以CGCS2000坐标系为例,看看如何输入相关信息。

大家可能熟悉ArcGIS的shp格式数据,其中会包含一个.prj后缀的文件,就是描述了坐标系和投影信息。下面是一个CGCS2000坐标系,Gauss_Kruger6度带投影,中心经度为117.0的.prj后缀文件的内容:

PROJCS["CGCS2000_GK_CM_117E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4509]]

在USERPRJ的文本文件中,你就需要写入:

CGCS2000 / GK6 117

#:CGCS2000;China;CGCS2000_117_GK6;m;

proj=tmerc k_0=1.0 lat_0=0 lon_0=117.0 a=6378137 rf=298.257222101

x_0=500000 y_0=0

no_defs <>

软件在启动时检测USERPRJ文件是否存在,用户在其中定义的坐标系统会自动调入Projection and Coordinate System对话框中CoordinateSystem 页面Class下拉菜单中User Defined选项下面。

上面例子中的设置添加一个名为“China:CGCS2000_117_GK6”的坐标系统(Coodinate System)。要添加更多坐标系统,只需在文件中追加有关定义。Gauss_Kruger投影分为3度带和6度带方法,因此ArcGIS里面的prj文件定义的中央经线PARAMETER["Central_Meridian",117.0],对不同经度的地方有所差异,你可以根据.prj文件或者所在城市经度进行修改。换句话说,如果要添加新的地理位置的坐标系,只要修改中央经线的数值和相应的名称(3度带投影也一样修改)。例如可以继续在文本中添加下一个6度带的坐标系:

CGCS2000 / GK6 123

#:CGCS2000;China;CGCS2000_123_GK6;m;

proj=tmerc k_0=1.0 lat_0=0 lon_0=123.0 a=6378137 rf=298.257222101

x_0=500000 y_0=0

no_defs <>

也有一些CGCS2000坐标系的prj文件中,偏移值会有所改变,需要在prj的偏移数据中查看:PARAMETER["False_Easting",500000.0],描述中对应的是x_0=500000。

这个USERPRJ文件的结构实际很简单。除下面介绍的特殊符号#:以外,任何#符号后面的内容都是作为注解被程序忽略。由<和>号括起来的字串标志着开始一个新坐标系统的定义,如< CGCS6_2000>。末尾出现的关键字no_defs和<>标志着定义的结束,以及对缺省的选项不使用默认值。里面使用的投影关键词是 tmerc即Transverse Mercator,也就是Guass-Kruger,这是TransCAD软件自己定义的。如果要查找这些关键词,可以打开软件的帮助文件,在索引中输入“User-Defined Coordinate Systems”查看相应的自定义参数的含义。

下面再举一个北京54的例子,稍微复杂一些:

#: ; 中国;北京 1954 GK;m;_xx=1.,_xy=0.,_yx=0.,_yy=1.,_tx=68.8,_ty=36.5

proj=tmerc ellps=krass lon_0=116.32429 lat_0=37.16071 k_0=1.00125

x_0=500000 y_0=0

no_defs <>

坐标投影参数的定义首先包括一个以特殊注解#:符号开始的语句,给出在对话框中使用的名称,如上例中的“中国”和“北京 1954 GK”,以及其他一些参数,如距离单位(m)和用于数据导入和导出坐标线性变换参数。这些坐标变换是经纬度进行投影以后的数据上操作的,具体公式如下:

xt = x * _xx + y * _xy + _tx

yt = x * _yx + y * _yy + _ty

这里所用的距离单位是特殊注解行指定的单位(上例中是米)。另外一种进行坐标变换的办法是改变距离单位和缩放系数,以及使用false easting (x_0) 和 northing (y_0) 选项。还有一些选项可以用来控制投影和坐标系统,但这些一般只用于某些特定的情形:

_cdist:限定该投影只适用于距中心位置在给定距离的范围(Scope)以内。

_hlimit=len 限定范围(Scope)的高度(miles)

_wlimit=len 限定范围(Scope)的宽度(miles)

_limit=len 限定范围(Scope)的高度和宽度(miles)

下列参数定义地图投影选项:

proj=name 用于选择坐标系统,ellps=name 用于选择投影椭球体。椭球体可以进一步用a=len(主轴)、b=len(短轴)和 e=num、es= num、f= num 或 rf= num 等选项定义。 zone=num 用于为需要分区坐标系统指定区号,如UTM 和 Gauss-Kruger。根据所选投影不同,选项和参数会有所不同。详细资料请参阅用户手册或在线帮助文档。

顺便说一下,如果你知道你使用城市的CAD数据的坐标系和投影参数(一般是保密的,你可以弄个近似的),也可以写一个自定义坐标系进去,这样,使用自定义坐标系导入CAD或者shp数据,地图数据不需要坐标转换直接就显示或转换为经纬度了哦_

您有任何技术问题和软件购买需要,请联系我们:

客服微信号:YishuvInfo
b5ea1f9a300fb0b359c6c08e36752bd0.png

微信公众号:TransCADTransModeler
d4fb2b1343c1650a99880ad5c36b6f08.png

邮箱:TransInfoTech@163.com

全部评论 (0)

还没有任何评论哟~