gdal库学习

一、读取矢量数据

1.打开矢量数据并获取驱动

# 【方法一】从已有数据源中获取驱动变量
fileName = r'.....\airports.shp'
datasource = ogr.open(fileName)
driver = ds.GetDriver()
driver.name
# 【方法二】通过驱动名获取
json_driver = ogr.GetDrverByName('GeoJSON')
datasource = driver.Open(fileName,update = 0)
#获取驱动名的方法如下

获得驱动名的两种方法

  • OGR网站上有介绍,通过GDAL/ORG自带的ogrinfo:(ogrinfo 是一个GDAL/OGR提供的命令行工具,用于查看和获取与矢量数据相关的信息。它可以用于查看矢量数据的元数据、属性表、几何信息以及空间参考等内容。使用 ogrinfo 命令可以轻松地获取矢量数据信息,例如数据格式、图层数量、属性字段等。此外,它还可以执行一些查询操作,如筛选要素、计算统计数据等。)
ogrinfo -so input.shp    # 查看矢量数据的摘要信息
ogrinfo -al input.shp    # 查看矢量数据的所有属性表字段
ogrinfo -geom=SUMMARY input.shp    # 查看矢量数据的几何类型和范围
ogrinfo -sql "SELECT * FROM input WHERE population > 1000000" input.shp    # 执行SQL查询操作
  • 代码中提供print_drivers函数来获取驱动程序的名字。
from osgeo import ogr

def print_drivers():
    driver_count = ogr.GetDriverCount()
    print("驱动程序数量:", driver_count)
    print("驱动程序列表:")
    for i in range(driver_count):
        driver = ogr.GetDriver(i)
        print(driver.GetName())

print_drivers()

2.关闭数据并释放内存

datasource.Destory()

二、获取图层信息

1.操作图层

#拿到第一个图层,一个shp文件只有一个图层,默认也是0
layer = datasource.GetLayer(0)
#查看图层中要素数目
layer.GetFeatureCount()

2.获取图层属性

layerdef = layer.GetLayerDefn()
for i in range(layerdef.GetFieldCount()):
    defn = layerdef.GetFieldDefn(i)
    print(defn.GetName(),defn.GetWidth(),defn.GetType(),defn.GetPrecision())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值