初始化
This commit is contained in:
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