【Python&GIS】面矢量数据投影转换(WGS84转地方坐标系)

这篇具有很好参考价值的文章主要介绍了【Python&GIS】面矢量数据投影转换(WGS84转地方坐标系)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        之前分享过点矢量怎么进行投影转换,今天跟大家分享下面矢量如何投影转换。代码与之前的类似,只要注意一下GDAL对矢量文件划分的关系层次即可。

        ogr库是一个处理地理空间矢量数据的开源库。它可以读取多种数据格式,进行地理处理、属性表操作、数据分析等操作。目前ogr和osr库已集成到GDAL库中,可以对栅格数据、矢量数据进行处理分析,被3S的研究人员广泛应用。感兴趣的可以自己去了解一下,不懂得可以一起交流!

1.加载GDAL库(水字数)

from osgeo import ogr, osr

2.定义目标投影坐标系

target_proj = osr.SpatialReference()
# 初始化osr.SpatialReference对象以形成一个合法的坐标系统
target_proj.ImportFromEPSG(4326)
# 向对象中写入WGS84坐标系统

3.读取矢量中每个特征的投影信息

         .GetSpatialRef()函数可以获取图层中的坐标系信息,注意该函数的作用空间为图层。图层用GetSpatialRef()获取坐标信息,元素用GetSpatialReference()获取坐标信息。

ds = ogr.Open(path)
layer = ds.GetLayer(0)
feature_count = layer.GetFeatureCount()
# 查看矢量包含多少个特征
for i in range(feature_count):
    # 循环所有特征
    """spatialRef_layer = layer.GetSpatialRef()
    print(spatialRef_layer)
    # 图层用GetSpatialRef()获取坐标信息,元素用GetSpatialReference()获取坐标信息"""
    feature = layer.GetFeature(i)
    geom = feature.GetGeometryRef()
    source_proj = geom.GetSpatialReference()
    # 获取特征的原始坐标系

4.坐标转换参数

        第一个参数是数据的坐标系,第二个参数是目标坐标系。

transform = osr.CoordinateTransformation(source_proj, target_proj)
# 定义坐标系转换参数    
geom.Transform(transform)

5.完整代码

# -*- coding: utf-8 -*-
"""
@Time : 2023/5/18 16:26
@Auth : RS迷途小书童
@File :Face Vector Data Projection Transform.py
@IDE :PyCharm
@Purpose :对面矢量文件进行投影转换
"""
from osgeo import ogr, osr
"""layer图层才能调用投影,数据资源是不能调用投影的。矢量数据分为datasource,layer,feature三个层次"""


def Projection_Transform(path):
    """
    :param path: 输入需要投影转换的面矢量
    :return:
    """
    target_proj = osr.SpatialReference()
    # 初始化osr.SpatialReference对象以形成一个合法的坐标系统
    target_proj.ImportFromEPSG(4326)
    # 向对象中写入WGS84坐标系统
    ds = ogr.Open(path)
    layer = ds.GetLayer(0)
    feature_count = layer.GetFeatureCount()
    # 查看矢量包含多少个特征
    for i in range(feature_count):
        # 循环所有特征
        """spatialRef_layer = layer.GetSpatialRef()
        print(spatialRef_layer)
        # 图层用GetSpatialRef()获取坐标信息,元素用GetSpatialReference()获取坐标信息"""
        feature = layer.GetFeature(i)
        geom = feature.GetGeometryRef()
        source_proj = geom.GetSpatialReference()
        # 获取特征的原始坐标系
        transform = osr.CoordinateTransformation(source_proj, target_proj)
        # 定义坐标系转换参数
        geom.Transform(transform)
        # print(geom.GetSpatialReference())
        ds = None
    del ds


if __name__ == "__main__":
    input_path = 'B:/1.shp'
    Projection_Transform(input_path)

        本文章主要是分享个人在学习Python过程中写过的一些代码。有些部分借鉴了前人以及官网的教程,如有侵权请联系作者删除,大家有问题可以随时留言交流,博主会及时回复。文章来源地址https://www.toymoban.com/news/detail-632886.html

到了这里,关于【Python&GIS】面矢量数据投影转换(WGS84转地方坐标系)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WGS84以及各种坐标系

    地心地固坐标系(Earth-Centered, Earth-Fixed,ECEF),简称地心坐标系。 地理坐标系统(Geographic Coordinate System,GCS)​​1​​,坐标系是地心坐标系,用经纬度表示球面上的点。 世界大地测量系统(World Geodetic System, WGS),比如WGS84,是一种地理坐标系统,用于全球定位系统(

    2024年02月11日
    浏览(32)
  • arcgis javascript api4.x加载天地图wgs84(wkid:4326)坐标系

    使用arcgis javascript api4.x以basetilelayer方式加载天地图wgs84(wkid:4326)坐标系 效果: 提示:(下述三个文件放同一个文件夹下) 4326.js MyCustomTileLayer.js loadtdt4326.html https://www.cnblogs.com/hjyjack9563-bk/p/16067633.html

    2024年01月17日
    浏览(35)
  • arcgis自定义坐标系,以WGS 1984 Albers投影坐标系为例

    最近在使用arcgis中遇到了很多的问题,其中印象最深刻的就是坐标系的问题,如果arcgis中自带的坐标系中没有找到想要的坐标系,该怎么自定义一个新的坐标系。在使用过程中,我发现arcgis并没有我所需要的albers投影坐标系,所以我尝试着自定义一个albers投影坐标系,具体步

    2024年02月04日
    浏览(61)
  • 使用Qt/C++实现WGS84、高德GCJ-02、百度BD-09坐标系间相互转化

            在做地图相关开发时候,绕不开不同坐标系间的转化,因此我根据查阅相关资料后将不同坐标系间的转换封装到一个GeoTranslate类中,该类转换函数不仅支持Qt/C++调用,同时可在QML中直接调用,配合上QML/Map很方便,我将该类做了个Demo,方便使用者使用,效果如图: 在

    2024年02月12日
    浏览(39)
  • R语言 百度坐标转换至WGS84坐标

    提示:本文利用R语言封装了百度坐标转换至WGS84坐标的函数,亲测有效,提供了便捷的百度坐标转换方法。 《利用R语言通过百度地图API进行批量地理编码》一文介绍了利用R语言通过百度地图API来批量获取地理坐标的方法,但结果是百度坐标系,对于地理分析来讲,直接导入

    2024年02月13日
    浏览(28)
  • ArcGIS地图投影与坐标系转换的方法

      本文介绍在 ArcMap 软件中,对矢量图层或栅格图层进行 投影 (即将 地理坐标系 转为 投影坐标系 )的原理与操作方法。   首先,地理坐标系与投影坐标系最简单的区别就是,地理坐标系用 经度 、 纬度 作为空间衡量指标,而投影坐标系用 米 、 千米 等 长度单位 作为

    2024年02月08日
    浏览(28)
  • 【Python&GIS】无人机影像的像素坐标计算图片某点的地理/投影坐标

            又是掉头发的一天,今天的任务是通过图片中心点的地理坐标以及图片中某点的像素坐标(即这个点位于图片中的x,y坐标)计算该点的地理/投影坐标。经过一整天的搜索,发现网上并没有这方面的教程。然后就是想啊想,头发一抓一大把,终于在网上零零散散的

    2024年02月16日
    浏览(28)
  • 相机坐标系的正向投影和反向投影

    世界3D坐标系(x, y, z) 到图像像素坐标(u,v)的映射过程 (1) 世界坐标系 到 相机坐标系 的映射。 两个坐标系的转换比较简单,就是 旋转矩阵 + 平移矩阵 ,旋转矩阵则是绕X, Y,Z 轴旋转获得。 R 属于世界坐标系到相机坐标系的旋转矩阵, 旋转矩阵为 R = R(z) * R(y) * R(x) , 具体根

    2024年02月10日
    浏览(24)
  • Nuscenes——实现世界坐标3D点投影到像素坐标系中

    首先在 mmdetection3d/tools/data_converter/nuscenes_converter.py 中, get_2d_boxes() 可以直接从nuscenes原始sample数据中获取已标注的3D box信息,因此该函数就可以实现整体投影过程。 投影原理 投影过程分为以下几步: 世界坐标系 —— Ego坐标系(自身) 这里需要世界坐标系原点变换到自身的

    2024年02月11日
    浏览(35)
  • 怎样通过Python和齐次坐标变换方法实现坐标系之间的转换?

    齐次坐标变换是一种用于实现坐标系之间变换的数学技术。它通常用于计算机图形学、计算机视觉和机器人技术。在齐次坐标系中,3D点/顶点由4D向量(x,y,z,w)表示,其中w是比例因子。齐次表示允许有效的矩阵运算并简化变换过程。坐标系之间的变换可以通过使用齐次变

    2024年02月05日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包