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 ...
随机推荐
- HDU 1542.Atlantis-线段树求矩形面积并(离散化、扫描线/线段树)-贴模板
好久没写过博客了,这学期不是很有热情去写博客,写过的题也懒得写题解.现在来水一水博客,写一下若干年前的题目的题解. Atlantis Time Limit: 2000/1000 MS (Java/Ot ...
- React_03_ECMAScript6
1.ES6解构赋值 1.1.解构赋值概述 解构赋值是对赋值运算符的扩展. 它是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值.在代码书写上简洁且易读,语义更加清晰明了:也方便了复杂对象中数 ...
- TreeMap用法总结
TreeMap用法总结 public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap&l ...
- 如何在 Debian 9 上安装和使用 Docker
Docker 是一个容器化平台,允许您快速构建,测试和部署应用程序,作为便携式,自给自足的容器,几乎可以在任何地方运行. Docker 是容器技术的事实上的标准,它是 DevOps 工程师及其持续集成 ...
- html5 css3 背景视频循环播放代码
<div style ="position: absolute; z-index: -1; top: 0px; left: 0px; bottom: 0px; right: 0px; ...
- uniapp - 键盘弹起背景图片不会被挤压
[释义] uni.getSystemInfoSync()获取屏幕可用高度windowScreen做为背景图高度即可(非虚拟DOM也可以使用本思路). [源码] <template> < ...
- python 玩爬虫安装了一大堆第三方库
之前就听说过爬虫,感觉很复杂的样子,但是看到python代码很简短.由于本机已经安装了python2.7 所以就拿来py 文件跑一下想看看效果. 结果各种代码错误.然后根据每个错误去下载对应的依赖项. ...
- centos安装redis 5.0版本的集群
我在本地VM-Centos里安装5.0.5时安装遇到了些问题,参考了Blog:https://www.cnblogs.com/shawhe/p/9548620.html 顺利安装完成. 安装redis ...
- odoo开发笔记--form视图按钮样例
如图: 对应后台views视图,class可选内容值: class="oe_highlight" class="btn-xs" class="btn- ...
- 使用协方差矩阵的特征向量PCA来处理数据降维
取2维特征,方便图形展示 import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.data ...