在对gis数据进行处理时,常常需要将数据由一个坐标系转换到另外一个坐标系,以使得所有gis数据的坐标系一致。 通常使用arcgis等软件来完成该操作。但是有一些投影操作arcgis需要用户提供在特定区域测得的加密参数。
一般来说可以把投影操作分成两大类,即
- 同一个地理坐标系下的投影。
- 跨地理坐标系投影。
“同一个地理坐标系下的投影”是一个纯数学操作,不涉及相关的加密参数。“跨地理坐标系投影”则存在一个不同大地水准面间转化的问题,涉及相关的加密参数,如从北京54投影到wgs84,不同的小区域需要实地测加密参数来实现投影操作。 在arcgis中进行“跨地理坐标系投影”需要使用自己提供的加密参数,或者使用arcgis内置的少量区域的加密参数。arcgis出于数据质量的考虑,没有提供使用“一般区域测的参数”来进行“跨地理坐标系投影”的接口,但是在显示地图的时候,arcgis仍然使用“一般区域测的参数”进行投影显示。
在一般的研究中,对于数据的质量要求不高,只要求不同的数据源的数据坐标值能基本一致即可。为此本程序使用pyProj开放的坐标系转换接口,来实现将gis数据投影到任意坐标系,如从西安80投影到wgs84坐标系。程序要求输入目标坐标系的epsg值,用户可以在互联网中查询所用坐标系对应的epsg值。
python coord_converter_all.py
为了保证gis数据的安全,中国国内生产的地理数据都进行了加密操作,即gcj坐标系。高德地图与天地图都使用该坐标系。百度地图又修改设计了bd坐标系。 在一般研究中,需要将数据统一到一个坐标系下,此时需要将gcj坐标系或者bd坐标系转换为wgs84坐标系,再进一步投影到其它坐标系。本程序允许用户完成该操作。
python coord_converter_hx.py
- 火星坐标系代码来自coord-convert
- 界面使用Gooey