天天看点

python 地理坐标与投影坐标的转换

1. 地理坐标(WGS84)与投影坐标(UTM)的相互转换

from pyproj import Proj

# 首先定义要转换的投影坐标系
proj1 = Proj("epsg:32601")  
'''
epsg编号通过epsg官网或者arcmap中查询获得,此为WGS 84 / UTM zone 1N投影
或者p1 = Proj('+proj=utm +zone=1 +datum=WGS84 +units=m +no_defs')
'''
lon1,lat1 = proj1(133.0884,47.0982)  # 将地理坐标转换为投影坐标,地理坐标为WGS84下的坐标
lon2,lat2 = proj1(-3188153.794, 6554885.105,inverse=True)  # 将投影坐标转换为地理坐标
           

2. 地理坐标(WGS84)与投影坐标(Albers)的相互转换

from pyproj import Proj

# Albers等积投影在中国没有已经定义好的,需要自己定义
proj1 = Proj('+proj=aea +lat_1=25 +lat_2=47 +lon_0=105 +datum=WGS84')  
'''
epsg编号通过epsg官网或者arcmap中查询获得,此为最适合中国的albers投影
'''
lon1,lat1 = proj1(98.9406,38.8399)  # 将地理坐标转换为投影坐标,地理坐标为WGS84下的坐标
lon2,lat2 = proj1(-516480.0192,4184573.034,inverse=True)  # 将投影坐标转换为地理坐标
           

3. 通过影像获取投影信息,将地理坐标(WGS84)转换为投影坐标(Albers)

from pyproj import Proj

# Albers等积投影在中国没有已经定义好的,需要自己定义
path_src = 'H:\\bomi_data\\1KM\\2018\\DAY\\'
dataset = gdal.Open(path_src + '1.tif') 
im_proj = dataset.GetProjection()
proj1 = Proj(im_proj)

lon1,lat1 = proj1(98.9406,38.8399)  # 将地理坐标转换为投影坐标,地理坐标为WGS84下的坐标
lon2,lat2 = proj1(-516480.0192,4184573.034,inverse=True)  # 将投影坐标转换为地理坐标