批处理的ArcGIS中的批处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理的ArcGIS中的批处理相关的知识,希望对你有一定的参考价值。
参考技术A可别告诉我您不知道什么是批处理,当面对一大堆需要重复操作的数据时,往往让我们感到头大,这时候我们会想到批处理 ,那ArcGIS给大家提供了哪些批处理的方法呢,让我们拭目以待。
假设我们需要给道路建立缓冲区,设计到的工具为Buffer。
第一种情况,一个图层中不同要素建立不同大小的缓冲区
不同类型的道路,我们需要建立不同大小的缓冲区,比如,一级道路建立10米的缓冲区,二级道路建立15米的缓冲区,三级道建立20米的缓冲区。
步骤:
1、 首先应该保证你的道路数据里面有一个属性字段是用来存储Buffer宽度信息的。
2、 应用Buffer工具,在对应的参数位置选择相应字段即可。
第二种情况,不同的图层建立不同大小的缓冲区
假设还有其他不同的数据,不仅仅是道路,这些图层都需要建立缓冲区。
步骤:
1、 找到Buffer工具,右键,选择Batch,打开批处理面板。从该面板上我们可以发现,参数与我们打开Buffer的参数是一样的,这个时候是不是可以考虑在EXCEL中批量编辑好,然后复制过来呢
2、 在Excel中编辑需要的数据。
3、 将在Excel中编辑的数据复制到Buffer的批处理面板中来。此处需要注意,如果要复制10行数据,需要在批处理面板中先选中10行,右键单击,选择“paste”。
4、 点击OK即可。
如果想要每个图层中每种类型的数据的缓冲区宽度都不一样,该怎样处理的?这个留给您来尝试吧,原理很简单,就是找到参数位置,写上对应的字段即可。
第三种情况,Python实现批处理
如果您觉得上面的方法比较麻烦,而且要求也比较严格,您可以考虑应用Python来处理。
步骤:
1、 编写代码
import arcpy,os
inFCs = arcpy.GetParameterAsText(0)
outWS = arcpy.GetParameterAsText(1)
dist = arcpy.GetParameterAsText(2)
inFCs = inFCs.split(;)
for inFC in inFCs:
fileName =os.path.split(inFC)[1]
arcpy.Buffer_analysis(inFC,outWS + \\\\ + fileName, str(dist) + meter)
上面这段代码,要求用户自己设置输入数据、输出数据、缓冲区宽度(单位为米)。这里输出缓冲区数据的名称和输入数据的名称一样,如果不想要这样,可以进一步修改代码。
2、 接下来将该代码增加到ArcToolbox中,步骤比较简单,这里不再赘述。
需要注意的地方为最后的参数设置部分,”输入数据”的“MutiValue”属性设置为”Yes”。(此部分的参数设置较条条框框较多,需要与你的代码相互对照)
3、 完成后,工具将会添加到您自己的工具箱中。打开该工具,您会看到界面像普通工具的界面一样,输入数据可以设置很多个,但是这个工具所有图层的缓冲区大小必须一样。
ArcGis地理坐标系转投影坐标系的问题的思考与处理
作者又不知道标题该咋写了,凑合看吧。
国庆前帮人处理了这样一个问题:
Shapefile数据,既有PCS信息,也有GCS信息,加载到ArcMap后,ArcMap呈懵逼状态,缩放功能完蛋。
求助者希望对数据进行投影,由CGCS2000的GCS坐标系投影到CGCS2000_3_Degree_GK_CM_111E的PCS坐标系,尝试使用ArcToolbox的工具进行投影失败。
相关背景知识:
1、ArcGis中的GCS、PCS、VCS坐标系(地理、投影、垂直)
好些人举例剥桔子,其实俺认为橙子或者柚子更靠谱,皮厚,剥不坏。
GCS与的经纬度不是固定的,因为不同坐标系选用的参考椭球体不同。GCS,橙子,球面,经纬度。
PCS实质=GCS+投影过程(橙子皮剥开的过程),PCS与投影方式(竖着剥、横着剥、斜着剥,中间剥、顶上剥……各种剥)不是固定搭配。PCS,剥开摊平的橙子,平面,距离。
具体的自己百度吧,俺也不专业。上面红色的要理解。
2、ArcGis的工作空间
空间参考:空间参考是用于存储各要素类和栅格数据集,以及其他坐标属性(例如,x,y 坐标的坐标分辨率及可选的 z 坐标和测量 (m) 坐标)的坐标系。如果需要,可使用表示表面高程的 z 坐标为数据集定义一个垂直坐标系。俺也不知道咋说的直白点……
动态投影:ArcMap的Data Frame(数据框)的坐标系统自动设定为第一个加载到当前Data Frame的那个文件的坐标系统(当然,你可以自己直接定义一个再加载数据,为啥这么玩~~),后加入的数据,如果和当前工作区坐标系统不同,则ArcMap会自动做投影变换,把后加入的数据投影变换到当前数据框坐标系统下显示,但此时数据文件所存储的实际数据坐标值并没有改变,只是显示形态上的变化,因此叫动态投影。
数据框属性:看完“动态投影”,这个自己意会吧。
处理过程:
1、干掉PCS,既然要实现GCS到PCS的转换,干脆直接将空间参考处理为“纯净的”GCS,直接ArcToolbox工具定义为“GCS_China_Geodetic_Coordinate_System_2000”。
2、接下来你想再用ArcToolbox工具定义为CGCS2000_3_Degree_GK_CM_111E的PCS坐标系?行不通的!ArcMap会继续懵逼。
3、这时候,作者想到了“数据框属性”,通过“动态投影”实现GCS到PCS的自动转换。
①重新打开一个ArcMap,一定要重新打开一个!为啥?自己想去!【视图】—【数据框属性】—【坐标系】—设置PCS坐标系,投影方式毫无疑问的高斯克鲁格。
【数据框属性】—【常规】——单位设置为“米”。
这里直接将ArcMap的数据框坐标系进行了设定。
②将第步干掉PCS信息的数据加载进来,GCS坐标系的数据会直接变换到数据框坐标系下显示。
③明白“动态投影”的应该知道到这里还没完,因为Shapefile文件的实际数据坐标值并没有变化,那么如何让它变化呢?
【内容列表】图层名上右键—【数据】—【导出数据】,导出坐标系选择“数据框”即可。为啥?自己想去!
欢迎指正各种错误~~~~
以上是关于批处理的ArcGIS中的批处理的主要内容,如果未能解决你的问题,请参考以下文章
arcgis9.3中,做面编辑时,如何快速的处理两个面之间的交线,而不用一个一个节点地去点,急求!!!!
每次使用ArcToolbox中的工具进行处理的时候都会弹出“Arcgis Desktop 遇到严重的应用程序错误”