1.适配新的工况信息

This commit is contained in:
whm
2026-02-06 18:16:44 +08:00
parent f7e77093df
commit fdf07e0dab
2 changed files with 145 additions and 83 deletions

View File

@@ -14,9 +14,9 @@ class OperatingModePredictor:
def __init__(self):
"""初始化类,加载内置的工况配置、分组规则和切换触发规则"""
# 基础工况配置(键:工况名称,值:基础监测周期参考
# 基础工况配置(更新为最新的工况列表重复key保留后面的值
self.base_periods = self._load_base_periods()
# 工况分组(将同义不同格式的工况归类,共用切换规则
# 工况分组(同步更新分组规则,匹配最新工况名称
self.condition_group = self._load_condition_group()
# 工况切换触发规则分组ID触发天数+目标工况候选)
self.group_transition_rules = self._load_group_transition_rules()
@@ -24,40 +24,45 @@ class OperatingModePredictor:
self.winter_break_labels = self._load_winter_break_labels()
def _load_base_periods(self):
"""加载基础工况配置(私有方法,内部使用"""
"""加载基础工况配置(更新为最新工况列表重复key自动保留后面的值"""
return {
"路基或预压土填筑,连续填筑":1,
"路基或预压土填筑,两次填筑间隔时间较长":7,
"预压土或路基填筑完成第1~3个月":7,
"预压土或路基填筑完成第4~6个月":14,
"仰拱底板施工完成后第1个月": 7,
"预压土或路基填筑完成6个月以后":30,
"仰拱底板施工完成后第2至3个月": 14,
"仰拱底板施工完成后3个月以后": 30,
"仰拱(底板)施工完成后第1个月": 7,
"仰拱(底板)施工完成后第2至3个月": 14,
"仰拱(底板)施工完成后3个月以后": 30,
"无砟轨道铺设后第1至3个月": 30,
"无砟轨道铺设后4至12个月": 90,
"无砟轨道铺设后12个月以后": 180,
"仰拱(底板)施工完成后第1个月": 7, # 重复key保留此值
"仰拱(底板)施工完成后第2至3个月": 14, # 重复key保留此值
"仰拱(底板)施工完成后3个月以后": 30, # 重复key保留此值
"无砟轨道铺设后第1至3个月": 30, # 重复key保留此值
"无砟轨道铺设后4至12个月": 90, # 重复key保留此值
"无砟轨道铺设后12个月以后": 180, # 重复key保留此值
"墩台施工到一定高度": 30,
"墩台混凝土施工": 30,
"预制梁桥,架梁前": 30,
"预制梁桥,预制梁架设前": 1,
"预制梁桥,架梁前": 30, # 重复key保留此值
"预制梁桥,预制梁架设前": 1, # 重复key保留此值
"预制梁桥,预制梁架设后": 7,
"桥位施工桥梁,制梁前": 30,
"桥位施工桥梁,上部结构施工中": 1,
"架桥机(运梁车)通过": 7,
"架桥机(运梁车)通过": 2, # 重复key保留此值原7→2
"桥梁主体工程完工后,第1至3个月": 7,
"桥梁主体工程完工后第4至6个月": 14,
"桥梁主体工程完工后6个月以后": 30,
"桥梁主体工程完工后第4至6个月": 14, # 重复key保留此值
"桥梁主体工程完工后,6个月以后": 30, # 重复key保留此值
"轨道铺设期间,前": 30,
"轨道铺设期间,后": 14,
"轨道铺设完成后第1个月": 14,
"轨道铺设完成后2至3个月": 30,
"轨道铺设完成后4至12个月": 90,
"轨道铺设完成后12个月以后": 180,
"轨道铺设完成后第1个月": 14, # 重复key保留此值
"轨道铺设完成后2至3个月": 30, # 重复key保留此值
"轨道铺设完成后4至12个月": 90, # 重复key保留此值
"轨道铺设完成后12个月以后": 180, # 重复key保留此值
"铺路或堆载,一般情况": 1,
"填筑或堆载,一般情况": 1,
"铺路或堆载,沉降量突变情况": 1,
"填筑或堆载,两次填筑间隔时间较长情况": 3,
"填筑或堆载,两次填筑间隔时间较长情况":3,
"铺路或堆载,两次铺路间隔时间较长情况": 3,
"堆载预压或路基填筑完成第1至3个月": 7,
"堆载预压或路基填筑完成第1至3个月":7,
"堆载预压或路基填筑完成第4至6个月": 14,
"堆载预压或路基填筑完成6个月以后": 30,
"架桥机(运梁车) 首次通过前": 1,
@@ -66,62 +71,116 @@ class OperatingModePredictor:
"轨道板(道床)铺设后第1个月": 14,
"轨道板(道床)铺设后第2至3个月": 30,
"轨道板(道床)铺设后3个月以后": 90,
"冬休": 0 # 仅保留冬休
"架桥机(运梁车)首次通过前": 1,
"架桥机(运梁车)首次通过后前3天": 1,
"架桥机(运梁车)首次通过后": 7,
"轨道板铺设前": 14, # 新增工况
"轨道板(道床)铺设后第1至3个月": 14, # 新增工况
"轨道板(道床)铺设后第4至6个月": 30, # 新增工况
"轨道板(道床)铺设后6个月以后": 90, # 新增工况
"站场填方路基段填筑完成至静态验收": 14, # 新增工况
"桥墩(台)地面处拆模后": 30, # 新增工况
"敦身混凝土施工": 30, # 新增工况
"预制梁桥预制梁架设后": 7, # 新增工况
"现浇梁,浇筑前": 30, # 新增工况
"现浇梁上部结构施工中": 1, # 新增工况
"侨梁主体工程完工后6个月以后": 30, # 新增工况(注意错别字)
"轨道铺设,前": 30, # 新增工况
"轨道铺设,后": 14, # 新增工况
"仰拱(底板)施工完成后第2至3个月": 14, # 新增工况(标点位置异常)
"特殊地段隧道施工完成后至静态验收": 14, # 新增工况
"冬休": 0 # 保留冬休工况
}
def _load_condition_group(self):
"""加载工况分组规则(私有方法,内部使用"""
"""加载工况分组规则(同步更新,匹配最新工况名称"""
condition_group = {
# 仰拱相关
"仰拱底板施工完成后第1个月": "YG_DIBAN_1",
"仰拱(底板)施工完成后第1个月": "YG_DIBAN_1",
"仰拱底板施工完成后第2至3个月": "YG_DIBAN_2_3",
"仰拱(底板)施工完成后第2至3个月": "YG_DIBAN_2_3",
"仰拱底板施工完成后3个月以后": "YG_DIBAN_AFTER_3",
"仰拱(底板)施工完成后3个月以后": "YG_DIBAN_AFTER_3",
"仰拱(底板)施工完成后第2至3个月": "YG_DIBAN_2_3", # 新增异常格式工况分组
# 架桥机相关
"架桥机(运梁车) 首次通过前": "JQJ_FIRST_BEFORE",
"架桥机(运梁车)首次通过前": "JQJ_FIRST_BEFORE", # 新增无空格版本
"架桥机(运梁车) 首次通过后前3天": "JQJ_FIRST_AFTER_3D",
"架桥机(运梁车)首次通过后前3天": "JQJ_FIRST_AFTER_3D", # 新增无空格版本
"架桥机(运梁车) 首次通过后": "JQJ_FIRST_AFTER",
"架桥机(运梁车)首次通过后": "JQJ_FIRST_AFTER", # 新增无空格版本
"架桥机(运梁车)通过": "STATIC",
# 堆载预压/路基填筑相关
"堆载预压或路基填筑完成第1至3个月": "DZYY_1_3",
"堆载预压或路基填筑完成第4至6个月": "DZYY_4_6",
"堆载预压或路基填筑完成6个月以后": "DZYY_AFTER_6",
"路基或预压土填筑,连续填筑": "STATIC",
"路基或预压土填筑,两次填筑间隔时间较长": "STATIC",
"预压土或路基填筑完成第1~3个月": "DZYY_1_3",
"预压土或路基填筑完成第4~6个月": "DZYY_4_6",
"预压土或路基填筑完成6个月以后": "DZYY_AFTER_6",
# 轨道板相关
"轨道板(道床)铺设后第1个月": "GDB_1",
"轨道板(道床)铺设后第2至3个月": "GDB_2_3",
"轨道板(道床)铺设后3个月以后": "GDB_AFTER_3",
"轨道板铺设前": "STATIC",
"轨道板(道床)铺设后第1至3个月": "GDB_1",
"轨道板(道床)铺设后第4至6个月": "GDB_2_3",
"轨道板(道床)铺设后6个月以后": "GDB_AFTER_3",
# 预制梁桥相关
"预制梁桥,架梁前": "STATIC",
"预制梁桥,预制梁架设前": "YZLQ_BEFORE_JS",
"预制梁桥,预制梁架设后": "YZLQ_AFTER_JS",
"预制梁桥预制梁架设后": "YZLQ_AFTER_JS", # 新增工况分组
# 桥梁主体相关
"桥梁主体工程完工后,第1至3个月": "QL_ZHUTI_1_3",
"桥梁主体工程完工后第4至6个月": "QL_ZHUTI_4_6",
"桥梁主体工程完工后,6个月以后": "QL_ZHUTI_AFTER_6",
"侨梁主体工程完工后6个月以后": "QL_ZHUTI_AFTER_6", # 错别字工况分组
# 轨道铺设相关
"轨道铺设完成后第1个月": "GD_1",
"轨道铺设完成后2至3个月": "GD_2_3",
"轨道铺设完成后4至12个月": "GD_4_12",
"轨道铺设完成后12个月以后": "GD_AFTER_12",
"轨道铺设期间,前": "STATIC",
"轨道铺设期间,后": "STATIC",
"轨道铺设,前": "STATIC",
"轨道铺设,后": "STATIC",
# 无砟轨道相关
"无砟轨道铺设后第1至3个月": "WZGD_1_3",
"无砟轨道铺设后4至12个月": "WZGD_4_12",
"无砟轨道铺设后12个月以后": "WZGD_AFTER_12",
# 静态工况(无切换规则)
"墩台施工到一定高度": "STATIC",
"墩台混凝土施工": "STATIC",
"预制梁桥,架梁前": "STATIC",
"桥位施工桥梁,制梁前": "STATIC",
"桥位施工桥梁,上部结构施工中": "STATIC",
"架桥机(运梁车)通过": "STATIC",
"轨道铺设期间,前": "STATIC",
"轨道铺设期间,后": "STATIC",
"铺路或堆载,一般情况": "STATIC",
"填筑或堆载,一般情况": "STATIC",
"铺路或堆载,沉降量突变情况": "STATIC",
"填筑或堆载,两次填筑间隔时间较长情况": "STATIC",
"铺路或堆载,两次铺路间隔时间较长情况": "STATIC"
}
# 冬休分组(仅冬休)
winter_break_groups = {
"铺路或堆载,两次铺路间隔时间较长情况": "STATIC",
"站场填方路基段填筑完成至静态验收": "STATIC",
"桥墩(台)地面处拆模后": "STATIC",
"敦身混凝土施工": "STATIC",
"现浇梁,浇筑前": "STATIC",
"现浇梁上部结构施工中": "STATIC",
"特殊地段隧道施工完成后至静态验收": "STATIC",
"冬休": "STATIC"
}
condition_group.update(winter_break_groups)
return condition_group
def _load_group_transition_rules(self):
"""加载工况切换触发规则(私有方法,内部使用"""
"""加载工况切换触发规则(保持原有规则,适配新增工况"""
return {
"YG_DIBAN_1": {"trigger_days": 30, "next_candidates": ["仰拱底板施工完成后第2至3个月", "仰拱(底板)施工完成后第2至3个月"]},
"YG_DIBAN_2_3": {"trigger_days": 60, "next_candidates": ["仰拱底板施工完成后3个月以后", "仰拱(底板)施工完成后3个月以后"]},