本文主要是介绍gma 2 教程(二)数据操作:8.矢量操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装 gma:
pip install gma
矢量数据操作
打开矢量文件
gma打开各种矢量文件,返回一个矢量数据资源(DataSource)类。

查看矢量信息
打开的矢量数据资源(DataSource)类属性及示例如下表:
| 类属性 | 说明 | 示例返回值 | 返回值类型 |
|---|---|---|---|
| Driver | 驱动格式 | ESRI Shapefile | str |
| LayerCount | 图层数量 | 1 | int |
| LayerNames | 图层名 | [‘ne_50m_admin_0_countries’] | list |
| Metadata | 元数据 | {} | dict |
获取矢量图层
(一)方法简介

(二)示例 (获取第一个图层)

矢量图层
获取图层信息
矢量图层(Layer)包含的属性及示例结果如下表:
表 213 矢量图层(Layer)属性及示例
| 类属性 | 说明 | 示例返回值 | 返回值类型 |
|---|---|---|---|
| AttributeTable | 属性表 | ![]() | DataFrame |
| Boundary | 四至边界范围 (左,下,右,上) | (-180.0, -89.99892578125002, 180.0, 83.599609375) | tuple |
| FeatureCount | 要素数量 | 242 | int |
| FieldsInfo | 字段信息 (数据类型、精度、宽度等) | ![]() | DataFrame |
| GeomType | 几何类型 | Polygon | str |
| Metadata | 元数据 | {‘DBF_DATE_LAST_UPDATE’: ‘2022-05-08’} | dict |
| Name | 图层名 | ne_50m_admin_0_countries | str |
| Projection | 坐标系/投影(WKT格式) | GEOGCS[“WGS 84”, DATUM[“WGS_1984”, SPHEROID [“WGS 84”, 6378137, 298.257223 563, AUTHORITY [“EPSG”, “7030”]], AUTHO RITY[“EPSG”, “6326”]], PRIMEM[“Green wich”, 0], UNIT[“degree”, 0.017453292 5199433, AUTHORITY[“EPSG”, “9122”]], AXIS ["Latitude ", NORTH], AXIS [“Longitude”, EAST], AUTHORITY [“EPSG”,“4326”]] | str |
重投影
(一)方法简介

(二)示例

简化图层
(一)方法简介

(二)示例

矢量类型转换
(一)方法简介


(二)示例

转为矢量数据资源
(一)方法简介

(二)示例

转为栅格数据集
(一)方法简介

(二)示例

另存为矢量文件
(一)方法简介
(二)示例*(另存为GPKG文件)*
获取矢量要素
(一)方法简介

(二)示例*(获取第一个要素)*

空间叠加分析
矢量图层叠加分析为多个图层之间进行叠加处理,得到目标叠加方法处理后的结果。gma矢量图层叠加分析主要包括:
| 叠加分析方法 | 说明 | 参数 | 解释 | 返回 |
|---|---|---|---|---|
| Clip | 裁剪 | MLayer (另一个矢量图层) | 用第二个图层裁剪第一个图层 | 矢量图层 (Layer) |
| Erase | 擦除 | MLayer (另一个矢量图层) | 用第二个图层裁剪第一个图层 | 矢量图层 (Layer) |
| Intersection | 相交 | MLayer (另一个矢量图层) | 取两个图层的交集 | 矢量图层 (Layer) |
| SymDifference | 交集取反 | MLayer (另一个矢量图层) | 取两个图层的反交集 | 矢量图层 (Layer) |
| Union | 联合 | MLayer (另一个矢量图层) | 联合两个图层 | 矢量图层 (Layer) |
| Update | 更新 | MLayer (另一个矢量图层) | 用第二个图层更新第一个图层 | 矢量图层 (Layer) |
(一)示例

(二)叠加分析结果示意图

示例绘图代码如下:

更新属性表
(一)方法简介

(二)示例


按字段名合并
(一)方法简介

(二)示例


筛选相交要素
(一)方法简介

(二)示例


矢量要素
获取要素信息
矢量要素(Feature)包含的属性及示例结果如下表:
| 类属性 | 说明 | 示例返回值 | 返回值类型 |
|---|---|---|---|
| Area | 几何多边形面积 | 33.38935214042659 | float |
| Boundary | 四至边界范围 (左,下,右,上) | (25.224023437500023, -22.40205078125001, 33.00673828125002, -15.64306640625) | tuple |
| FID | 要素序号 | 0 | int |
| Fields | 字段数据 | {‘LABELRANK’: 3, ‘SOVEREIGNT’: ‘Zimbabwe’, …} | dict |
| FieldsInfo | 字段信息 (数据类型、精度、宽度等) | ![]() | DataFrame |
| GeomPoints | 几何坐标点 | [[[31.287890625000017, -22.40205078125001], [31.197265625, -22.34492187500001],…], …] | list |
| GeometricCenter | 几何中心 | [29.640587660845583, -19.147785500919117] | list |
| GeomType | 几何类型 | Polygon | str |
| GeometryCount | 几何体数量 | 1 | int |
| Length | 几何体边线长度 | 24.92604208613898 | float |
| Points2D | 展开到2维的几何坐标点 | [[31.287890625000017, -22.40205078125001], [31.197265625, -22.34492187500001], …], …] | list |
| Projection | 坐标系/投影(WKT格式) | GEOGCS[“WGS 84”, DATUM[“WGS_1984”, SPHEROID [“WGS 84”, 6378137, 298.257223 563, AUTHORITY [“EPSG”, “7030”]], AUTHO RITY[“EPSG”, “6326”]], PRIMEM[“Green wich”, 0], UNIT[“degree”, 0.017453292 5199433, AUTHORITY[“EPSG”, “9122”]], AXIS ["Latitude ", NORTH], AXIS [“Longitude”, EAST], AUTHORITY [“EPSG”,“4326”]] | str |
几何体导出
(一)方法简介

(二)示例


距离计算
(一)方法简介

(二)示例

重投影
(一)方法简介

(二)示例

简化要素
(一)方法简介

(二)示例


几何关系测试
矢量要素(Feature)包含的几何测试方法如下表:
| 几何测试方法 | 说明 | 参数 | 示例 | 示例结果 | 返回值类型 |
|---|---|---|---|---|---|
| TestContains | 包含关系测试 | MFeature (另一个矢量要素) | Feature.TestContains(Feature2) | False | bool |
| TestIntersection | 相交测试 | MFeature (另一个矢量要素) | bool Feature.TestIntersection(Feature2) | False | bool |
| TestOverlaps | 重叠测过 | MFeature (另一个矢量要素) | Feature.TestOverlaps(Feature2) | False | bool |
| TestTouches | 接触测试 | MFeature (另一个矢量要素) | Feature.TestTouches(Feature2) | False | bool |
| TestRing | 环形测试 | / | Feature.TestRing() | True | bool |
| TestValid | 有效性测试 | / | Feature.TestValid() | True | bool |
转为矢量图层
(一)方法简介

(二)示例

空间叠加分析
与矢量图层叠加分析类似,矢量要素空间叠加为多个要素之间进行叠加处理,得到目标叠加方法处理后的结果。gma矢量要素叠加分析主要包括:
| 叠加分析方法 | 说明 | 参数 | 解释 | 返回 |
|---|---|---|---|---|
| Distance | 差集 | MFeature (另一个矢量要素) | 用第二个要素裁剪第一个要素 | 矢量要素 (Feature) |
| Intersection | 相交 | MFeature (另一个矢量要素) | 取两个要素的交集 | 矢量要素 (Feature) |
| SymDifference | 交集取反 | MFeature (另一个矢量要素) | 取两个要素的反交集 | 矢量要素 (Feature) |
| Union | 联合 | MFeature (另一个矢量要素) | 联合两个要素 | 矢量要素 (Feature) |
(一)示例

(二)叠加分析结果示意图

这篇关于gma 2 教程(二)数据操作:8.矢量操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


