WKT是什么?关于坐标系统的。谁能详细解释一下?

WKT是什么?关于坐标系统的。谁能详细解释一下?,第1张

Well-Known Text (WKT) Representation of Spatial Reference Systems:顾名思义用众所周知的文字形式来描述看见坐标参照系统,它与EPSG(2005年已经换名)的坐标文字表述模型一致。

基础知识:坐标参照系有三种最常见的子类:地心坐标系(geocentric cs、GEOCCS),地理坐标系(geographic cs、GEOGCS),和投影坐标系(projected cs、PROJCS)以及相互之间的关系,可以参考《坐标系、坐标参照系、坐标变换、投影变换》。投影参数内容:Ellipsoid 、 Datum ;Projection,可以参考《地图投影为什么》。

坐标系的文字描述的扩展BN范式(EBNF)定义如下:

<coordinate system>= <projected cs>| <geographic cs>| <geocentric cs>

<projection>= PROJECTION["<name>"]

<parameter>= PARAMETER["<name>", <value>]

<value>= <number>

<datum>= DATUM["<name>", <spheroid>]

<spheroid>= SPHEROID["<name>", <semi-major axis>, <inverse flattening>]

<semi-major axis>= <number>NOTE: semi-major axis is measured in meters and must be >0.

<inverse flattening>= <number>

<prime meridian>= PRIMEM["<name>", <longitude>]

<longitude>= <number>

<angular unit>= <unit>

<linear unit>= <unit>

<unit>= UNIT["<name>", <conversion factor>]

<conversion factor>= <number>

以下示例说明,参照上述参数,然后比瓢画葫芦即可自行用WKT创建坐标系。

地理坐标系的格式:<geographic cs>= GEOGCS["<name>", <datum>, <prime meridian>, <angular unit>]

WGS1984的地理坐标系WKT形式:

GEOGCS["WGS 84",

DATUM["WGS_1984",

SPHEROID["WGS 84", 6378137, 298.257223563, AUTHORITY["EPSG", "7030"]],

AUTHORITY["EPSG", "6326"]],

PRIMEM["Greenwich", 0, AUTHORITY["EPSG", "8901"]],

UNIT["degree", 0.0174532925199433, AUTHORITY["EPSG", "9122"]],

AUTHORITY["EPSG", "4326"]]

投影坐标系的格式:<projected cs>= PROJCS["<name>", <geographic cs>, <projection>, {<parameter>,}* <linear unit>]

WGS1984地理坐标,统一横轴墨卡托(UTM)投影,中央经线117E的投影坐标系WKT形式:

PROJCS["WGS 84 / UTM zone 50N",

GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84", 6378137, 298.257223563, AUTHORITY["EPSG", "7030"]], AUTHORITY["EPSG", "6326"]], PRIMEM["Greenwich", 0, AUTHORITY["EPSG", "8901"]], UNIT["degree", 0.0174532925199433, AUTHORITY["EPSG", "9122"]], AUTHORITY["EPSG", "4326"]],

PROJECTION["Transverse_Mercator"],

PARAMETER["latitude_of_origin", 0],

PARAMETER["central_meridian", 117],

PARAMETER["scale_factor", 0.9996],

PARAMETER["false_easting", 500000],

PARAMETER["false_northing", 0],

UNIT["metre", 1, AUTHORITY["EPSG", "9001"]],

AUTHORITY["EPSG", "32650"]]

地心坐标系格式相似于地理坐标系:<geocentric cs>= GEOCCS["<name>", <datum>, <prime meridian>, <linear unit>]

参数中出现AUTHORITY是EPSG的玩意,在自定义坐标系时可以忽略,我会在后面详细介绍EPSG相关内容。WKT更具体的可参考OGC相关文档:如SFA、《SF for OLE/COM》等。

练习:给出下属投影坐标系参数,请用WKT方式表述。

投影参数:椭球体,Krasovsky_1940;基准面,北京1954;投影:兰勃特双标准纬线,25N,47N;中央经线,117E。

参考答案:

PROJCS["liongg",

GEOGCS["GCS_Beijing_1954",

DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],

PRIMEM["Greenwich",0.0],

UNIT["Degree",0.0174532925199433]],

PROJECTION["Lambert_Conformal_Conic"],

PARAMETER["False_Easting",20500000.0],

PARAMETER["False_Northing",0.0],

PARAMETER["Central_Meridian",0.0],

PARAMETER["Standard_Parallel_1",25.0],

PARAMETER["Standard_Parallel_2",47.0],

PARAMETER["Scale_Factor",1.0],

PARAMETER["Latitude_Of_Origin",0.0],

UNIT["Meter",1.0]]

有个偷懒的方法就是用商业软件譬如ArcGIS按照参数新建投影,然后在.prj文件中提取投影内容并修改。

可行,功能和结果也必须是一样的。.prj文件和影像文件是一起的,而gis只是个工具,而且工具升级只会使使用更加方便。

ArcGIS 9.3.1以后开始提供一种叫Layer Package的数据格式,它是以外部数据格式(sidecar file)来存储图层的符号,可以将数据和制图(cartography)或者说是符号化捆绑在一起。这样用户在浏览器端打开Layer Package的时候,可以得到数据制作者本来渲染的方式,也就可以更接近于数据制作者本身要表达的意图,从一定程度上避免了对数据的错误解释带来的麻烦。

mxd存储的是一个工程文件(project),里面有很多层,lyr存储的是一个图层的信息,它们都只记录图层所在硬盘的位置或者网络上的地址,以及一些图层信息,比如如何渲染、可视比例尺之类。但是,它们是二进制编码的,如果不了解编码格式,就无法得到你要的信息。shp提供的.prj文件是用来定义图层的投影信息的,它其实是以wkt的方式存储成文本文件,任何人,哪怕不具有arcmap的任何权限都可以打开prj文件,并获取其中的信息。所以我们可以将它放到arcgis9.3中。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12080866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存