从Tif文件转为shp文件(ArcMap,代码)
利用ArcMap来进行转换,以预测出来的滨海湿地图像为例
第一步:打开ArcMap中的栅格转面工具
ArcMap中的栅格转面工具
点击栅格转面之后,选择参数和输出文件路径,如下图所示
得到的结果即为
在选择的文件夹下会生成如下文件
第二步:属性归并
查看tif原图和生成的shp图的属性表。下方左侧为tif原图的属性表,右侧为生成的shp图的属性表
尚未知道栅格转面的具体原理,看到这样一种说法:“在属性表中,因为栅格转矢量是1度1度转的,所以,属性表中的坡度值是从0度开始一直到很大的坡度的。因此,需要按照相关标准进行归并。”
尚未知道融合工具前的笨方法:
第一步在属性表中点击按属性选择,在语句框中根据需求写入sql语句,如GRIDCODE=0(注意看上面还有句:SELECT * FROM test_new WHERE:),然后点击应用
第二步点击编辑器的下拉箭头,点击合并,为属性值相同的多要素进行合并
现在GRIDCODE=0的要素便被集中到了一个要素中,然后再对其他值进行合并
融合工具:
偶然间看到ArcMap中有融合工具,试用了一下感觉清清爽爽。下图为融合工具的位置
点击融合,进入融合界面,输入要素即为需要融合的图像,输出要素类即为融合之后的shp图像,融合字段即为你需要它融合的字段(在本例中为GRIDCODE)
以下为融合后的shp图像的属性表,可以看到融合工具将GRIDCODE相同的要素融合到了一起
第三步:根据需求添加字段并显示
在属性表中点击左上角的表选项,然后点击添加字段。若打开后的添加字段为灰色(不可点击状态),则查看目前是否处于正在编辑状态,若在则需要停止编辑。
按照需求给添加的字段赋予相关参数,如下图所示,新建了名词为class,属性为文本,长度为20的新字段
点击确定后,属性表为下图所示
接下来则需要为新添加的字段进行赋值。普通状态下无法对字段的值进行操作,此时需要进入编辑要素状态,点击需要操作的字段进行操作。
在属性表中添加了新字段后便可根据此字段来显示shp图。右键点击shp图像——>属性——>符号系统
在显示那一栏中点击类别——>唯一值——>值字段(选择你添加的新字段,此处为class)——>添加所有值
若无错误,应如下图所示。
点击确定后便可看到shp图已有了多种颜色。右键shp图——>标注要素。如下图所示
有时点击标注要素后它可能还是不显示class中的值,而显示GRIDCODE的值,将其移除并重新导入即可正常显示。
利用Arcpy来进行转换
ArcPy 是一个 Python 站点包,可提供以实用高效的方式通过 Python 执行地理数据分析、数据转换、数据管理和地图自动化。点击 这里 可进入官网了解更多Arcpy的知识。
因在其他版本的python空间中很难导入arcpy库,即便处理好一部分后也会报*“ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。”*这种错误,一查是导入的Arcpy库与python版本不一致。因我需要将python文件打包成exe应用程序,所以只需写出python代码来即可,于是便可在ArcGis的python27环境下打开python IDLE,其安装时自带arcpy库。
进入后先看是否可以导入arcpy库,如图所示不报错便可新建python文件开始相关操作。
最终目的是将写好的arcpy打包成一个exe程序,但arcpy打包时遇到很多问题,几经折腾终于找到了如何使用py2exe打包arcpy脚本?教程,其利用py2exe来将带有arcpy库的python文件进行打包。关于py2exe打包的用法,可以自行搜索,其与pyinstaller各有优劣,有兴趣自己查找即可。
根据以上教程,首先将准备工作做好后才能进行import arcpy,具体原因请看上面教程
from site import addsitedir
from sys import executable
from os impor