美文网首页生态遥感的学习笔记
基于ModelBuilter的SetNull批量处理

基于ModelBuilter的SetNull批量处理

作者: 荔枝猪 | 来源:发表于2019-06-25 11:15 被阅读2次

    1. 需求

    现有一些tif格式的温度栅格数据,希望把所有数据的值-9999设为Nodata。

    如果只有一份数据,可能会不假思索的找到 ArcToolbox中的栅格计算器工具,利用SetNull函数即可解决问题;如果是300+份数据,可能该做个工具了

    SetNull函数

    2. 利用ModelBuilter

    打开ModelBuilter,将Setnull工具拖入,找不到工具可以在Search里搜索,双击工具,填补所需参数,直至Model因参数完成而变为彩色。

    ModelBuilter 填补所需参数

    3.使用迭代器

    前一步已经满足一次任务的需要了,接着解决批处理问题。这里我们使用迭代器来实现循环。

    在这里我们需要遍历tif格式的栅格图像,因此选择 Iterates→ Raster。也可以根据自己需求选择其他迭代器。

    Itertors

    双击迭代器,设置工作空间/文件夹目录(就是你存放数据的地方),栅格格式选择TIF(只遍历TIF格式的数据),其他根据需求没有选择。

    Iterate Rasters

    删除原有SetNull工具的输入数据,将迭代器的输出数据连接为新的输入;

    修改SetNull工具的输出数据,因为批量处理会将同名文件覆盖,而迭代器每遍历一个数据会返回其Name(名称),%Name% 表示引用。

    最终流程

    4.制成模型工具

    如果以后经常会用到这个需求来处理数据,可以将其做成模型工具。

    在需要作为参数方便后续修改的项目上右键,勾选 “模型参数”,将输入数据和输出数据设置为模型变量。

    将模型保存至工具箱后,双击运行工具。

    5.注意事项

    每个模型仅可使用一个迭代器。

    如果将含有迭代器的模型导出为 Python 脚本,则导出的脚本中将不会包括迭代逻辑。

    如果使用嵌套等复杂循环,可以编写python脚本可以使用 ArcPy中的函数 ListFeatureClasses 和 SearchCursor来实现遍历文件夹中的栅格数据等。正在学习ing...

    相关文章

      网友评论

        本文标题:基于ModelBuilter的SetNull批量处理

        本文链接:https://www.haomeiwen.com/subject/hnozqctx.html