ArcGIS 字段计算器 Python 坑
最近要处理个简单数据,一个字段中为文本类型,包含各种描述。要求是包含平方米的数值提取出来,变成数值,如果包含多个,则把各个值累加起来。
比如 字段值为 “非法占用100平方米” 处理后结果为 100
字段值为 “工棚3间” 处理结果为0
字段值为 “工棚3间,瓦屋2间,非法占用100平方米” 处理结果100
字段值为 “工棚100平方米,瓦屋100平方米” 处理结果为200
由于一直写.net,上述功能在.net中做起来并不麻烦。但是觉得应该是字段计算器写写就解决的问题,懒得在用.net搭。就尝试了一下ArcGIS中的Python字段计算器
四五年前学过一点python,虽然现在啥都不记得了
搜索了一些arcgis字段计算器的资料,大体瞄了一眼代码,就开始写。amazing Python
(1)python是用代码缩进表示C#中{}啊,字段计算器中的编辑页面就是个txt,啥功能也没有啊,自己一边写逻辑,一边改缩进。而且网上复制粘贴的代码,很容易缩进就乱掉了
(2)python中,定义函数名之后有个 “:”, if条件之后也有个 “:”,而且ArcMap的字段计算器不能调试
(3)神奇的 unicode decode error: 'ascii' codesc can't decode 0xe5 in position 异常,检索了半天资料,后来发现,是编码的问题。不知道什么原因,按错误描述,应该是ArcMap字段计算器读取的值是 ascii,而我要判断的值是 中文,就出了这个 错误,可我字段中的值明明是中文啊。该错误对新手很不友好啊
虽然上述功能没有完全实现,也不想实现了,下面记录一下这段神奇的代码
def fuxkPython(ss):
flag="平方米"
result=-1
tp=ss.encode('utf-8');
# tp =ss
id=tp.find(flag) if(id>=0):
jq=tp[0:id]
if jq.isdigit():
result= float(jq) return result
amazing
ArcGIS 字段计算器 Python 坑的更多相关文章
- ArcGis 字段计算器表达式(Field calculator expression).cal文件与标注表达式(label expression).lxp的实质及其编码方式、解析方法
ArcGis 字段计算器表达式可以保存为一个扩展名为.cal的文件,该文件的实质是一个文本文件,编码方式为 UTF-16-LE. 官方的说明是“ArcGIS 应用程序使用 UTF-16-LE 编码读写 ...
- arcgis字段计算器
arcgis字段计算器 一.VB脚本 1.取某字段前几位或者后几位 ) ) 2.合并字段,中间加符号 Dim a if [ZDDM2] ="" Then a= [ZDDM1] el ...
- ArcGIS字段计算器分割字段中的字符串
ArcGIS字段计算器分割字段中的字符串 实例:在一个字段中存有长宽高三个属性数据,以x分割.例如sss为字段名(字段属性为文本类型),数据格式为:100x200x300,利用字段计算器分别将三个数存 ...
- 解析ArcGis的字段计算器(三)——文本型字段计算,编号那些事儿
实际操作中我们一般会将编号字段定义为文本型,因为编号不是序号,序号是一个递增数值,而编号往往是一个数字串代码. 本篇无说明的均使用VBScript语句1.怎么编号?最简单的编号—>直接在编号字段 ...
- 解析ArcGis的字段计算器(一)——数值型数据计算,从“面积计算”开始
先来点儿背景知识铺垫: ArcMap的字段计算器提供了两种脚本语言的支持用以计算,两种脚本语言是VBScript与Python. 多数人选择使用前者,因为它的基本函数和Excel的函数貌似一样.注意我 ...
- 由ArcMap属性字段自增引出字段计算器使用Python的技巧
1.前言 前些日子有人问我ArcMap中要让某个字段的值实现自增有什么方法?我首先想到像SQL Server中对于数值型字段可以设置自增.所以我打开ArcCatalog查看发现只提供默认值 ...
- ArcMap中属性字段计算器(Field Calculator)的使用技巧
很多时候,我们在使用ArcGIS进行属性数据编辑时,需要批量修改某些字段值,这时候ArcGIS提供的属性字段计算器(Field Calculator)就是一把利器.下面我就Field C ...
- 字段计算器VBS
ArcGIS属性表中右键可调用字段计算器.写一些简单代码可操作属性表,有VBS和Python两种. 现在要求是:如果"地块编码"为空,则将"地块编号"赋给&qu ...
- 【ArcGIS遇上Python】ArcGIS Python批处理入门到精通实用教程目录
目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 Python语言是目前很火热的语言,极大的促进了人工智能发展.你知道在ArcGIS中也会有python的身影吗?事实上,在ArcG ...
随机推荐
- 复旦高等代数 I(16级)每周一题
每周一题的说明 一.本学期高代I的每周一题面向16级的同学,将定期更新(一般每周的周末公布下一周的题目); 二.欢迎16级的同学通过微信或书面方式提供解答图片或纸质文件给我,优秀的解答可以分享给大家: ...
- es6中class类的静态方法、实例方法、实例属性、(静态属性)
关于类有两个概念,1,类自身,:2,类的实例对象 总的来说:静态的是指向类自身,而不是指向实例对象,主要是归属不同,这是静态属性的核心. 难点1:静态方法的理解 class Foo { static ...
- chown与chmod的区别
chown 修改文件和文件夹的用户和用户组属性 1.要修改文件hh.c的所有者.修改为sakia的这个用户所有 chown sakia hh.c 这样就把hh.c的用户访问权限应用到sakia作为所有 ...
- ES 基本用法
转自:https://www.cnblogs.com/rodge-run/p/7760308.html ES的基本概念 1> 集群和节点 一个es集群是由一个或多和es节点组成的集合 每一个集群 ...
- centos7.6环境jenkins升级到tomcat8.0.53和jenkins2.168版本
Jenkins服务器:192.168.10.175数据备份服务器:192.168.10.164 jenkins服务器报错不能访问,插件无法加载就不能正常获取代码,重启尝试解决无果,于是采用 如下方案: ...
- 配置mongo.conf文件
配置mongo.conf文件,优化mongod.exe的启动 在d:/Develop/MongoDB目录下创建mongo.conf文件并写入: dbpath=d:\Develop\MongoDB\ ...
- packaged_task
/** @file packaged_task.cpp * @note * @brief * @author * @date 2019-8-15 * @note * @history * @warni ...
- 【curl】certificate is bad 问题解决
参考:https://blog.scottlowe.org/2018/08/20/troubleshooting-tls-certificates/ 我最近正在写一篇博客文章,内容涉及使用TLS证书进 ...
- [LeetCode] 765. Couples Holding Hands 情侣牵手
N couples sit in 2N seats arranged in a row and want to hold hands. We want to know the minimum numb ...
- 用js实现promise
/* 自定义promise 1. 执行MyPromise构造函数,要立即执行executor 2. promise实例对象,内部有三种状态 ...