前面使用了arcgis将线状转变为了面状
虽然可以一张图一张图的获取
并且在这个过程中进行重命名
如果还按照一、教程的方法来弄(点击跳转看看一张一张如何保存)
就有些太麻烦了
这里总结一下如何用arcgis软件进行批量生成样本的操作
我的图片名字是作为Annotation单独存在于一个图层
而方格是另外一个图层
如何把这两者进行一个关联
我发现他俩都有一个字段FID可以通过这个来进行表连接
但是
一个是0开头
一个是1开头
所以需要对属性表每个加1或者重新新建一列1开头
这样有相同的值才能进行表关联
打开字段计算器
简答的操作可以查看这个
这样就新建了一列与我们的图片文字表对应的了
方格是1-239
文字的属性表也是1-239
然后就可以进行属性表连接
追加图片名称在方格的属性表里
这样就可以获得包含图片名称的方格拉
首先我得先把有数据的数据框要素保存下来
这个会用来裁剪我的面状要素
首先我找到我的数据框
是在这个要素里面的
选择一个就是一个数据框
于是对其进行数据另存为
得到了每一个方块的面状
接下来我要选择有面状数据的方块保存下来
如何用软件进行操作呢
首先点击
工具栏中的选择
然后选择按位置选择
这个表就可以选择相交的方格拉
再另存为就行啦
这样就对方格进行了第一步的筛选
在这里要选择要素里的每一个方格
因此是一个批量模型的操作
这里需要使用到模型构建
模型图如图所示
这里需要使用到迭代器中的要素选择
这里我参考了这篇文章
过程写得非常详细
大家可以去看看
这种设定名字的方法要学习一下
关键在这里,双击裁剪工具,设置输出文件命名为“%名称%”,这里的名称指的是迭代器所生成的名称
这里插入一个小知识点
这里查看这篇文章,终于学会保存了!!原来P是这么用的!
这样就可以把自己的工具箱里面的模型加载出来了
还可以随时进行修改!
但这样生成的文件命名是从1开始的数字,并不是我想要的命名
查看这篇文章可以把生成的文件名修改为某一个字段
这样就可以批量将属性的某一列设置为文件名啦
经过上面的步骤我已经把我需要的面裁剪出来了
那么如何保存为我需要的黑白样本文件呢
由于白色在这里是255,而他要素转栅格是需要设定一个值的
于是我得先回去给water设定一个新的属性列
然后在进行后面的步骤
由于名称是要素转栅格的名称
所以这里必须要加一个虚线
把这两个关联起来
不然会报错的
使用连接
连接两者
他是环境->输出配置关键字
最后我做出的模型如下
这样运行出来其实有点问题
比如图片颜色不对
还是需要给多边形添加一个新字段为255
最后的图片名称不需要我自己加.tif
他自动就是tif文件了
其实这个就是要自己不断尝试
不断进行修改的
修改之后再运行就能够得到黑白的样本啦
命名也是我想要的
这里又出现了一个问题样本
大小不是我想要的方格的大小诶
于是再次来康康这个问题
这里要感谢跟我一样有这个问题的小姐妹
她是研究了好久好久才用arcgis解决了这个问题
其实是用栅格的镶嵌来解决这个问题的
厉害了我的姐妹!!!!
这里我继续摸索一下她给我讲的这个思路
然后复现一下
首先
需要把我的每一个方格转化为栅格
他是背景所以我提前给他增加了一列属性值为0的字段
然后进行要素转栅格操作
转成全黑的图片之后再进行镶嵌操作
使用模型就是这样的一个图
但是这样设计
又出现了一个问题
一直在面转栅格的地方卡住了
在这个界面一直出不去
然后我试了一下单独选中这个面把这个面转成栅格
确实也需要运行很久
于是我决定等等
应该是6060*6060大小的图片太大了所以无法很快的转成栅格
那就只能耐心地等待了
不管我怎么尝试
这种直接要素转面都很难一次性完成!!!
其实是可以成功的
但可能是我哪一步失败了,所以我下面对整个流程进行了拆分尝试
看看每一个步骤能否单独顺利完成
于是我决定换个思路
先保存下来shp文件
如何在迭代要素时把要素保存为单独的shp文件
我只找到了批量保存的工具
设定输出的文件夹
这样并不能自定义文件名,有些不太好用
但这个方法很好用
可以查看这篇文章
然后再进行shp文件转栅格
模型如下:
终于得到一张黑色的背景图
喜极而泣
说明黑色背景是有的!!
接下来就是要把河流的裁剪出来
也转化成栅格
最后得到两个栅格图片的文件夹
其中图片应该是一一对应的
接下来进行镶嵌
跟上面一样
选择通配符
注意一个模型只能包含一个迭代器!!!
所以不能分开来跑
还是得把他们合在一起
用一个模型来跑
既然每一个步骤是没有问题的
黑色的背景图也可以很快产生
也许就是需要先转为shp再转栅格的问题
于是把上面两个步骤合在一起用一个大模型来跑
但是在镶嵌的时候出现了问题
我的背景黑图只有一个波段
而另外的图片是3个波段???
我打开了另外一个图片
也是1个波段的
我哭了
知道了是这里要调整成1
开心!终于成功啦!
镶嵌成功!
先开始没法进行整个流程可能真的是软件的问题
把软件关了重新启动就成功啦!
还有个小问题
由于我的图片名称有tif
所以这就导致了有两个tif
所以我修改了一下
这样默认了输出就是tif图片
先开始对方格要提前预处理一下
筛选+添加255和0的属性列+添加图片名的属性列
得到有样本的方格
然后再用下面的模型跑就可以成功啦
最后总结一下我的模型,可以顺利运行!!!
成功批量生成了河流样本!
问题:
第二次返工的时候才发现
生成的图片分辨率并不是标准的6060
如图
会出现某些图片分辨率变成6061的情况
我试了好几次
这些图片应该是裁剪的问题
在边缘地方存在样本
裁剪并没有特别标准
所以会出现这种情况
所以样本做好后还需要进行检查
出现问题的样本我决定人工重新裁剪修改保存
看看有没有问题