因为出差等等缘由,又没能很好的坚持记录博客,今天回来了,继续记录所学吧。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字段计算器分类赋值相关推荐

  1. python产品缺陷_基于python从redmine-api中获取项目缺陷数据(1)

    1.引言 本文主要内容是将如何利用 Python 对 Redmine缺陷进行缺陷数据获取操作.目前统计缺陷数据时基本是根据项目手动去redmine获取缺陷数据,至少要花费一个工作日去完成,目前的目标是 ...

  2. python 脚本_基于Python的ArcGIS脚本编程知识点总结

    1. ArcGIS中的组件-ArcObjects Esri主要使用C++开发ArcGIS软件,在ArcGIS软件中,所有的组件或者对象被统称为ArcObjects. ArcObjects部分知识点如下 ...

  3. python嵌入式脚本_基于Python的嵌入式脚本研究

    基于Python的嵌入式脚本研究 王国强;张贝克 [期刊名称]<计算机应用与软件> [年(卷),期]2010(027)003 [摘要]嵌入脚本语言到应用程序当中在用户自动化和个性化定制方面 ...

  4. python向mysql中添加数据标签_用python在MySQL中写入数据和添加数据

    在笔者之前的博文中,已介绍了用python连接与mysql数据库的知识.包括如何安装python连接mysql的pymysql包,如何通过cusor语句将python与mysql连接起来,以及如何用p ...

  5. python中计算如何实现_基于python如何实现计算两组数据P值

    我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性. 一.代码# TTest.py # -*- coding: utf-8 -*- ''' # C ...

  6. arcgis中python批处理_基于Python的ArcGIS空间数据格式批处理转换工具开发

    基于 Python 的 ArcGIS 空间数据格式批处理转换工具开 发 焦 洋,邓 鑫,李胜才 [摘 要] 摘 要 ArcGIS 仅提供了单个文件的空间数据格式转换工具.本文首先 研究基于 Pytho ...

  7. python中如何取余_基于python 取余问题(%)详解

    取余的公式: 余数=除数-被除数*商 python的的余数是按照整除(向下取整)得到的商来计算的. 取余问题主要分为 : 正数与正数,负数与负数,正数与负数 ,0 正数与正数 #大数/小数:因为得出的 ...

  8. python中pygame模块下载_基于python中pygame模块的Linux下安装过程(详解)

    pyhthon中pygame模块怎么安装?pyhthon中pygame模块怎么安装?鄙人为初二一名学生,闲来无事 钻研起电这句话还是建议问一下你们代课老师吧,因为你们老师是这方面专家,诺儿那边的话肯定 ...

  9. 用python做炒股软件-同花顺有python接口_基于python的炒股软件

    股票详细数据 怎么获得股市数据针对股票等金融数据的获取,python提供了一个非常实用的模块-tushare,自动完成了数据从采集.清洗到存储的全过程,可以极大减轻金融分析人员的工作量,下面我简单介绍 ...

最新文章

  1. CTE 中字符串拼接
  2. python字符串类型_python字符串类型介绍
  3. 厉害了,Servlet3的异步处理机制
  4. 刷新本地的DNS缓存数据
  5. spark 广播变量大数据_大数据处理 | Spark集群搭建及基本使用
  6. 用户登陆——数据库逻辑
  7. Web开发之一:Web UI技术综述
  8. 谷歌新旗舰Pixel 3让AI帮你接电话:你是谁?为什么来电?
  9. 在html中frame标签的作用,HTML框架标签frameset、frame、iframe、noframes
  10. access数据库拆分的用途_在Access中手动拆分数据库
  11. CorelDRAWX4的VBA插件开发(三)VBA的必用基础知识
  12. ipad文献管理软件_使用ipad看文献,有哪些好用的工具软件?
  13. KEIL5 C51软件安装详细图文教程
  14. C++ 详解快速排序代码
  15. 俩人同样写代码,我拿七千他咋五万八...
  16. 百度富文本编辑器引入问题
  17. 如何在VR全景中嵌入AI数字人功能?打造云端体验感
  18. 【数据库】SQL Server的使用教程
  19. C语言函数递归调用实验报告,C语言函数的递归和调用实例分析
  20. 【嵌入式系统基础第九周作业】---LED呼吸灯

热门文章

  1. 如果可以,我们一起留在竹山。
  2. CYQ.Data 轻量数据层之路
  3. 浅谈SQL中存储过程和自定义函数的区
  4. 床位的摆放有五大禁忌
  5. 谈谈软件工程设计的艺术
  6. CString Management (关于CString的所有操作)
  7. 程序猿的崛起,一篇文章看懂编程语言
  8. 【日常踩坑】Android机微信webview中页面跳转的问题
  9. mysql dp.cal 显示汉子_计算1到N中各个数字出现的次数 --数位DP
  10. vue打包放到Java项目里_如何把vuejs打包出来的文件整合到springboot里