怎样使用图层画图arcpy控制图层颜色颜色

本文是笔者刚刚接触QGIS相关博客资源时找到的一篇文章,全文比较长,因此分成两篇发布。就内容而言不代表笔者观点,留待后续一一验证。

你也许伴随着ArcGIS或者QGIS而成长。
每天你都坐在电脑然后做着同样的事情:你打开你的ArcGIS软件或者新的QGIS软件。
但是你有问过自己:我能不能通过其他的GIS软件获取更多的东西?
我们建议你阅读这些ArcGIS与QGIS之间的不同来使你成为一个更为优秀的地理信息工作者。这是GIS产业中两个明星产品的对决ArcGIS VS QGIS。

1.QGIS容纳更多的数据格式

ArcGIS没有支持所有的数据格式,毫无疑问,QGIS在处理各种类型的数据时非常顺手,QGIS在数据格式方面是个多面手,在使用数据方面是它的长处。
QGIS的接口允许你在一天之内还原一个工程。在设置习惯性分界符方面QGIS甚至比微软的Office还要优秀。
不用理清多种数据格式的冲突和纠结于数据格式,简单地使用过QGIS就可以处理它!
QGIS在数据格式方面明显胜出。

你也许从没认识到ArcGIS中“Add Data”按钮的功能有多强大。
是的,只是一个简单的“Add Data”按钮。你也许觉得很可笑,但等笑完以后请思考这个问题:这个按钮可以简单地完成影像加载是因为它能识别所有的图像格式。
你想加入一个电子表格吗?你想加入一个栅格影像吗?点击“Add Data”按钮,这很简单。
在QGIS中你想添加一个电子表格?单击“Add Vector”按钮,选择所需要的格式。QGIS中提供的按钮种类较多让人眼花缭乱。
还记得ArcMap中打开界面以后立即显示的最近编辑的地图文件吗?QGIS的另一个更改就是在“工程->打开最近文件”添加了这一功能。
因此,ArcGIS的简洁性更加优秀。

QGIS浏览器和ArcCatalog都是独立的地理信息数据管理软件。
这些应用程序帮助管理栅格、矢量的地理数据。提供简单的数据浏览功能,但核心是数据查询和管理。
使用搜索工具和过滤器可以帮我们找到需要的数据文件,这就像你自己私人的Google搜索引擎。使用ArcCatalog不仅可以管理数据,还可以管理地图、模型和工具。管理数据的一项重要工作就是创建元数据。它是什么时候创建的呢?谁创建的呢?它是如何创建的呢?都可以在元数据里找到我们需要的答案。
近些年来,元数据也进化成了多种格式(ISO,FGDC,INSPIRE和NAP)。ArcCatalog向用户提供数据的元数据标准选项。QGIS中的QGIS浏览器和ArcGIS中的ArcCatalog都提供了非常简便的文件系统和地理数据管理功能。
这项比较中,ArcCatalog凭借其可选择性更胜一筹。

当你为空间数据加入一个属性表的时候,你一行一行地填写数据。
在ArcGIS中加入表格是非常直观的。在ArcMap中,你可以右键点击一个图层并且选择“join”,你也可以通过图层属性加入信息。
在QGIS中也同样简单。在QGIS中,你可以使用图层属性加入表格。当你在QGIS中添加一个表关联的时候,可以选择性地重新命名特定关联的前缀。对于复杂关联这是很有效的。

5.ArcGIS和QGIS都成功地解决了坐标系统和投影的问题

你在ArcGIS中加入的第一个数据集决定了你使用的坐标系统。当再次添加其他数据集时,ArcGIS将会对其进行在初始坐标系统上的重投影。一个“未知的空间参考系”代表存在数据冲突。在这种情况下,“未知单位”将会在ArcMap的右下角显示,这时,应该使用定义投影工具对其进行修正。
QGIS支持2700多种已知的坐标参考系统。它允许你方便地定义全球和工程范围的坐标参考系统。它同样允许你定义自定义参考系。
QGIS和ArcGIS都对非常友好地对坐标系统进行了处理,虽然过去的QGIS在对.prj的支持上有点小问题。

当你打开ArcGIS Online的数据目录的时候,令你开心的是:里面有成千上万的政府数据、详细底图和密集的信息。
基本的ArcGIS许可允许你链接到ArcGIS Online——一个地理信息数据的宝库。
一个简单的关于“enviroment”的搜索返回了超过2887条地理数据集:美国农业部的林火检测信息、海洋局的台风数据、全世界气候年鉴、海底深度底图等。这将会使任何环境研究变得方便。
我们想要强调的是ArcGIS Online是一个丰富的地理信息资源库,能帮助你分析和决策。记住,方便使用的同时也伴随着责任,请小心使用这个强大的工具。

“处理许可”听起来像是一个不好的东西,ArcGIS会向我们要求使用许可而QGIS则是开源的。
ArcGIS拥有很好的地理处理框架,无缝而且易于拓展。但是你的许可水平决定你可以使用其中的哪些模块。一个基础的许可让你能够使用一些非常强大的模块。一个高级许可能够让你使用任何模块。
而QGIS的使用不需要任何许可!开源的QGIS软件不限制能够使用的模块。
如果你想在ArcGIS10中使用清除工具,你必须要有一个高级许可。如果没有办法获得高级许可,就无法使用清除工具。而在 QGIS中的擦除工具在矢量分析工具箱中。(在difference工具里,这是与GRASS和SAGAGIS相互结合的一个工具,能够提供处理地理空间问题的必要的功能)这个功能是在基本的ArcGIS许可中是不能使用的。
QGIS的地理处理平台的开放性令人印象深刻。而在ArcGIS却必须受限于许可,真是让人感到无奈。
因此在这个方面QGIS是绝对的赢家。

我们都知道,使用插件可以完成专题化地分析。 QGIS拥有能够处理各种GIS问题的插件集合,总数达到约300个。
但是你也许不知道,ArcGIS也同样具有插件。这些插件也可以帮助我们解决各种GIS问题。
Esri公司最新推出了一款自己的应用商店——ArcGIS MarketPlace,,能够与R统计、海洋附加工具、网络公用数据表单、ET地理魔术师ArcGIS补丁等模块的良好交互,更多的插件后续将会按时推出。
这里有几乎你能想到的所有的空间问题的付费或免费的解决方案。Esri几乎检查了该商店中所有产品的有效性,现在你应该明白Esri为什么在帮助你解决地理空间问题上为什么是一枝独秀了吧。
QGIS拥有一个极为精简的矢量处理机制,但是在模块的丰富程度上就不如Esri了。

9.QGIS和ArcGIS中的栅格处理都同样傻瓜化

空间分析扩展工具中包含了大量的栅格数据处理过程。
不管是简单数学计算,统计或者生成表面,ArcGIS栅格处理工具都是紧密封装的,空间分析工具箱同样提供了地下水、水文,成本表面、太阳辐射等专题化工具。其他可选择的模块有过滤(重分类工具)和简化数据(归一化工具)。
QGIS中的栅格计算器可以使用简单的代数计算和三角函数。QGIS中提供了多种插值方法。常规的克里金方法在QGIS中是一个独立模块,而在ArcGIS中克里金工具则是其中的一个单选选项。GRASS中的r.cost模块是用来生成成本表面的。QGIS的优势在于拥有更多的过滤选项,比如地下水和太阳辐射,但并不像ArcGIS那样全面。
很难在这两者之间决出一个胜者,因为他们都提供了相当多的栅格处理工具选择。

10.ArcGIS地理统计工具箱更好,因为它教你统计

你在组装家具的时候会看说明书吗?一般不看,是不是?
当你运行ArcGIS地理统计工具箱的时候,说明和输出的解释非常清楚。比如:当你运行Moran’s I 的时候,输出的报告传递了一个简单的解释。你就知道你的数据是不是被正确地处理了。
在QGIS中你在使用一种工具前必须需要对它有一定的了解。这不完全是坏事,但明显不如ArcGIS方便。
ArcGIS中的回归分析工具箱制作得非常好用,因为其输出允许使用者把统计结果与其他数据结合起来,这为接下来的分析节省了时间。
QGIS中的组统计插件是非常简洁的,就像是在QGIS中内嵌的一个表格生成器一样。列代表统计的种类(平均值、最小值、变化幅度等),行是绝对字段如各种地名或者水域。添加一个字段并且进行计算,瞧,表格就生成了。
当你能够理解文章中的晦涩概念的时候,你就理解了我这篇文章。ArcGIS更胜一筹因为其引导式的地理统计

11.使用QGIS的遥感工具箱时你能拥有X射线的视野

在寂静的外太空,卫星在轨道上运行并使用多光谱传感器获取地面影像。例如Sentinel2a和Landset-8生产的卫星影像在GIS分析中得到了大量使用。
QGIS和ArcGIS都提供了大量的遥感工具。其中一些是手动工具,像chisel,能量分析工具像electric drill。
QGIS的半导体自动分类插件能让你下载Landset影像并且自动分类。欧菲奥工具箱(Orfeo toolbox)提供了从滤波、处理和操作栅格数据的工具。Lastools可以处理LiDAR数据。
当ArcGIS10.1添加了图像分析工具箱的时候,它自带了遥感分析工具,提供采样、监督和非监督分类功能、融合、计算NDVI、正射纠正、亮度对比度透明度调整等等功能。Las数据集是一个处理LiDAR数据的尴尬的中间媒介,还有许多工作需要完成。
那么QGIS在遥感处理领域更胜一筹。

12.使用ArcGIS设计你下一次的钓鱼路线

在日常生活中,几乎每个人都有规划路径的体验。

  • 去这个啤酒点的最短路线是什么?

在ArcGIS中,只需要打开网络分析功能,把数据集加入,建立简单的拓扑关系可能稍微有点难度,但完成之后你就可以准备出发了。
使用“道路图”插件,QGIS计算最短路径。QGIS缺少一些ArcGIS网络分析中的一些工具-位置分配、新OD成本矩阵等
ArcGIS网络分析扩展工具是顶级水准。

13.使用ArcGIS模型建立器指导工作流

你曾经想过使用画图式的方法建立自动工作的工作流吗?
想一下:当你按照安排好的模型运行任务的时候,即使你一整天都躺在卧室也能完成工作。ArcGIS的模块建立器是最直观,模块化,实用的自动的地理处理工作的实现方法。
把一系列的工具在建立器中串接起来,然后就可以实现自动处理了。只是简单地把模块拖出来按照流程图一样把他们串起来就好了,十分简单。再进一步:把你的模型导出并且分享给别人,或者导出成Python代码并且修改它。
ArcGIS脚本都通过Arcpy模块工作,在Arcpy中编写代码是非常地简单的,基本上ArcGIS中的所有工具在其中都有同样名字的引用脚本,你可以在Esri的网站上找到并且粘贴使用。一切都是自动的。QGIS中也有和ArcGIS中模型建立器一样的工具,叫做图形式模块。
你可以像画图一样把一系列的模块按照一定的顺序拖动。不过,QGIS在使用这个模块的时候经常会崩溃,所以最好提前保存一下。
对于QGIS来说,你可以使用PyQGIS模块和GDAL,你也可能会用到其他工程提供的大量模块。尽管存在各种bug,你还是可以得到你想要的结果。
我们喜欢模型建立器,我们喜欢Arcpy,这是ArcGIS的两个闪光点。

开源怀疑者认为ArcGIS才是做出漂亮地图的唯一工具。但是QGIS也是一个可行的优秀制图工具。QGIS地图接口叫做“印刷工”,它简直就像是一个独立的应用程序一样。但是当你一旦在图层上加入符号和特征以后,你就会发现QGIS是制图的理想工具。
ArcGIS的制图工具就是教你使用各种模板并导出地图产品。ArcGIS可以将其导出成为各种格式,如PDF,JPG,SVG,AI,PNG,EPS和EMF。ArcGIS制图工具是非常实用的。它可以非常容易地精确指定你的标签,使用简单的矩形连接数据框架。
我们认为QGIS和ArcGIS都达到了制图目的。

ArcGIS的启动画面非常漂亮,我们喜欢各种被严格定义的符号,它们使得点线面状地物更加生动。ArcMap中的符号真的非常漂亮、有用和充足。
QGIS在这方面就略显不足。当然,在某些方面QGIS还是不错的,比如铁路和阴影多边形。而且,你可以从互联网上下载并且加载符号模板。QGIS强力推荐的一个功能是其ps式的填充选项。具有一个远超符号库的混合选项:淡化、全屏、躲避、加深、复制、燃烧(burn)、覆盖、轻微变亮、差异。
梯度填充使得QGIS对于制图员来说非常的轻松。你可以使用两个或多个颜色简单地创造梯度。添加不同的种类的梯度计算方式:线性式、辐射式、圆锥式。QGIS的图层样式文件可以保存为.qml格式。而且更好的消息是颜色拾取器能够让用户手动选择颜色,而不用苦逼地输入rgb数字了。
QGIS有一些非常高级的符号,ArcGIS非常的实用。二者再次打平。

16.在QGIS中设计漂亮的标签和标注

在QGIS中添加标签是很方便的。QGIS的样式水平达到了一个新的高度。

  • 文字边缘添加了缓冲区(更好看)
  • 为样式点添加了后置阴影
  • 设置透明度、混合样式和偏移

这些不易察觉的改变让标签变得更加美观。
而ArcGIS中的标签不如一些QGIS美观,你可以使用ArcGIS中的图像标签引擎来放置标签。获得想要添加标签特征的图层的控制权,设置标签的位置和比例尺。设置曲线标签和平行标签在ArcGIS中是很容易的。它非常智能。
画图工具箱在ArcGIS中控制着注释组。为注记设置一个单独的工具箱也许不是很直观。但是只要稍许练习你就能调整注记的组归属。
QGIS凭借其漂亮的标签更胜一筹。但是注记和属性的放置方面ArcGIS更加优秀。
为了对质量负责我只能先发一半了=.=,各位大大原谅我…..

}

1.1、数据列表与遍历

(1)返回数据列表的函数

ArcPy中提供了大量可以返回数据列表的函数,可以方便后续遍历数据。

返回数据集中的字段列表
返回数据集中属性索引列表
返回工作空间中的数据集
返回工作空间中的要素类
返回工作空间中的栅格数据

参数说明:wild_card:字符串参数,用于过滤,支持通配符。

对于接收列表类型参数的地理处理工具,列表参数的设置有三种方式:列表、字符串、ValueTable。

在执行合并或追加等地理处理工具时,需要将输入源的字段映射到输出数据的字段上。对于这种字段映射关系的定义使用Fieldmappings和Fieldmap对象,Fieldmappings由Fieldmap组成,Fieldmap定义了多个输入字段与一个输出字段的映射关系。

(2)设置输入输出字段映射关系
如图层fc1的字段name,fc2的字段str,映射到输出图层的strname字段。

(3)定义输入图层与输出图层映射关系

1.3、验证表和字段名称

在操作地理数据库中的要素类以及字段信息时,需要注意是否违反数据库的命名规范,如表名是否重复,是否包含非法字符等。ArcPy提供了如下函数供检验正确与否:

2.1、检查数据是否存在

(1)检查GDB中的图层是否存在

(2)检查SDE中的图层是否存在

2.2、读取数据的属性信息

Describe函数用于读取数据的属性信息。

2.3、读取数据的字段信息

2.5、访问要素集和记录集

FeatureSet要素集对应要素类,RecordSet记录集对应表。两者操作方式一样。

(1)从要素类中读取数据集 方式1:

(2)从Result对象中获取数据集

游标用于增、删、查、改地理数据。ArcPy中提供的游标有三种:查询游标、插入游标、更新游标。

方式1:for语句(也可以使用while语句结合next()方法迭代)

游标只支持向前导航,如果需要重新导航,需要调用reset方法重置。

(3)过滤查询 方式1:where条件查询。过滤条件建议写在三重引号中。

ArcGIS中对字段名的引用因数据源不同而不同,文件GDB和shape引用字段使用双引号,SDE不使用任何符号。为避免麻烦,使用AddFieldDelimiters函数处理。

更新游标支持数据更新和删除。

查询游标、插入游标、更新游标返回的结果都是Cursor对象,它代表的是数据列表,由Row对象组成,Row对应是表中的一行记录。

(2)Row对象的方法

除了使用get方法读取字段值外,Row对象还支持直接访问字段名的方式获取值,如:row.NAME

查询游标使用的是共享锁,插入游标和更新游标使用的是排它锁。使用排它锁时,会阻止其他应用程序访问数据集。游标释放方式:

  1. 在with语句中使用游标,会自动释放锁。

Point是非几何对象,常配合游标使用。

array中的坐标不需要闭合。

记录矩形范围的最大最小XY等信息。

4.6、与游标结合使用

4.7、与地理处理工具结合使用

(1)作为输入几何参数
自定义构建几何对象,作为地理处理工具的参数。

(2)作为输出几何对象
将地理处理工具的输出设置为空几何对象,可以用来输出几何对象列表。

4.8、拓扑和几何操作

地图制图模块提供了管理mxd文档和图层,图层渲染、地图打印输出、地图服务发布等功能。

(1)访问地图文档 方式1:访问当前地图文档

方式2:访问指定路径的地图文档

(4)图层显示信息设置
如:打开标注和设置透明度。

  1. 版本化的数据只能通过版本化视图来使用SQL。非版本化的数据无此限制。
  2. 使用数据库原生空间类型构建的地理数据库,可以使用数据库本身的空间SQL语句。
}

用于使用简易放置选项将图层添加到地图文档 (.mxd) 内的数据框中。

AddLayer 是一种向地图文档添加图层或图层组的简单方法。它可以使用自动排列逻辑添加图层,将新图层放置在数据框中,这与添加数据按钮在 ArcMap 中的工作方式相似;AddLayer 根据图层权重规则和几何类型放置图层。其他放置选择为放置在数据框的顶部或底部。有关更精确的图层放置选项的信息,请参阅 函数。

AddLayer 是唯一一个能向空数据框添加图层的函数。AddLayer 不允许将多个图层添加到一个图层文件或图层组中。如果您对管理图层文件感兴趣,请参阅 和 函数。

添加的图层必须参考已存在的图层(请注意,图层也可以是图层组)。源图层可以来自磁盘上的图层文件、同一地图文档和数据框、同一地图文档不同数据框乃至完全独立的地图文档。

添加图层后,图层在内容列表 (TOC) 中的显示方式取决于源图层及其显示方式。例如,在 TOC 中,有些图层完全折叠且不显示其符号。此设置内置在图层中。如果图层折叠且保存在图层文件中,然后被添加到地图文档中,则通过 AddLayer 添加该图层时,图层在新的地图文档中将显示为折叠状态。

以下脚本会从磁盘上的图层文件 (.lyr) 添加一个新图层,并将其放置于名为 New Data Frame 的数据框底部。

以下脚本会从另一独立的地图文档添加一个名为 NE_Layers 的新图层组,并使用自动排列在名为 New Data Frame 的数据框中放置图层组。

}

我要回帖

更多关于 arcpy控制图层颜色 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信