700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python使用proj将GPS经纬度数据转换为utm坐标系(真实的地理位置坐标系 以米为单位)

Python使用proj将GPS经纬度数据转换为utm坐标系(真实的地理位置坐标系 以米为单位)

时间:2022-06-28 19:04:27

相关推荐

Python使用proj将GPS经纬度数据转换为utm坐标系(真实的地理位置坐标系 以米为单位)

1. 代码如下

from pyproj import Transformerimport pyprojimport jsonfrom matplotlib.pyplot import *if __name__ == '__main__':# 使用json包读取json文件得到GPS经纬度数据gps_file = open('gps.json')gps_data = gps_file.read()gps_data = json.loads(gps_data)# 使用pyproj包的Transformer类初始化GPS转utm的类# 其中第一个参数 4326 是源数据的坐标系ID,文章下文中会再进行说明# 第二个参数 32750 是要转换的目标坐标系IDtf = Transformer.from_crs(4326, 32750)# 取一个经纬度进行转换,并设为基准值,纬度是36.649这个, 经度是117.022utm_x, utm_y = tf.transform(36.64918343, 117.02233187)print(utm_x, utm_y)# 转换其它经纬度坐标并计算差值x_base = [0.0]y_base = [0.0]for i in range(1, len(gps_data['wei'])):tmp_x, tmp_y = tf.transform(gps_data['wei'][i], gps_data['jing'][i])x_base.append(tmp_x - utm_x)y_base.append(tmp_y - utm_y)# 使用matplotlib包的pyplot进行显示figure()plot(x_base, y_base, 'b', linewidth=2.0)show()===================================== 备用 ================================# 使用utm包,GPS转UTMimport utm[east, north, zone_number, zone_letter] = utm.from_latlon(纬度, 经度)[纬度, 经度] = utm.to_latlon(east, north, zone_number, zone_letter)================================ utm包将GPS转utm并显示 =============================import utmimport jsonfrom matplotlib.pyplot import *def gps2utm(gps_data):base = utm.from_latlon(gps_data['lat'][0], gps_data['lon'][0])x_data, y_data = [0.0], [0.0]for i in range(1, len(gps_data['lat'])):tmp = utm.from_latlon(gps_data['lat'][i], gps_data['lon'][i])x_data.append(tmp[0] - base[0])y_data.append(tmp[1] - base[1])return x_data, y_dataif __name__ == '__main__':gps_file = open('gps.json')gps_data = gps_file.read()gps_data = json.loads(gps_data)x_list, y_list = gps2utm(gps_data)figure()plot(x_list, y_list, 'b', linewidth=2.0)show()

说明:Transformer.from_crs函数涉及两个坐标系ID,第一个ID 4326是代表G84坐标系(ID查找可去GPS坐标系编码系统),一般是这个;第二个ID 32750是代表G84所对应的UTM坐标系ID(可去UTM坐标系编码系统),如下图。

注意:这里涉及一个时区,例如上图三个坐标系都是WGS_1984_UTM,只是后面的时区Zone不同,那这个zone怎么确定呢?可去经纬度转UTM的在线转换及定位网站测试一下经纬度所在地点,以及转换后的UTM信息,如下图,可以得到时区是50S。

2. 运行效果及轨迹展示

Python使用proj将GPS经纬度数据转换为utm坐标系(真实的地理位置坐标系 以米为单位) 然后可以进行轨迹显示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。