在线客服
  • |
  • 400-821-8800
  • |
  • 手机西域
    手机西域下载二维码

    开发者:西域智慧供应链(上海)股份公司

    版本:4.6.8

    扫一扫,下载西域客户端
    手机采购 移动办公
    iPhone Android
  • |
  • 快速下单
  • |
  • 我的西域
  • arcgis字段计算器实例

    文/ 发布于2018-06-05 浏览次数:342

      用Python来写arcgis的字段计算器,根据行政区划来给字段赋值,Python要注意格式的问题,

      1.Python与其他语言最大的区别就是,Python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

      2.Python中默认的编码格式是 ASCII格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。

      解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 就行了。但是在arcgis里的脚本编辑域编码格式是不可更改的,因此这句话没效果。需要在字符串前面加上u才行。

      3.Python的字符串必须用双引号扩起。

      4.Python的变量必须用!!扩起。

      不多说了,不上代码的技术博主都不是好大夫。

      示例,根据北京市的行政区划名称来确定行政区划编码,ABCD为参数名,可以自行更换。

      代码块:

      def Reclass(ABCD):

      ? if (ABCD==u"东城区"):

      ? return 110101

      ? elif (ABCD==u"西城区"):

      ? return 110102

      ? elif (ABCD==u"朝阳区"):

      ? return 110105

      ? elif (ABCD==u"丰台区"):

      ? return 110106

      ? elif (ABCD==u"石景山区"):

      ? return 110107

      ? elif (ABCD==u"海淀区"):

      ? return 110108

      ? elif (ABCD==u"门头沟区"):

      ? return 110109

      ? elif (ABCD==u"房山区"):

      ? return 110111

      ? elif (ABCD==u"通州区"):

      ? return 110112

      ? elif (ABCD==u"顺义区"):

      ? return 110113

      ? elif (ABCD==u"昌平区"):

      ? return 110114

      ? elif (ABCD==u"大兴区"):

      ? return 110115

      ? elif (ABCD==u"怀柔区"):

      ? return 110116

      ? elif (ABCD==u"平谷区"):

      ? return 110117

      ? elif (ABCD==u"密云区"):

      ? return 110228

      ? elif (ABCD==u"密云县"):

      ? return 110228

      ? elif (ABCD==u"延庆区"):

      ? return 110229

      ? elif (ABCD==u"延庆县"):

      ? return 110229

      ? elif?(ABCD==u"亦庄经济开发区"):

      ? return?110230

      ? else :

      ? return?110000

      上面的代码格式都是严格控制了,有类似需要的可以直接复制,改一改就能用了。

      这里要说明两点:1.else是必不可少的。2.别忘了加冒号。

      在下面你要赋值的字段处调用上面定义的函数,然后传参就可以了。

    免责声明:文章仅供学习和交流,如涉及作品版权问题需要我方删除,请联系我们,我们会在第一时间进行处理。
    相关标签:
    相关资讯
    沪公网安备 31011502008645号 | 沪ICP备09003861号 | 增值电信业务经营许可证:合字B2-20200044 | 第二类医疗器械经营备案编号:沪浦药监械经营备20200151号 | 医疗器械经营许可证编号:沪浦药监械经营许20200092号 | 互联网药品信息服务资格证书编号:(沪)-经营性-2020-0028 | 危险化学品经营许可证:沪(浦)应急管危经许[2022]204062(DYS)