GDAL 您所在的位置:网站首页 欧洲四至点位置 GDAL

GDAL

2024-07-17 10:44| 来源: 网络整理| 查看: 265

SHP四至读取 arcgis利用字段计算器

minX 【目标字段】= !shape.extent.xmin!

maxX= !shape.extent.xmax!

minY= !shape.extent.ymin!

maxY = !shape.extent.ymax!

如果需要批量计算,可以利用arcgis模型计算器

要素迭代器、字段计算器(数据管理工具)

gdal ogr from osgeo import ogr datashp = ogr.Open(r'E:\Desktop\SHP\XXX.shp')#读取SHP数据 Ly = datashp.GetLayer(0)#获取图层 Ly.GetExtent()

在此基础上,批量对shp数据进行遍历获取导出为Excel,涉及pandas模板

获取文件夹下所有的后缀名为shp的文件读取shp,把四至数据保存到pandas.dataframe()中,并导出为Excel格式文件。 import os import pandas as pd path = r'E:\Desktop\SHP' files = os.listdir(path) shp = [] for file in files: position = path + '\\' + file if ('.shp' in file) and ('.shp.' not in file): shp.append(position) datapd = pd.DataFrame(columns=['xmin', 'xmax', 'ymin', 'ymax']) for item in shp: datashp = ogr.Open(item) Ly = datashp.GetLayer(0) indexpd = item.split('\\')[-1] shpName = indexpd xmin = Ly.GetExtent()[0] xmax = Ly.GetExtent()[1] ymin = Ly.GetExtent()[2] ymax = Ly.GetExtent()[3] datapd.loc[shpName] = {'xmin': xmin, 'xmax': xmax, 'ymin': ymin, 'ymax': ymax} writer = pd.ExcelWriter(r'./export_data/shpExtent.xlsx') # 初始化一个writer datapd.to_excel(writer, float_format='%.5f') # table输出为excel, 传入writer writer.save() # 保存 栅格数据读取四至 from osgeo import gdal dataset = gdal.Open(r"E:\Desktop\20221017-1022\20221020\XXX.tif") description = dataset.GetDescription() #获得栅格的描述信息 rcount = dataset.RasterCount #获得栅格数据集的波段数 # 23 rX = dataset.RasterXSize #栅格数据的宽度(X方向上的像素个数) # 4659 rY = dataset.RasterYSize #栅格数据的高度(Y方向上的像素个数) #rY extend = dataset.GetGeoTransform() #栅格数据的六参数。 # (132.91275314469934,左上角经度坐标 0 # 8.983152841195215e-05,X轴方向像元大小(水平空间分辨率) 1 # 0.0,X偏移 行旋转 2 # 47.43176565373803,左上角纬度坐标 3 # 0.0,Y偏移 列旋转 4 # -8.983152841195215e-05)Y轴方向像元大小 5 bd = dataset.GetRasterBand(1) Xp = extend[0] + rX * extend[1] + rX * extend[2] Yp = extend[3] + rY * extend[4] + rY * extend[5] (Xp, Yp)

如果需要批量对栅格数据读取四至参考上文SHP批量读取四至内容。

批量读取每个shp要素的外接矩形的范围,导出为Excel '''获取SHP每个要素的四至范围(外界矩形)''' import pandas as pd from osgeo import ogr datashp = ogr.Open(r'E:\Desktop\SHP\China_Map\province.shp') Ly = datashp.GetLayer(0) SHP_extend = pd.DataFrame() Ly.GetExtent() Fcount = Ly.GetFeatureCount() for i in range(Fcount): feature = Ly.GetFeature(i) #获取shp的每个要素的四至 geometry = feature.GetGeometryRef() polygonextent = geometry.GetEnvelope() SHP_extend[i] = polygonextent SHP_extend.to_excel(r'./外界矩形.xlsx')


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有