初始化
This commit is contained in:
54
tools/config/arcgis_field_cal_code.py
Normal file
54
tools/config/arcgis_field_cal_code.py
Normal file
@@ -0,0 +1,54 @@
|
||||
'''
|
||||
ArcGis 字段计算器 模块代码
|
||||
'''
|
||||
codeblock_dltb_yjdl = """
|
||||
def calculate_yjdl(dlbm):
|
||||
if str(dlbm).startswith('01'):
|
||||
return '耕地'
|
||||
elif str(dlbm).startswith('02'):
|
||||
return '园地'
|
||||
elif str(dlbm).startswith('03'):
|
||||
return '林地'
|
||||
elif str(dlbm).startswith('04'):
|
||||
return '草地'
|
||||
else:
|
||||
return '其他'"""
|
||||
|
||||
codeblock_dltb_ejdl = """
|
||||
def calculate_ejdl(dlbm,dlmc):
|
||||
if str(dlbm).startswith('03'):
|
||||
return '林地'
|
||||
elif str(dlbm).startswith('04'):
|
||||
return '草地'
|
||||
elif str(dlbm).startswith('12'):
|
||||
return '其他'
|
||||
elif str(dlbm).startswith('0101'):
|
||||
return '水田'
|
||||
elif str(dlbm).startswith('0102'):
|
||||
return '水浇地'
|
||||
elif str(dlbm).startswith('0103'):
|
||||
return '旱地'
|
||||
elif str(dlbm).startswith('0201'):
|
||||
return '果园'
|
||||
elif str(dlbm).startswith('0202'):
|
||||
return '茶园'
|
||||
elif str(dlbm).startswith('0203'):
|
||||
return '橡胶园'
|
||||
elif str(dlbm).startswith('0204'):
|
||||
return '其他园地'
|
||||
else:
|
||||
return dlmc"""
|
||||
|
||||
codeblock_cal_shfj = """
|
||||
def calculate_shfj(girdcode):
|
||||
if int(girdcode) == 1:
|
||||
return "重度酸化"
|
||||
elif int(girdcode) == 2:
|
||||
return "中度酸化"
|
||||
elif int(girdcode) == 3:
|
||||
return "轻度酸化"
|
||||
elif int(girdcode) == 4:
|
||||
return "弱酸化"
|
||||
else: # dPH
|
||||
return "其他"
|
||||
"""
|
||||
49
tools/config/common_config.py
Normal file
49
tools/config/common_config.py
Normal file
@@ -0,0 +1,49 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
公共配置
|
||||
- 地区分组
|
||||
- 土壤性质字典
|
||||
- 土壤性质分级字典
|
||||
- 土壤性质分级标准字典
|
||||
'''
|
||||
|
||||
# 地区分组
|
||||
guangxi_region = ['广西壮族自治区', '北海市', '海城区', '银海区', '铁山港区', '苍梧县', '容县', '靖西市', '兴宁区', '邕宁区', '武鸣区', '天峨县', '平南县', '港南区', '来宾市']
|
||||
yunnan_region = ['云南省', '西畴县', '马关县', '澜沧县', '双江县', '永德县', '寻甸县', '罗平县', '丘北县', '永仁县', '南华县', '双柏县', '武定县', '祥云县', '楚雄彝族自治州']
|
||||
|
||||
# 土壤性质字典
|
||||
soil_prop_dict = {
|
||||
"AB": "有效硼",
|
||||
"ACU": "有效铜",
|
||||
"AMN": "有效锰",
|
||||
"AMO": "有效钼",
|
||||
"AS1": "有效硫",
|
||||
"AZN": "有效锌",
|
||||
"CEC": "阳离子交换量",
|
||||
"ECA": "交换性钙",
|
||||
"EMG": "交换性镁",
|
||||
"TSE": "全硒",
|
||||
"TN": "全氮",
|
||||
"TP": "全磷",
|
||||
"TK": "全钾",
|
||||
"AFE": "有效铁",
|
||||
"AK": "速效钾",
|
||||
"AP": "有效磷",
|
||||
"TRRZ": "土壤容重",
|
||||
"OM": "有机质",
|
||||
"FL": "粉粒含量",
|
||||
"NL": "黏粒含量",
|
||||
"SL": "砂粒含量",
|
||||
"PH": "土壤 pH",
|
||||
"YXTCHD": "有效土层厚度",
|
||||
"GZCHD": "耕作层厚度",
|
||||
"TRZD": "土壤质地",
|
||||
"TRZD12": "土壤质地",
|
||||
"LSFD": "砾石丰度",
|
||||
"三普PH": "三普PH",
|
||||
"二普PH": "二普PH",
|
||||
"测土PH": "测土PH",
|
||||
"二普-三普": "二普-三普",
|
||||
"测土-三普": "测土-三普",
|
||||
"二普-测土": "二普-测土"
|
||||
}
|
||||
125
tools/config/custom_sort.py
Normal file
125
tools/config/custom_sort.py
Normal file
@@ -0,0 +1,125 @@
|
||||
'''
|
||||
自定义排序:yl_order-亚类排序,ts_order-土属排序
|
||||
'''
|
||||
|
||||
yl_order = [
|
||||
"典型砖红壤",
|
||||
"典型赤红壤",
|
||||
"典型红壤",
|
||||
"黄红壤",
|
||||
"红壤性土",
|
||||
"典型黄壤",
|
||||
"漂洗黄壤",
|
||||
"表潜黄壤",
|
||||
"黄壤性土",
|
||||
"暗黄棕壤",
|
||||
"典型新积土",
|
||||
"滨海风沙土",
|
||||
"红色石灰土",
|
||||
"黑色石灰土",
|
||||
"棕色石灰土",
|
||||
"黄色石灰土",
|
||||
"酸性紫色土",
|
||||
"中性紫色土",
|
||||
"石灰性紫色土",
|
||||
"硅质岩粗骨土",
|
||||
"典型潮土",
|
||||
"灰潮土",
|
||||
"山地灌丛草甸土",
|
||||
"泥炭沼泽土",
|
||||
"盐化沼泽土",
|
||||
"滨海潮滩盐土",
|
||||
"含盐酸性硫酸盐土",
|
||||
"潴育水稻土",
|
||||
"淹育水稻土",
|
||||
"渗育水稻土",
|
||||
"潜育水稻土",
|
||||
"漂洗水稻土",
|
||||
"咸酸水稻土",
|
||||
]
|
||||
ts_order = [
|
||||
"涂砂质砖红壤",
|
||||
"暗泥质砖红壤",
|
||||
"麻砂质砖红壤",
|
||||
"砂泥质砖红壤",
|
||||
"红泥质赤红壤",
|
||||
"暗泥质赤红壤",
|
||||
"麻砂质赤红壤",
|
||||
"硅质赤红壤",
|
||||
"砂泥质赤红壤",
|
||||
"泥质赤红壤",
|
||||
"灰泥质赤红壤",
|
||||
"红泥质红壤",
|
||||
"麻砂质红壤",
|
||||
"砂泥质红壤",
|
||||
"泥质红壤",
|
||||
"麻砂质黄红壤",
|
||||
"硅质黄红壤",
|
||||
"砂泥质黄红壤",
|
||||
"灰泥质黄红壤",
|
||||
"泥砂质红壤性土",
|
||||
"麻砂质黄壤",
|
||||
"砂泥质黄壤",
|
||||
"麻砂质漂洗黄壤",
|
||||
"砂泥质漂洗黄壤",
|
||||
"砂泥质表潜黄壤",
|
||||
"砂泥质黄壤性土",
|
||||
"灰泥质黄壤性土",
|
||||
"麻砂质暗黄棕壤",
|
||||
"砂泥质暗黄棕壤",
|
||||
"山洪土",
|
||||
"滨海固定风沙土",
|
||||
"红色石灰土",
|
||||
"黑色石灰土",
|
||||
"棕色石灰土",
|
||||
"黄色石灰土",
|
||||
"酸紫砂土",
|
||||
"酸紫壤土",
|
||||
"酸紫黏土",
|
||||
"紫泥土",
|
||||
"灰紫壤土",
|
||||
"灰紫泥土",
|
||||
"白粉土",
|
||||
"潮壤土",
|
||||
"石灰性灰潮壤土",
|
||||
"灰潮砂土",
|
||||
"灰潮壤土",
|
||||
"山地灌丛草甸砂土",
|
||||
"山地灌丛草甸壤土",
|
||||
"泥炭沼泽土",
|
||||
"盐化沼泽土",
|
||||
"涂砂盐土",
|
||||
"涂泥盐土",
|
||||
"含盐酸性硫酸盐土",
|
||||
"潮泥田",
|
||||
"潮泥砂田",
|
||||
"涂泥田",
|
||||
"麻砂泥田",
|
||||
"砂泥田",
|
||||
"鳝泥田",
|
||||
"灰泥田",
|
||||
"紫泥田",
|
||||
"红泥田",
|
||||
"白粉泥田",
|
||||
"暗泥田",
|
||||
"浅潮泥田",
|
||||
"浅潮泥砂田",
|
||||
"浅暗泥田",
|
||||
"浅麻砂泥田",
|
||||
"浅砂泥田",
|
||||
"浅鳝泥田",
|
||||
"浅灰泥田",
|
||||
"浅紫泥田",
|
||||
"浅白粉泥田",
|
||||
"浅红泥田",
|
||||
"渗潮泥田",
|
||||
"渗砂泥田",
|
||||
"渗紫泥田",
|
||||
"青潮泥田",
|
||||
"青灰泥田",
|
||||
"青红泥田",
|
||||
"烂泥田",
|
||||
"泥炭土田",
|
||||
"漂红泥田",
|
||||
"咸酸田",
|
||||
]
|
||||
141
tools/config/pandas_field_cal_func.py
Normal file
141
tools/config/pandas_field_cal_func.py
Normal file
@@ -0,0 +1,141 @@
|
||||
'''
|
||||
用于pandas dataframe中字段计算
|
||||
'''
|
||||
# 计算一级土地利用类型
|
||||
def calculate_yjdl(dlbm):
|
||||
if str(dlbm).startswith('01'):
|
||||
return '耕地'
|
||||
elif str(dlbm).startswith('02'):
|
||||
return '园地'
|
||||
elif str(dlbm).startswith('03'):
|
||||
return '林地'
|
||||
elif str(dlbm).startswith('04'):
|
||||
return '草地'
|
||||
else:
|
||||
return '其他'
|
||||
|
||||
# 计算二级土地利用类型
|
||||
def calculate_ejdl(dlbm):
|
||||
dlbm_str = str(dlbm).strip()
|
||||
|
||||
if dlbm_str.startswith('0101'):
|
||||
return '水田'
|
||||
elif dlbm_str.startswith('0102'):
|
||||
return '水浇地'
|
||||
elif dlbm_str.startswith('0103'):
|
||||
return '旱地'
|
||||
elif dlbm_str.startswith('0201'):
|
||||
return '果园'
|
||||
elif dlbm_str.startswith('0202'):
|
||||
return '茶园'
|
||||
elif dlbm_str.startswith('0203'):
|
||||
return '橡胶园'
|
||||
elif dlbm_str.startswith('0204'):
|
||||
return '其他园地'
|
||||
elif dlbm_str.startswith('03'):
|
||||
return '林地'
|
||||
elif dlbm_str.startswith('04'):
|
||||
return '草地'
|
||||
elif dlbm_str.startswith('12'):
|
||||
return '其他'
|
||||
else:
|
||||
return '未分类'
|
||||
|
||||
# 计算母岩母质
|
||||
def calculate_muyan(soil_name):
|
||||
soil_name = str(soil_name) # 确保为字符串
|
||||
# 将"紫"放在最前面
|
||||
if "紫" in soil_name:
|
||||
return "紫色砂页岩"
|
||||
elif "红砂" in soil_name:
|
||||
return "第三纪红砂岩"
|
||||
elif "麻砂" in soil_name:
|
||||
return "花岗岩或花岗片麻岩"
|
||||
elif "涂砂" in soil_name:
|
||||
return "砂质浅海沉积物"
|
||||
elif "暗泥" in soil_name:
|
||||
return "玄武岩、火山灰(渣)"
|
||||
elif "砂泥" in soil_name:
|
||||
return "砂页岩、砂岩、砂砾岩"
|
||||
elif "硅" in soil_name or "白粉泥" in soil_name:
|
||||
return "石英砂岩、石英岩、硅质岩"
|
||||
elif "灰泥" in soil_name or "石灰" in soil_name:
|
||||
return "石灰岩、白云岩、大理岩"
|
||||
elif "磷灰" in soil_name:
|
||||
return "磷灰岩"
|
||||
elif "红泥" in soil_name:
|
||||
return "第四纪红色黏土"
|
||||
elif "红土" in soil_name:
|
||||
return "第三纪红色黏土"
|
||||
elif "风砂" in soil_name:
|
||||
return "风积砂"
|
||||
elif "潮泥砂" in soil_name or "泥砂" in soil_name or "新积土" in soil_name:
|
||||
return "洪积物"
|
||||
elif "淡涂泥" in soil_name:
|
||||
return "河口相沉积物"
|
||||
elif "涂泥" in soil_name:
|
||||
return "海相沉积物"
|
||||
elif "黄泥" in soil_name:
|
||||
return "古老洪冲积物"
|
||||
|
||||
# 将容易误匹配的放在最后
|
||||
elif "潮泥" in soil_name or "潮砂" in soil_name or "潮土" in soil_name:
|
||||
return "冲积物"
|
||||
elif "泥" in soil_name or "鳝泥" in soil_name:
|
||||
return "片岩、板岩、千枚岩、页岩、泥岩"
|
||||
else:
|
||||
return "其他" # 或者返回空值 ""
|
||||
|
||||
|
||||
def calculate_muzhi(value):
|
||||
if value in ["第三纪红砂岩", "花岗岩或花岗片麻岩", "玄武岩、火山灰(渣)",
|
||||
"砂页岩、砂岩、砂砾岩", "片岩、板岩、千枚岩、页岩、泥岩", "石英砂岩、石英岩、硅质岩",
|
||||
"石灰岩、白云岩、大理岩", "磷灰岩", "紫色砂页岩", "第三纪红色黏土", "风积砂"]:
|
||||
return "残坡积物"
|
||||
elif value in ["冲积物", "第四纪红色黏土", "洪积物", "海相沉积物", "古老洪冲积物", "河口相沉积物", "砂质浅海沉积物"]:
|
||||
return "第四纪松散沉积物"
|
||||
else:
|
||||
return "未知"
|
||||
|
||||
"""
|
||||
"粉(砂)质黏壤土": "1",
|
||||
"粉(砂)质黏土": "2",
|
||||
"粉(砂)质壤土": "3",
|
||||
"黏壤土": "4",
|
||||
"黏土": "5",
|
||||
"壤土": "6",
|
||||
"壤质黏土": "7",
|
||||
"砂土及壤质砂土": "8",
|
||||
"砂质黏壤土": "9",
|
||||
"砂质黏土": "10",
|
||||
"砂质壤土": "11",
|
||||
"重黏土": "12"
|
||||
"""
|
||||
|
||||
def cal_trzd(value):
|
||||
if value == "砂土及壤质砂土":
|
||||
return 1
|
||||
elif value == "砂质壤土":
|
||||
return 2
|
||||
elif value == "壤土":
|
||||
return 3
|
||||
elif value == "粉砂质壤土":
|
||||
return 4
|
||||
elif value == "砂质黏壤土":
|
||||
return 5
|
||||
elif value == "黏壤土":
|
||||
return 6
|
||||
elif value == "粉砂质黏壤土":
|
||||
return 7
|
||||
elif value == "砂质黏土":
|
||||
return 8
|
||||
elif value == "壤质黏土":
|
||||
return 9
|
||||
elif value == "粉砂质黏土":
|
||||
return 10
|
||||
elif value == "黏土":
|
||||
return 11
|
||||
elif value == "重黏土":
|
||||
return 12
|
||||
else:
|
||||
return 0
|
||||
Reference in New Issue
Block a user