基于gdal的面矢量面积和中心点计算(python)

基于gdal的面矢量面积和中心点计算(python)

原创

wx62b9325dd56a7博主文章分类:GIS ©著作权

文章标签 d3 x 文章分类 Hadoop 大数据

©著作权归作者所有:来自51CTO博客作者wx62b9325dd56a7的原创作品,请联系作者获取转载授权,否则将追究法律责任

from pathlib import Pathfrom osgeo import ogr, osrdef compute_some_metrics(inShpPath):    '''计算面积'''    driver = ogr.GetDriverByName("ESRI Shapefile")    dataSource = driver.Open(inShpPath, 1)    layer = dataSource.GetLayer()    src_srs = layer.GetSpatialRef()    tgt_srs = osr.SpatialReference()    tgt_srs.ImportFromEPSG(32649)    transform = osr.CoordinateTransformation(src_srs, tgt_srs)        new_field1 = ogr.FieldDefn("Area", ogr.OFTReal)    new_field1.SetWidth(32)    new_field1.SetPrecision(16)    layer.CreateField(new_field1)    new_field2 = ogr.FieldDefn("X", ogr.OFTReal)    new_field2.SetWidth(32)    new_field2.SetPrecision(16)    layer.CreateField(new_field2)    new_field3 = ogr.FieldDefn("Y", ogr.OFTReal)    new_field3.SetWidth(32)    new_field3.SetPrecision(16)    layer.CreateField(new_field3)    for feature in layer:        geom = feature.GetGeometryRef()        geom2 = geom.Clone()        geom2.Transform(transform)        xmin, xmax, ymin, ymax = geom2.GetEnvelope()        x = (xmin + xmax) / 2        y = (ymin + ymax) / 2        area_in_sq_m = geom2.GetArea()                feature.SetField("Area", area_in_sq_m)        layer.SetFeature(feature)        feature.SetField("X", x)        layer.SetFeature(feature)        feature.SetField("Y", y)        layer.SetFeature(feature)    del dataSource

基于gdal的面矢量面积和中心点计算(python)
  • 收藏
  • 评论
  • *举报

上一篇:基于gdal的空间缓冲区分析(python)

下一篇:基于python脚本的遥感影像样例模板批量生产以及样本绘制

Original: https://blog.51cto.com/u_15699099/5421165
Author: wx62b9325dd56a7
Title: 基于gdal的面矢量面积和中心点计算(python)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/517086/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球