gdbtest.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import os
  2. from osgeo import ogr
  3. # 设置 GDB 文件夹路径
  4. gdb_path = 'D:\\gisdata\\三亚\\海域数据和三区三线数据\\三亚三线数据.gdb' # 设置为你的 .gdb 文件夹路径
  5. # 打开 GDB 文件夹(通过 ogr 驱动)
  6. driver = ogr.GetDriverByName('OpenFileGDB')
  7. if not driver:
  8. raise Exception("OpenFileGDB 驱动不可用")
  9. # 打开 GDB 文件夹
  10. gdb = driver.Open(gdb_path, 0) # 0 表示只读模式
  11. if not gdb:
  12. raise Exception(f"无法打开 {gdb_path} 文件夹")
  13. # 获取所有图层(要素类)
  14. layer_count = gdb.GetLayerCount()
  15. print(f"该 GDB 文件夹包含 {layer_count} 个图层:")
  16. # 遍历每个图层并输出图层名称
  17. for i in range(layer_count):
  18. layer = gdb.GetLayerByIndex(i)
  19. print(f"图层 {i}: {layer.GetName()}")
  20. # 读取第一个图层(你可以选择其他图层)
  21. layer_name = gdb.GetLayerByIndex(0).GetName()
  22. print(f"加载图层: {layer_name}")
  23. # 获取图层数据
  24. layer = gdb.GetLayerByName(layer_name)
  25. for feature in layer:
  26. # 获取每个要素的几何形状
  27. geom = feature.GetGeometryRef()
  28. print(f"要素几何: {geom.ExportToWkt()}")
  29. # 获取每个要素的字段值
  30. for field in feature.items():
  31. print(f"{field}: {feature.GetField(field)}")
  32. # 关闭 GDB 文件夹
  33. gdb = None