欢迎访问宙启技术站
智能推送

Python中osgeo.osrCoordinateTransformation()实现坐标投影转换的实际应用

发布时间:2023-12-23 08:22:23

osgeo.osrCoordinateTransformation()是Python中用于坐标投影转换的函数。该函数可以根据给定的投影参考系统(Projection Reference System,简称PRS)将一个坐标点从一个空间参考系统(Spatial Reference System,简称SRS)转换到另一个SRS。

下面是一个实际的应用例子,将一个经纬度坐标点转换为UTM投影坐标系。

import osr

def coordinate_transform(lon, lat):
    # 创建源SRS对象,使用WGS84经纬度坐标系统
    source_srs = osr.SpatialReference()
    source_srs.ImportFromEPSG(4326)  # EPSG代码4326表示WGS84

    # 创建目标SRS对象,使用UTM投影坐标系统(例如,EPSG代码32645表示UTM zone 45N)
    target_srs = osr.SpatialReference()
    target_srs.ImportFromEPSG(32645)  # 使用UTM zone 45N

    # 创建转换对象
    coordinate_transformation = osr.CoordinateTransformation(source_srs, target_srs)

    # 将经纬度坐标点转换为UTM坐标系
    transformed_lon, transformed_lat, _ = coordinate_transformation.TransformPoint(lon, lat)

    return transformed_lon, transformed_lat

# 测试转换函数
lon = 100.0
lat = 35.0
transformed_lon, transformed_lat = coordinate_transform(lon, lat)
print("转换前坐标经度:", lon)
print("转换前坐标纬度:", lat)
print("转换后坐标经度:", transformed_lon)
print("转换后坐标纬度:", transformed_lat)

在上述示例中,我们首先创建了源SRS对象和目标SRS对象。源SRS对象使用WGS84经纬度坐标系统(EPSG代码4326),目标SRS对象使用UTM投影坐标系(例如,EPSG代码32645表示UTM zone 45N)。

然后,我们创建了一个坐标转换对象,将源SRS和目标SRS传递给它的构造函数。

最后,我们使用TransformPoint()方法将经纬度坐标点转换为UTM坐标系。这个方法返回转换后的坐标点,其中transformed_lon是转换后的经度,transformed_lat是转换后的纬度。

运行上述代码,将输出转换前和转换后的坐标结果。例如,输入经度100.0和纬度35.0,将输出转换后的经度和纬度。

这个例子只是坐标投影转换的一个简单示例,实际应用中可以根据需要自定义源SRS和目标SRS,以及使用不同的参数和方法进行坐标转换。