gma 教程 | 栅格处理 | 矢量裁剪栅格

目标

【裁剪】。按矢量边界裁剪栅格。

环境

系统: Window 10+ (X64)
Python 版本: 3.8.8+
gma 版本: 1.0.7+

gma 安装和详细功能帮助见:地理与气象分析库

函数

gma.rasp.Clip(InFile, OutFile, CutLineFile, LayerID = 0, FeatureID = None, InNoData = None, OutNoData = None, OutFormat = ‘GTiff’)


参数:

 InFile:str。输入栅格路径。

 OutFile:str。输出文件路径。

 CutLineFile:str。裁剪矢量文件路径。

可选参数:

 LayerID = int 。输入裁剪矢量的图层 ID。默认第一个图层(0)。

 FeatureID = list 。掩膜图层的要素 ID。默认掩膜全部要素(None)。

 InNoData = float。输入栅格的无效值。默认不指定(None)无效值。

 OutNoData = float。输出栅格的无效值。默认不指定(None)无效值。

 OutFormat = str。输出栅格文件格式。默认为 GTiff,其他格式详见 ToOtherFormat 函数。


案例

数据

栅格数据: ESA 2020年陆表覆盖数据
矢量数据: 河南省18个地级行政单位矢量边界

gma 教程 | 栅格处理 | 矢量裁剪栅格_第1张图片

裁剪

import gma

# 定义原始栅格和裁剪矢量
InFile = r'D:\CSDN\gma\栅格处理\0.1原始影像\ESA_Henan_2020.tif'
CutLineFile = r'D:\CSDN\gma\栅格处理\0.2原始矢量\Henan_City.shp'

# 定义裁剪结果路径并执行裁剪
OutFile = r'D:\CSDN\gma\栅格处理\Clip\ESA_Henan_2020_Clip.tif'
gma.rasp.Clip(InFile, OutFile, CutLineFile, OutNoData=0)

裁剪结果如下:
gma 教程 | 栅格处理 | 矢量裁剪栅格_第2张图片

如果需要按矢量文件中的某个要素裁剪,可增加 FeatureID 参数,示例如下:

如果有需求,可先查看矢量属性表,获取要素信息,方法如下:

# 打开矢量数据集
VEDataSet = gma.Open(CutLineFile)
# 获取矢量图层
LY = VEDataSet.GetLayer(0)
# 获取属性表
ATable = LY.GetAttributeTable()
print(ATable)
省代码 市代码 类型
0 410000 河南省 410100 郑州市 地级市
1 410000 河南省 410200 开封市 地级市
2 410000 河南省 410300 洛阳市 地级市
3 410000 河南省 410400 平顶山市 地级市
4 410000 河南省 410500 安阳市 地级市
5 410000 河南省 410600 鹤壁市 地级市
6 410000 河南省 410700 新乡市 地级市
7 410000 河南省 410800 焦作市 地级市
8 410000 河南省 410900 濮阳市 地级市
9 410000 河南省 411000 许昌市 地级市
10 410000 河南省 411100 漯河市 地级市
11 410000 河南省 411200 三门峡市 地级市
12 410000 河南省 411300 南阳市 地级市
13 410000 河南省 411400 商丘市 地级市
14 410000 河南省 411500 信阳市 地级市
15 410000 河南省 411600 周口市 地级市
16 410000 河南省 411700 驻马店市 地级市
17 410000 河南省 419001 济源市 省直辖县

我们裁剪河南省洛阳市,其 FeatureID 为 2,配置参数如下:

### 按 图层ID 裁剪
OutFileFID = r'D:\CSDN\gma\栅格处理\Clip\ESA_Henan_2020_Clip_FID2.tif'
gma.rasp.Clip(InFile, OutFileFID, CutLineFile, FeatureID = [2], OutNoData=0)

执行结果如下所示:

疑问与反馈

邮箱:[email protected]

你可能感兴趣的:(地理与气象分析库,python)