|||
前言
在进行坐标转换之前,先简单的介绍下几个专业概念:
地理坐标系:地理坐标是用纬度、经度表示地面点位置的球面坐标
投影坐标系:简单点来讲就是通过投影的方式把地球地理坐标系这种三维空间坐标展开成平面坐标。
关于坐标系统这块的详细介绍可以参阅地图学相关书籍:
空间坐标与地图投影
国内常用坐标系统介绍
pyproj库使用简介
1.Python中安装pyproj库
直接pip安装就好
pip install pyproj
1
2.初始化坐标参考系统(CRS)
pyproj库提供了四种初始化参考坐标的方式,括号里面的数字是地图坐标系统在epsg中的代号,每一种地图坐标系统在epsg中都有一个唯一的数值与之对应,例如,4326对应的就是WGS84地理坐标系统,对应代码坐标系统的详细信息可以在https://epsg.io/查询。
from pyproj import CRS
crs=CRS.from_epsg(4326)
crs = CRS.from_string("epsg:4326")
crs = CRS.from_proj4("+proj=latlon")
crs = CRS.from_user_input(4326)
1
2
3
4
5
3.检查坐标参考系统信息
直接输入刚才构造的crs对象,即可查看当前坐标系统的详细信息,在进行坐标转换之前,首先要检查坐标转换的范围和轴向信息,比如这里的wgs84地理坐标系的轴向信息是(纬度,经度),在后面输入经纬度坐标的时候切记是先纬度,后经度的顺序,不然整个坐标系统就完全乱了,转换出来的坐标可能会出现无穷大的错误值。
4.转换坐标
在转换坐标前,首先构造一个转换对象,确定是从哪个地理坐标向哪个投影坐标进行转换
transformer = Transformer.from_crs(crs,crs_cs)
# crs是wgs84坐标参考系统
# crs_cs是湖南省长沙市所在地区UTM投影坐标系(这里代号为49带)
1
2
3
4
读入需要转换的经纬度数据
import pandas as pd
data=pd.read_csv('ex.csv')
'''测试数据
lon lat
0 112.901623 27.984723
1 112.891346 27.999936
2 112.902052 28.001706
3 112.907937 28.006145
4 112.911574 28.006142
5 112.911833 28.007062
'''
lon=data.lon.values
lat =data.lat.values
1
2
3
4
5
6
7
8
9
10
11
12
13
坐标转换
切记经纬度的输入顺序,输出的即是UTM坐标系统的xy系统坐标
transformer.transform(lat,lon)
'''
(array([687018.1260865 , 685980.99577337, 687030.93355121, 687602.0694474 ,
687959.70480738, 687983.63799872]),
array([3096966.74417735, 3098636.7189627 , 3098849.23596314,
3099350.09742483, 3099355.45537758, 3099457.7973657 ]))
'''
————————————————
版权声明:本文为CSDN博主「[smileGIS]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hqs_09/article/details/100624829
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 15:43
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社