ArcGIS—基于Python的脚本编程(5)

本文介绍基于Python的栅格数据处理方法,涵盖栅格元素类型,如TIFF、JPEG等格式;通过arcpy.Describe()获取栅格数据集属性;arcpy中有专门栅格类处理栅格对象;ApplyEnvironment函数可设置部分环境参数;还介绍了arcpy.sa模块中定义栅格工具参数的类。

这篇文章主要介绍基于Python的栅格数据一些处理方法。

目录


栅格元素类型

  1. 栅格数据集:存储在磁盘中或者数据库中,包括TIFF、JPEG、Esri GRID等格式;栅格数据集是没有栅格分辨率属性的;
  2. 栅格波段:栅格数据集中的一个图层,访问波段可以使用 栅格数据/Band_1 形式;只有栅格波段才有分辨率属性。
  3. 栅格目录:以表格形式定义的栅格数据的集合。(这个我倒是没有注意过,也不知道具体说的是哪种。待考证。)

2. 栅格数据集的属性

  • 通过arcpy.Desribe()函数来获取
desc = arcpy.Describe(栅格数据)
  • 常用的栅格数据集有以下属性
desc.dataType   //判断栅格元素的数据类型
desc.bandcount  //栅格数据集的波段数
desc.format     //栅格数据格式(如TIFF、GRID等)
desc.permanent  //栅格数据的状态(False代表临时数据,反之则不是)
  • 更多的,从describe中还可以获取height行数、weight列数、meanCellWeight栅格单元在x方向上的值等等(注意:这些都属于栅格波段特有的属性),就不再一一赘述了,具体要看可以去arcgis的help文档。

3. 处理栅格对象

  • 在arcpy中有专门的栅格类,通常使用栅格类来进行栅格数据的处理:
## 通过已有栅格数据创建栅格对象
raster1 = arcpy.Raster(栅格数据完整路径)

## 通过地理处理语句创建新栅格对象,如Slope方法创建一个新栅格
raster2 = arcpy.sa.Slope(栅格数据)
  • 栅格对象只有一个方法:
栅格对象.save(保存的具体完整路径)

4. ApplyEnvironment函数

ApplyEnvironment函数并不能将所有环境参数都进行设置,仅限于Cell Size, Current Workspace, Mask, Output Coordinate System, Scratch Workspace, Snap Raser这几个。

## 将栅格对象2的环境设置应用到栅格对象1上
栅格对象1 = ApplyEnvironment(栅格对象2)

5. arcpy.sa中的类

arcpy.sa是arcgis用于空间分析中的重要模块,其中也包含了许多定义栅格工具参数的类。

  • 例如,以重分类工具为例,它的工具为:
Reclassify(输入栅格,待重分类字段,remap,其他参数)

## 其中的remap就是Remap类的一个remap对象,具体有两种:
remap = RemapValue([[旧值1, 新值1], [旧值2, 新值2], [旧值3, 新值3], ...])  //以单个输入值作为重分类项
remap = RemapRange([[旧起始值, 旧结束值, 新值],  ...])  //以输入值范围作为重分类项
  • 再例如,在焦点统计(Focal Statistics)工具中的邻域类也很常用。主要有六种类型的邻域对象:

    • NbrSnnulus——指定内、外圆半径;
    • NbrCircle——指定半径

这里就不再说了,详情可见help。


–原创文章,转载必须注明出处–

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值