安装 gma:
pip install gma
功能逻辑架构
gma矢量数据操作类主要包括数据资源(DataSource)、矢量图层(Layer)、矢量要素(Feature),三者的示意图如下:
图 29 矢量数据组成图
矢量要素(Feature)是gma矢量数据的最小组成单元,其由一个几何体及其对应的字段构成。
矢量图层(Layer)是gma矢量数据的基础,其由一个或多个矢量要素构成。
数据资源(DataSource)由多个矢量图层组成,一般的矢量文件仅含有一个矢量图层。
gma内矢量数据功能/属性的关系结构如下图所示:
图 210 矢量数据处理功能结构图
矢量数据类型
几何形状类型
gma几何形状类型继承自OGR,但又有所不同,详细关系见下表:
gma类型 | 解释 | OGR | 使用说明 |
---|---|---|---|
Point | 点 | ogr.wkbPoint | 数据中仅有一个点 |
Line | 线 | ogr.wkbLineString | 数据中仅有一条线 |
Polygon | 多边形 | ogr.wkbPolygon | 数据中仅有一个多边形 |
MultiPoint | 多点 | wkbMultiPoint | 数据中有多个点 |
MultiLine | 多线 | wkbMultiLineString | 数据中有多条线 |
MultiPolygon | 多多边形 | wkbMultiPolygon | 数据中有多个多边形 |
属性表数据类型
gma属性表数据类型继承自pandas,矢量创建/修改时内部与OGR进行数据交换,详细关系见下表:
pandas | 解释 | OGR |
---|---|---|
Int32/Int16/Int8/bool UInt32/UInt16/UInt8 | 整型(≤32位) | ogr.OFTInteger |
Int64/UInt64 | 长整型(64位) | ogr.OFTInteger64 |
datetime64[ns]/datetime64[ns, tz]/timedelta[ns] | 日期 | ogr.OFTDateTime |
float64/float32 | 实数 | ogr.OFTReal |
object | 字符串 | ogr.OFTString |
矢量格式支持
矢量格式信息统计
gma继承了OGR全部的矢量数据读取支持,并按照矢量数据特征进行了归类。gft模块的VectorSummary类,完整统计了gma内所有栅格格式。
矢量格式分类统计方法
类属性 | 说明 | 返回值示例 | 返回值类型 | 格式数量 |
---|---|---|---|---|
CopyableFormats | 可复制的格式 | {‘GPKG’, ‘NGW’, ‘PDF’, ‘netCDF’} | set | 4 |
CreatableFormats | 可创建的格式 | {‘AmigoCloud’, ‘CARTO’, …} | set | 47 |
MultiLayersFormats | 多图层支持的格式 | {‘AVCBIN’, ‘CAD’, ‘DGN’, …} | set | 25 |
ReadableFormats | 可读取的格式 | {‘AVCBIN’, ‘AVCE00’, …} | set | 60 |
TransformableFormats | 可转换的格式 | {‘AmigoCloud’, ‘CARTO’, …} | set | 47 |
UpdatableFormats | 可更新的格式 | {‘CSV’, ‘DGN’, ‘DXF’, …} | set | 16 |
示例 (查看可复制的栅格格式):
创建一个矢量格式
(一)函数简介
矢量格式控制类方法/属性统计
类功能 | 说明 | 类型 | 返回值 |
---|---|---|---|
Copyable | 可复制性 | 属性 | str |
Creatable | 可创建性 | 属性 | str |
CreationFieldDataTypes | 支持创建字段的数据类型 | 属性 | list |
CreationOptionInfo | 创建信息 | 属性 | DataFrame |
CreationOptions | 创建选项 | 属性 | dict |
Details | 格式详情 | 属性 | dict |
Extension | 扩展名 | 属性 | str |
Format | 格式短名称 | 属性 | str |
GeoReferencing | 地理参考可具备性 | 属性 | str |
LongName | 格式长名称 | 属性 | str |
MultiLayer | 多图层支持性 | 属性 | str |
SetCreationOptions | 设置创建选项(参数如CreationOptions,每种格式不相同) | 方法 | / |
Transformable | 可转换性 | 属性 | str |
Updatable | 可更新性 | 属性 | str |
VLCOptions | ogr创建选项 | 属性 | list |
(二)示例 (查看并修属性表编码方式)
可生成的矢量格式
格式名 | 生成模式 | 多矢量图层 支持 | 属性表数据类型支持(OGR) | 扩展名 | 更新支持 | 空间参考 支持 |
---|---|---|---|---|---|---|
AmigoCloud | 创建 | 否 | String/Integer/Integer64/Real | 否 | 是 | |
CARTO | 创建 | 否 | Integer/Integer64/Real/String/Date/DateTime/Time | 否 | 是 | |
CSV | 创建 | 否 | Integer/Integer64/Real/String/Date/DateTime/Time/IntegerList/Integer64List/RealList/StringList | .csv | 是 | 是 |
DGN | 创建 | 是 | .dgn | 是 | 是 | |
DXF | 创建 | 是 | .dxf | 是 | 否 | |
Elasticsearch | 创建 | 否 | Integer/Integer64/Real/String/Date/DateTime/Time/IntegerList/Integer64List/RealList/StringList/Binary | 否 | 是 | |
FlatGeobuf | 创建 | 否 | Integer/Integer64/Real/String/Date/DateTime/Binary | .fgb | 否 | 是 |
Geoconcept | 创建 | 否 | .gxt/.txt | 否 | 是 | |
GeoJSON | 创建 | 否 | Integer/Integer64/Real/String/IntegerList/Integer64List/RealList/StringList/Date/DateTime | .json/.geojson | 是 | 是 |
GeoJSONSeq | 创建 | 否 | Integer/Integer64/Real/String/IntegerList/Integer64List/RealList/StringList | .geojsonl/.geojsons | 是 | 是 |
GeoRSS | 创建 | 否 | 否 | 是 | ||
GML | 创建 | 是 | Integer/Integer64/Real/String/Date/DateTime/IntegerList/Integer64List/RealList/StringList | .gml/.xml | 否 | 是 |
GMT | 创建 | 否 | .gmt | 是 | 是 | |
GPKG | 创建/复制 | 是 | Integer/Integer64/Real/String/Date/DateTime/Binary | .gpkg | 是 | 是 |
GPSBabel | 创建 | 否 | 否 | 是 | ||
GPX | 创建 | 是 | .gpx | 否 | 是 | |
JML | 创建 | 否 | Integer/Integer64/Real/String/Date/DateTime | .jml | 否 | 是 |
KML | 创建 | 是 | Integer/Real/String | .kml | 是 | 是 |
LIBKML | 创建 | 是 | Integer/Real/String | .kml/.kmz | 是 | 是 |
MapML | 创建 | 否 | Integer/Integer64/Real/String/Date/DateTime/Time | 否 | 是 | |
Memory | 创建 | 是 | Integer/Integer64/Real/String/Date/DateTime/Time/IntegerList/Integer64List/RealList/StringList/Binary | 否 | 是 | |
MSSQLSpatial | 创建 | 是 | Integer/Integer64/Real/String/Date/Time/DateTime/Binary | 否 | 是 | |
MVT | 创建 | 否 | Integer/Integer64/Real/String | .mvt/.mvt.gz/.pbf | 否 | 是 |
netCDF | 创建/复制 | 否 | Integer/Integer64/Real/String/Date/DateTime | .nc | 是 | 是 |
NGW | 创建/复制 | 是 | Integer/Integer64/Real/String/Date/DateTime/Time | 否 | 是 | |
ODS | 创建 | 是 | Integer/Integer64/Real/String/Date/DateTime/Time/Binary | .ods | 是 | 否 |
创建/复制 | 是 | Integer/Integer64/Real/String/Date/DateTime/Time | 否 | 是 | ||
PostgreSQL | 创建 | 是 | Integer/Integer64/Real/String/Date/DateTime/Time/IntegerList/Integer64List/RealList/StringList/Binary | 否 | 是 | |
PGDump | 创建 | 否 | Integer/Integer64/Real/String/Date/DateTime/Time/IntegerList/Integer64List/RealList/StringList/Binary | .sql | 否 | 是 |
S57 | 创建 | 是 | 否 | 是 | ||
Selafin | 创建 | 否 | 是 | 是 | ||
ESRI Shapefile | 创建 | 否 | Integer/Integer64/Real/String/Date | .shp/.dbf/.shz/.shp.zip | 是 | 是 |
SQLite | 创建 | 是 | Integer/Integer64/Real/String/Date/DateTime/Time/Binary/IntegerList/Integer64List/RealList/StringList | .sqlite/.db | 是 | 是 |
TIGER | 创建 | 否 | 否 | 是 | ||
VDV | 创建 | 否 | Integer/Integer64/String | .txt/.x10 | 是 | 是 |
WAsP | 创建 | 否 | .map | 否 | 是 | |
XLSX | 创建 | 是 | Integer/Integer64/Real/String/Date/DateTime/Time | .xlsx/.xlsm | 是 | 否 |
DGNv8 | 创建 | 否 | 否 | 是 | ||
FileGDB | 创建 | 否 | 否 | 是 | ||
HANA | 创建 | 否 | 否 | 是 | ||
IDB | 创建 | 否 | 否 | 是 | ||
INTERLIS 1 | 创建 | 否 | 否 | 是 |