编写程序统计小区居民出行聚集数据,模拟小型聚集场景的病菌传播风险。
用 Python 构建一个小区居民出行聚集数据统计与小型聚集场景病菌传播风险模拟系统,用于说明「如何让出行与聚集数据变成可解释的公共健康风险提示」。
一、实际应用场景描述
在社区公共卫生、基层疾控与健康管理课程中,出行与聚集分析常用于:
- 小区居民日常出行模式统计
- 社区活动、广场舞、棋牌室等小型聚集场景监测
- 传染病防控演练与风险评估
- 健康管理课程中的流行病学建模教学案例
典型数据包括:
- 居民 ID(脱敏)
- 出行时间、地点
- 聚集人数规模
- 停留时长(分钟)
但在现实中:
- 只有“有人聚集”的定性信息
- 不清楚聚集密度与持续时间
- 无法量化传播风险等级
二、引入痛点
当前常见问题:
1. 数据不可量化:只记“人多”,不记“多到什么程度”
2. 风险不可见:不知道哪些场景更危险
3. 缺乏模拟能力:难以评估不同管控措施的效果
痛点总结:
缺少一个可量化、可模拟、非诊断性的聚集传播风险评估工具。
三、核心逻辑讲解(工程建模视角)
⚠️ 说明:以下为工程风险模型,不等同于流行病学或疾控标准。
核心输入
字段 含义
location 聚集地点
crowd_size 聚集人数
duration_min 停留时长
density 人均面积(㎡/人,越小越密)
工程风险公式(示例)
聚集风险 = 人数 × log(停留时长) × (1 / 人均面积)
传播风险 = 聚集风险 × 场景权重
场景权重(示例)
场景 权重
棋牌室 1.5
电梯 1.8
广场活动 1.0
社区超市 1.2
四、Python 核心代码(模块化 + 清晰注释)
1️⃣ 数据结构定义
"models.py"
"""
小区居民出行与聚集数据结构
"""
import math
class GatheringEvent:
def __init__(self, location, crowd_size, duration_min, density, scene_type):
self.location = location
self.crowd = crowd_size
self.duration = duration_min
self.density = density
self.scene = scene_type
2️⃣ 聚集风险计算模块
"risk.py"
"""
聚集场景病菌传播风险计算
"""
SCENE_WEIGHT = {
"mahjong": 1.5,
"elevator": 1.8,
"square": 1.0,
"market": 1.2
}
def gathering_risk(event: "GatheringEvent"):
base = event.crowd * math.log(event.duration) * (1 / event.density)
weight = SCENE_WEIGHT.get(event.scene, 1.0)
return round(base * weight, 2)
3️⃣ 风险分级与提醒模块
"advisor.py"
"""
传播风险分级与公共健康提醒
"""
def risk_level(score):
if score < 20:
return "低风险"
elif score < 50:
return "中风险"
else:
return "高风险"
def public_health_advice(level, location):
advice_map = {
"低风险": f"{location} 聚集风险较低,建议保持通风与适度分散。",
"中风险": f"{location} 存在传播风险,建议缩短停留时间并佩戴口罩。",
"高风险": f"{location} 传播风险较高,建议减少聚集或暂停活动。"
}
return advice_map.get(level)
4️⃣ 主程序
"main.py"
from models import GatheringEvent
from risk import gathering_risk
from advisor import risk_level, public_health_advice
if __name__ == "__main__":
event = GatheringEvent(
location="社区棋牌室",
crowd_size=12,
duration_min=90,
density=1.2,
scene_type="mahjong"
)
risk_score = gathering_risk(event)
level = risk_level(risk_score)
print(f"聚集传播风险指数:{risk_score}")
print(f"风险等级:{level}")
print("公共健康提醒:", public_health_advice(level, event.location))
五、README.md
# Community Gathering Risk Simulator(小区聚集传播风险模拟工具)
## 项目定位
本工具用于教学与技术演示,展示如何统计小区居民出行聚集数据,
模拟小型聚集场景的病菌传播风险。
⚠️ 本项目不构成流行病学结论,仅用于工程建模练习。
## 功能
- 聚集场景数据建模
- 传播风险指数计算
- 风险分级与公共健康提醒
## 使用方式
bash
python main.py
## 依赖
- Python 3.8+
## 适用人群
- 全栈开发者
- 社区公共卫生 / 疾控工程师
- 健康管理课程讲师
六、使用说明(User Guide)
1. 构造
"GatheringEvent" 聚集场景数据
2. 使用
"gathering_risk" 计算传播风险
3. 调用
"risk_level" 与
"public_health_advice" 获取提醒
4. 可扩展为:
- 多场景批量模拟
- 不同管控措施对比(限流、通风、缩短时长)
- 社区级聚集风险热力图
七、核心知识点卡片(去营销化)
📌 知识点 1:传播风险是“人 × 时间 × 空间”的函数
工程上必须联合建模。
📌 知识点 2:模拟不是预测
模型用于评估“相对风险”,不是精确传染人数。
📌 知识点 3:建议要具体到场景
“棋牌室限流”比“少聚集”更有执行力。
八、总结(中立立场)
✅ 本程序展示了一个通用、可扩展的社区聚集风险评估模型
✅ 强调出行聚集数据 → 风险模拟 → 可解释提醒的工程闭环
✅ 非常适合用于公共卫生教学、社区管理、技术博客
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!
