天天看點

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)  # 将投影坐标轉換為地理坐标