【GeoDataBase】
洛
示例: (下载 示例地理数据库(GPKG))
from gma import io
GDB = io.Open("GeoDataBase.gpkg")
# GDB = io.Open("GeoDataBase.gpkg", nOpenFlags = 1) # 可修改模式
1
2
3
2
3
注意
如果期望修改数据库(例如添加/删除图层等),请传入参数 nOpenFlags = 1。
GeoDataBase 具有如下所列的 方法/属性:
序号 | 名称 | 描述 | 返回值类型 | 方法/属性 | 示例返回值 |
---|---|---|---|---|---|
M.1 | AddLayer | 添加矢量图层 | GDB.AddLayer() | ||
M.2 | DeleteLayer | 删除矢量图层 | GDB.DeleteLayer() | ||
M.3 | GetDataSet | 获取栅格数据集 | DataSet | GDB.GetDataSet() | |
M.4 | GetLayer | 获取栅格数据集 | Layer | GDB.GetLayer() | |
M.5 | SQLQuery | 执行 SQL 查询语句 | Layer | GDB.SQLQuery() | |
P.1 | DataSetCount | 栅格数据集数量 | int | GDB.DataSetCount | 0 |
P.2 | DataSetNames | 栅格数据集名称 | list | GDB.DataSetNames | [] |
P.3 | Driver | 数据库驱动 | str | GDB.Driver | 'GPKG' |
P.4 | Info | 栅格信息 | DataFrame | GDB.Info | 点击跳转 |
P.5 | LayerCount | 矢量图层数量 | int | GDB.LayerCount | 8 |
P.6 | LayerNames | 矢量图层名称 | list | GDB.LayerNames | ['Bridge', 'Gates', ...] |
P.7 | Metadata | 元数据 | dict | GDB.Metadata | {} |
# AddLayer(GMALayer)
功能:【向数据库添加矢量图层】。
参数:
GMALayer:Layer
。一个矢量图层。
示例: 请参考:CreateDataBase。
# DeleteLayer(LayerName)
功能:【删除数据库中的一个矢量图层】。
参数:
LayerName:str
。矢量图层名称。
示例:
GDB.DeleteLayer('Gates') # 删除数据库中名称为 Gates 的图层。
1
# GetDataSet(DSIDOrName=0)
功能:【获取数据库中的栅格数据集】。
参数:
DSIDOrName:str||int
。数据集名称或序号。
返回:DataSet
。
提示
可通过 Info 属性,获得数据库中所有 栅格数据集的 名称 和 ID。
# GetLayer(LYIDOrName=0)
功能:【获取数据库中的矢量图层】。
参数:
LYIDOrName:str||int
。图层名称或序号。
返回:Layer
。
提示
可通过 Info 属性,获得数据库中所有 矢量图层的 名称 和 ID。
示例:
Bridge = GDB.GetLayer('Bridge') # 获取数据库中名称为 Bridge 的图层。
1
# SQLQuery(SQLExpr)
功能:【执行 SQL(ite) 查询语句】。
参数:
SQLExpr:str
。SQL(ite) 表达式。
返回:Layer
。
示例:
# 筛选 Bridge 图层中属性表字段“桥”的值为“天津桥”的数据。
SQLLayer = GDB.SQLQuery('SELECT * FROM "Bridge" WHERE "桥" = "天津桥"')
1
2
2
# 在 jupyter notebook 中查看地理数据库信息(与 Info 属性一致)
GDB
1
Name | Type | ID |
---|---|---|
Bridge | Layer | 0 |
Gates | Layer | 1 |
LuoShui | Layer | 2 |
Market | Layer | 3 |
Neighborhood | Layer | 4 |
Taiwei | Layer | 5 |
Wall | Layer | 6 |
Ziwei | Layer | 7 |