如何使用pyqgis列出Geopackage中的所有栅格图层?
是的有对应的实现方法。你之前用到的ogr是GDAL生态中专门处理矢量数据的模块,要读取GeoPackage中的栅格图层,调用GDAL核心模块的接口即可,示例代码如下:
from osgeo import gdal my_gpkg = r'PATH_TO_GEOPACKAGE' # 打开GeoPackage文件 ds = gdal.OpenEx(my_gpkg) if ds: # 栅格图层以子数据集形式存储在GPKG中,提取所有栅格图层名 gpkg_raster_layers = [sds[0].split(':')[-1] for sds in ds.GetSubDatasets()] else: gpkg_raster_layers = []
补充说明
- 执行上述代码的环境和你之前运行ogr代码的环境一致即可,不需要额外安装其他依赖
- 如果你需要同时遍历同一个GeoPackage中的矢量、栅格两类图层,把两套逻辑组合调用即可
- 代码中如果要限定仅读取栅格内容,可以给
gdal.OpenEx加第二个参数gdal.OF_RASTER,减少不必要的资源消耗
内容的提问来源于stack exchange,提问作者Marshal Mappers
相关产品推荐
相关产品推荐

