85 lines
4.8 KiB
Python
85 lines
4.8 KiB
Python
import openpyxl
|
||
from openpyxl import Workbook
|
||
|
||
def create_input_excel(filename="input_params.xlsx"):
|
||
wb = Workbook()
|
||
ws = wb.active
|
||
ws.title = "输入接口"
|
||
|
||
headers = ["文件名/数据流", "格式", "字段 (Field)", "类型 (Type)", "描述 (Description)"]
|
||
ws.append(headers)
|
||
|
||
data = [
|
||
["virus_params.json", "JSON", "strain_name", "String", "病毒变种标识符,如\"Delta\", \"Omicron BA.5\""],
|
||
["", "", "r0", "Float", "基本再生数,描述病毒内在传播力"],
|
||
["", "", "latent_period", "Float", "平均潜伏期时长(天)"],
|
||
["", "", "generation_interval", "Float", "平均世代间隔(天)"],
|
||
["", "", "asymptomatic_rate", "Float", "无症状感染比例(0-1之间)"],
|
||
["", "", "symptomatic_rate", "Float", "出现临床症状的比例(0-1之间)"],
|
||
["", "", "severe_rate", "Float", "确诊者中发展为重症的比例(0-1之间)"],
|
||
["", "", "fatality_rate", "Float", "感染致死率(IFR,0-1之间)"],
|
||
["", "", "env_survival", "Float", "病毒在标准环境下的存活时间(小时)"],
|
||
|
||
["environment_params.json", "JSON", "target_population", "Integer", "目标区域总人口数"],
|
||
["", "", "pop_density", "Float", "目标区域平均人口密度(人/平方公里)"],
|
||
["", "", "avg_temperature", "Float", "攻击期间预测平均温度(摄氏度)"],
|
||
["", "", "avg_humidity", "Float", "攻击期间预测平均相对湿度(百分比)"],
|
||
["", "", "terrain_type", "String", "主要地形类型,如\"Urban\", \"Suburban\", \"Rural\""],
|
||
|
||
["operation_plan.json", "JSON", "planned_start_time", "String (ISO 8601)", "计划中的攻击发起时间(YYYY-MM-DDThh:mm:ssZ)"],
|
||
["", "", "actual_start_time", "String (ISO 8601)", "实际攻击发起时间(YYYY-MM-DDThh:mm:ssZ)"],
|
||
["", "", "expected_casualties", "Integer", "期望达成的感染人数目标"],
|
||
["", "", "expected_fatalities", "Integer", "期望达成的死亡人数目标"],
|
||
|
||
["defense_capability.json", "JSON", "cc_response_delay", "Float", "指挥控制响应延迟(小时)"],
|
||
["", "", "si_detection_delay", "Float", "侦察预警-病例发现延迟(小时)"],
|
||
["", "", "si_testing_capacity", "Integer", "侦察预警-日最大核酸检测能力"],
|
||
["", "", "pp_public_compliance", "Float", "预防保护-公众防护措施依从率(0-1之间)"],
|
||
["", "", "pp_vaccination_rate", "Float", "预防保护-疫苗全程接种率(0-1之间)"],
|
||
["", "", "qi_isolation_delay", "Float", "封控隔离-感染者隔离延迟(小时)"],
|
||
["", "", "qi_quarantine_capacity", "Integer", "封控隔离-可用隔离床位总数"],
|
||
["", "", "mt_hospital_beds", "Integer", "救治后送-医院总床位数"],
|
||
["", "", "mt_icu_beds", "Integer", "救治后送-ICU总床位数"],
|
||
["", "", "rs_drug_dev_cycle", "Float", "应急科研-特效药研发周期(月)"]
|
||
]
|
||
|
||
for row in data:
|
||
ws.append(row)
|
||
|
||
wb.save(filename)
|
||
print(f"{filename} 已生成")
|
||
|
||
def create_output_excel(filename="output_params.xlsx"):
|
||
wb = Workbook()
|
||
ws = wb.active
|
||
ws.title = "输出接口"
|
||
|
||
headers = ["文件名/数据流", "格式", "字段 (Field)", "类型 (Type)", "描述 (Description)"]
|
||
ws.append(headers)
|
||
|
||
data = [
|
||
["assessment_report.json", "JSON", "estimated_casualties", "Integer", "模型估算的总感染人数"],
|
||
["", "", "estimated_fatalities", "Integer", "模型估算的总死亡人数"],
|
||
["", "", "casualty_goal_achieved", "Boolean", "总感染人数目标是否达成"],
|
||
["", "", "fatality_goal_achieved", "Boolean", "总死亡人数目标是否达成"],
|
||
["", "", "casualty_achievement_rate", "Float", "感染目标达成率(estimated/expected)"],
|
||
["", "", "fatality_achievement_rate", "Float", "死亡目标达成率(estimated/expected)"],
|
||
["", "", "peak_medical_demand", "Integer", "估算的峰值医疗需求(住院人数)"],
|
||
["", "", "medical_system_overwhelmed", "Boolean", "是否发生医疗资源挤兑"],
|
||
["", "", "key_vulnerability", "Array of String", "识别出的b方关键脆弱性(如\"检测延迟\", \"隔离容量不足\")"],
|
||
["", "", "major_risk_factors", "Array of String", "导致方案失败的主要风险因素(如\"病毒传播力不足\", \"响应延迟过长\")"],
|
||
["", "", "overall_effectiveness_score", "Float", "方案综合效能评分(0-100)"],
|
||
["", "", "overall_risk_score", "Float", "方案综合风险评分(0-100)"]
|
||
]
|
||
|
||
for row in data:
|
||
ws.append(row)
|
||
|
||
wb.save(filename)
|
||
print(f"{filename} 已生成")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
create_input_excel()
|
||
create_output_excel()
|