問題描述:
現因工作的需要,對照2017最新版:《土地利用現狀分類》(GBT 21010-2017)
,需根據DLMC對DLBM進行批量修改,如旱地是0103,其他林地是0307等,共計19種用地類型。
問題解決:
由于python中中文編碼的影響,字段計算器老是出現問題,后來終于找到了解決辦法:
在中文編碼后加.decode(‘utf-8’)進行編碼轉換。
完整代碼為:
def fun(a):if a=='水澆地'.decode('utf-8'):return '0102'elif a=='旱地'.decode('utf-8'):return '0103'elif a=='有林地'.decode('utf-8'):return '0111'elif a=='灌木林地'.decode('utf-8'):return '0305'elif a=='其他林地'.decode('utf-8'):return '0307'elif a=='人工牧草地'.decode('utf-8'):return '0403'elif a=='其他草地'.decode('utf-8'):return '0404'elif a=='鐵路用地'.decode('utf-8'):return '1001'elif a=='公路用地'.decode('utf-8'):return '1003'elif a=='水庫水面'.decode('utf-8'):return '1103'elif a=='坑塘水面'.decode('utf-8'):return '1104'elif a=='內陸灘涂'.decode('utf-8'):return '1106'elif a=='水工建筑用地'.decode('utf-8'):return '1109'elif a=='設施農用地'.decode('utf-8'):return '1202'elif a=='城市'.decode('utf-8'):return '201'elif a=='建制鎮'.decode('utf-8'):return '202'elif a=='村莊'.decode('utf-8'):return '203'elif a=='采礦用地'.decode('utf-8'):return '0602'elif a=='風景名勝及特殊用地'.decode('utf-8'):return '0906'else:return '0000'
使用以下方法,不盡如人意。
# -*- coding: utf-8 -*-