arcmap中添加python脚本_基于Python脚本的ArcMap字段计算器分类赋值
因为出差等等缘由,又没能很好的坚持记录博客,今天回来了,继续记录所学吧。python
ArcMap中提供了“字段计算器工具”,实际上就是对Sql语句进行了可视化封装,造成了一个具备计算器外观的Sql语句编辑器窗口。利用字段计算器工具,咱们能够直接在AacMap中针对图层的属性表进行数据的增删改查等操做,从而避免了操做图形的同时切换到Oracle、sqlserver、access等存储介质中操做属性表的麻烦。(之前批量处理数据时,采用的就是讲数据导进mdb中,而后利用Access打开写sql语句进行操做的方法,相比于字段计算器来讲,麻烦的多)sql
字段计算器工具很方便,可是编辑起来交互不友好,并且python语法对于缩进要求很严格,这个编辑器也没有智能缩进和代码提示的功能,彻底要求编辑者在相似纯记事本的状态下进行编辑,必定要十分谨慎认真才能执行出想要的结果。下面咱们用具体事例来说解操做过程。编辑器
以下图所示,函数
咱们有一个图层,是关于一些两栖类和爬行类动物的数据,咱们打开属性表,能够看到包含主键(OBJECTID),动物名称(NAME),科名称(FAMILY_NAME),目名称(ORDER_NAME),数量等级(NUMBER_CLASS),生境(ENVIRONMENT)等字段,其中生境这列字段的值是空的,须要填写,而这列值得内容和科名称这一列有相关性关系;通常来讲,同一科的动物,其生境相同,好比:“游蛇科”的生境都是“草树丛”,“石龙子科”的生境都是“石壁、草丛”;这样咱们就能够根据不一样的“科名称”来对“生境”这一字段进行分类赋值。工具
一、选择字段,打开字段计算器:sqlserver
首先打开图层的属性表,右击鼠标选中“生境(ENVIRONMENT)”字段,选择“字段计算器”选项并单击打开,以下图所示:测试
二、打开python代码块编辑器,编写赋值函数:spa
咱们须要勾选上图中的“显示代码块”前的勾选框,这时会显示出编写代码块的区域,咱们同时要在最上面选择Python脚本进行解析:咱们在代码块区域编写一个带返回值的函数,用来基于“科名称(FAMILY_NAME)”这一字段进行分类,这个函数索性就叫“填充(Fill)”吧,它具备一个形参f,咱们进行分类的条件是科名称的不一样,因此编写以下代码:server
def Fill(f):blog
if f == u"游蛇科":
return "草树丛"
elif f == u"石龙子科":
return "石壁、草丛"
而后在下面的填充值区域,也就是 ENVIRONMENT= 下面的文本框中调用这个函数,只需写出函数名Fill(),而后将光标移到括号中,在上面的字段列表中双击“FAMILY_NAME”这个字段就会显示出完整的函数,并传递实参,不全的内容以下:Fill( !NUMBER_CLASS! ) (注意:括号中选择的字段必定是基于分类的那个字段!)
完整的代码截图以下:
这时就获得了咱们的计算结果,以下图所示:
咱们还能够继续补充代码,一次性列举出所有分类条件,而后一次性执行进行所有分类赋值。
如何分类条件是空值,好比咱们要根据“科名称(FAMILY_NAME)”这一列中的 处的这些值统一对某列字段赋值,要如何编写代码呢?通过测试发现,凡是记录中为的这些地方,其值是None 而不是 Null, 因此赋值条件应该写成 if f == None:
注意:
一、python语法严格依赖缩进,在此代码边继快中,统一用英文状态两个字符缩进进行书写,不然报错。
二、当分类条件的字段中记录为中文的地方,须要在中文字符串前面加上U 来进行转码,不然会致使不能识别条件从而使要填充的字段计算结果永远是空值。
三、记录中为 的地方,若是想用这些地方的值做为分类条件,条件语句要写成 if f == None:
arcmap中添加python脚本_基于Python脚本的ArcMap字段计算器分类赋值相关推荐
- python产品缺陷_基于python从redmine-api中获取项目缺陷数据(1)
1.引言 本文主要内容是将如何利用 Python 对 Redmine缺陷进行缺陷数据获取操作.目前统计缺陷数据时基本是根据项目手动去redmine获取缺陷数据,至少要花费一个工作日去完成,目前的目标是 ...
- python 脚本_基于Python的ArcGIS脚本编程知识点总结
1. ArcGIS中的组件-ArcObjects Esri主要使用C++开发ArcGIS软件,在ArcGIS软件中,所有的组件或者对象被统称为ArcObjects. ArcObjects部分知识点如下 ...
- python嵌入式脚本_基于Python的嵌入式脚本研究
基于Python的嵌入式脚本研究 王国强;张贝克 [期刊名称]<计算机应用与软件> [年(卷),期]2010(027)003 [摘要]嵌入脚本语言到应用程序当中在用户自动化和个性化定制方面 ...
- python向mysql中添加数据标签_用python在MySQL中写入数据和添加数据
在笔者之前的博文中,已介绍了用python连接与mysql数据库的知识.包括如何安装python连接mysql的pymysql包,如何通过cusor语句将python与mysql连接起来,以及如何用p ...
- python中计算如何实现_基于python如何实现计算两组数据P值
我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性. 一.代码# TTest.py # -*- coding: utf-8 -*- ''' # C ...
- arcgis中python批处理_基于Python的ArcGIS空间数据格式批处理转换工具开发
基于 Python 的 ArcGIS 空间数据格式批处理转换工具开 发 焦 洋,邓 鑫,李胜才 [摘 要] 摘 要 ArcGIS 仅提供了单个文件的空间数据格式转换工具.本文首先 研究基于 Pytho ...
- python中如何取余_基于python 取余问题(%)详解
取余的公式: 余数=除数-被除数*商 python的的余数是按照整除(向下取整)得到的商来计算的. 取余问题主要分为 : 正数与正数,负数与负数,正数与负数 ,0 正数与正数 #大数/小数:因为得出的 ...
- python中pygame模块下载_基于python中pygame模块的Linux下安装过程(详解)
pyhthon中pygame模块怎么安装?pyhthon中pygame模块怎么安装?鄙人为初二一名学生,闲来无事 钻研起电这句话还是建议问一下你们代课老师吧,因为你们老师是这方面专家,诺儿那边的话肯定 ...
- 用python做炒股软件-同花顺有python接口_基于python的炒股软件
股票详细数据 怎么获得股市数据针对股票等金融数据的获取,python提供了一个非常实用的模块-tushare,自动完成了数据从采集.清洗到存储的全过程,可以极大减轻金融分析人员的工作量,下面我简单介绍 ...
最新文章
- CTE 中字符串拼接
- python字符串类型_python字符串类型介绍
- 厉害了,Servlet3的异步处理机制
- 刷新本地的DNS缓存数据
- spark 广播变量大数据_大数据处理 | Spark集群搭建及基本使用
- 用户登陆——数据库逻辑
- Web开发之一:Web UI技术综述
- 谷歌新旗舰Pixel 3让AI帮你接电话:你是谁?为什么来电?
- 在html中frame标签的作用,HTML框架标签frameset、frame、iframe、noframes
- access数据库拆分的用途_在Access中手动拆分数据库
- CorelDRAWX4的VBA插件开发(三)VBA的必用基础知识
- ipad文献管理软件_使用ipad看文献,有哪些好用的工具软件?
- KEIL5 C51软件安装详细图文教程
- C++ 详解快速排序代码
- 俩人同样写代码,我拿七千他咋五万八...
- 百度富文本编辑器引入问题
- 如何在VR全景中嵌入AI数字人功能?打造云端体验感
- 【数据库】SQL Server的使用教程
- C语言函数递归调用实验报告,C语言函数的递归和调用实例分析
- 【嵌入式系统基础第九周作业】---LED呼吸灯