AI源码
AI源码AI 精选 · 优质源码 · 助力学习

基于 Python 的城市共享单车骑行需求时空分析系统

本系统是一个基于 Python Flask 框架的城市共享单车骑行需求时空分析平台,使用 Oslo City Bike(奥斯陆城市自行车)开放数据,提供系统总览、时间维度分析、空间维度分析、站点运营分析、OD 起讫流动分析、骑行需求预测、综合分析报告等功能模块,适用于城市共享单车运营调度与骑行需求研究场景。

评分:4.8/5.0
销量:57
发布:2026/6/9
难度:L2 进阶级
💬 联系咨询观看视频介绍
永久使用权限
免费更新维护
技术支持服务

项目封面

截图 1

项目说明

基于 Python 的城市共享单车骑行需求时空分析系统

项目简介

本系统是一个基于 Python Flask 框架的城市共享单车骑行需求时空分析平台,使用 Oslo City Bike(奥斯陆城市自行车)开放数据,提供系统总览、时间维度分析、空间维度分析、站点运营分析、OD 起讫流动分析、骑行需求预测、综合分析报告等功能模块,适用于城市共享单车运营调度与骑行需求研究场景。


功能模块

模块功能说明
系统总览展示核心 KPI 指标(总骑行次数、活跃站点数、平均时长、平均距离、总里程、数据区间),日骑行量趋势图、24 小时分布图、工作日与周末对比图、热门出发站点 Top10、站点空间分布地图
时间分析24 小时骑行分布、星期分布、按月分布、骑行时长分布(饼图)、骑行距离分布(饼图)、高峰时段 Top5、日骑行量趋势
空间分析往返骑行占比 KPI、站点热力图(Leaflet 地图)、热门出发站 Top15、热门到达站 Top15、空间网格密度
站点运营支持按出发量/到达量/净流量/名称排序,选择站点查看 24 小时出发分布,站点运营明细表格(含净流量标记)
OD 流动OD 流向地图(线段粗细表示流量)、Top OD 流量对表格
需求预测基于梯度提升回归模型(GBR)的全城小时级需求预测,展示模型评估指标(MAE、RMSE、R²)、特征重要性、未来 24 小时预测、历史实际与模型拟合对比
分析报告自动生成综合分析文字报告,包含数据概况、时间特征摘要、空间特征摘要、预测模型评估、结论与建议,支持浏览器打印
登录注册用户登录鉴权、新用户注册、Session 管理

数据来源

数据集文件说明
Oslo City Bike 2024年1月oslo_2024_01.csv2024 年 1 月奥斯陆共享单车骑行记录
Oslo City Bike 2024年2月oslo_2024_02.csv2024 年 2 月奥斯陆共享单车骑行记录
Oslo City Bike 2024年3月oslo_2024_03.csv2024 年 3 月奥斯陆共享单车骑行记录
Oslo City Bike 2024年4月oslo_2024_04.csv2024 年 4 月奥斯陆共享单车骑行记录
Oslo City Bike 2024年5月oslo_2024_05.csv2024 年 5 月奥斯陆共享单车骑行记录
Oslo City Bike 2024年6月oslo_2024_06.csv2024 年 6 月奥斯陆共享单车骑行记录

数据合理性验证

指标本系统值行业参考值判定
平均骑行时长12.6 分钟中国城市共享单车平均 12.1 分钟(2024 年中规院报告)✅ 合理
平均骑行距离(非往返)1.63 km中国城市共享单车平均 1.5 km(2024 年中规院报告)✅ 合理
高峰时段16:00、17:00北欧城市晚高峰 15:00-17:00✅ 合理
季节趋势1月34次/天→5月5483次/天奥斯陆1月严寒极低、5月春暖激增✅ 合理
往返行程占比2.57%共享单车系统普遍 2-5%✅ 合理
工作日/周末比79.4% / 20.6%约 80/20(奥斯陆冬季运营少周末出行)✅ 合理
站点数量269奥斯陆市约 250-300 个站点✅ 合理

数据清洗规则

  1. 时长异常过滤:骑行时长超过 2 小时(7200 秒)的记录视为用户忘记还车,予以剔除(约 1,049 条,占总数 0.28%)
  2. 往返行程距离处理:起终点相同的往返行程,其 Haversine 直线距离为 0,但这不代表真实骑行距离为零。系统将这些行程的 distance_km 设为 NULL,距离统计仅计算非往返行程
  3. Haversine 距离说明:本系统计算的 distance_km 是起终点站点之间的球面直线距离,低于实际骑行路径距离(道路绕行)
  4. 坐标范围验证:所有起终点坐标均在奥斯陆范围内(纬度 59°-61°,经度 10°-12°),无坐标异常

标准版目录结构

python-share-bike-fenxi/
├── app.py                    # Flask 应用主入口,页面路由定义
├── config.py                 # 应用配置模块(数据库路径、密钥、城市信息、默认账号)
├── requirements.txt          # Python 依赖包清单
├── data/
│   └── raw/                  # 原始 CSV 骑行数据
│       ├── oslo_2024_01.csv
│       ├── oslo_2024_02.csv
│       ├── oslo_2024_03.csv
│       ├── oslo_2024_04.csv
│       ├── oslo_2024_05.csv
│       └── oslo_2024_06.csv
├── database/
│   └── bike_analysis.db      # SQLite 数据库文件(自动生成)
├── models/
│   ├── __init__.py           # 数据模型包
│   └── database.py           # SQLite 连接管理、表结构定义、初始化
├── models_saved/
│   └── demand_gbr.pkl        # 训练完成的 GBR 模型文件(自动生成)
├── scripts/
│   ├── download_data.py      # 从 Oslo City Bike 下载数据 CSV
│   ├── import_data.py        # 导入 CSV 数据到 SQLite(含距离计算、小时聚合)
│   ├── train_model.py        # 训练需求预测模型
│   ├── run_all.py            # 一键导入数据 + 训练模型
│   ├── verify_data.py        # 数据与计算一致性校验
│   ├── repair_station_stats.py # 修复站点进出统计
│   └── test_api.py           # API 端到端测试
├── services/
│   ├── __init__.py           # 服务包
│   ├── analytics.py          # 统计分析服务(概览、时间模式、高峰识别)
│   ├── spatial.py            # 空间分析服务(站点列表、热力、OD 流、网格)
│   └── prediction.py         # 需求预测服务(模型训练、预测、评估)
├── static/
│   ├── css/
│   │   └── custom.css        # 自定义样式
│   └── js/
│       ├── common.js         # 公共 API 工具与 ECharts 辅助函数
│       ├── dashboard.js      # 总览页图表
│       ├── temporal.js       # 时间分析页图表
│       ├── spatial.js        # 空间分析页图表
│       ├── stations.js       # 站点运营页交互
│       ├── od_flow.js        # OD 流动页地图
│       ├── prediction.js     # 需求预测页图表
│       └── reports.js        # 分析报告页数据
├── templates/
│   ├── base.html             # 基础模板(导航栏、CDN 引用)
│   ├── login.html            # 登录页
│   ├── register.html         # 注册页
│   ├── dashboard.html        # 总览页
│   ├── temporal.html         # 时间分析页
│   ├── spatial.html          # 空间分析页
│   ├── stations.html         # 站点运营页
│   ├── od_flow.html          # OD 流动页
│   ├── prediction.html       # 需求预测页
│   ├── reports.html          # 分析报告页
│   └── about.html            # 关于页
├── 运行步骤必看/
│   └── window.md             # Windows 运行步骤说明
├── mac_run.sh                # macOS/Linux 一键启动脚本
├── window_run.bat            # Windows 一键启动脚本
├── 训练手册.md                # 模型训练手册
└── 项目说明.md                # 本文件

技术栈

类别技术
后端Python 3.12 + Flask 3.0
数据库SQLite 3
前端HTML5 + Bootstrap 5.3 + ECharts 5.5 + Leaflet 1.9
机器学习scikit-learn 1.5(梯度提升回归)
数据处理pandas 2.2 + numpy 1.26
模型持久化joblib 1.4
密码安全Werkzeug pbkdf2:sha256

环境要求

项目要求
Python3.12
操作系统Windows / macOS / Linux
内存建议 2GB 以上
磁盘约 500MB(含依赖和数据库)
浏览器Chrome / Firefox / Safari / Edge 现代版本

账号信息

角色用户名密码
管理员adminadmin123

管理员账号在首次初始化数据库时自动创建。新注册用户默认为普通用户角色。

技术分类

包含内容

完整源码
项目说明文档
演示材料

适用人群

学习参考与二次开发

关于 AI源码

AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。

QQ: 861077046
邮箱: 861077046@qq.com
已服务 57+ 位用户
立即咨询

相关推荐

查看全部 →
城市交通流量预测与拥堵成因分析系统
Python
进阶

城市交通流量预测与拥堵成因分析系统

是一个面向城市交通拥堵分析的 monorepo,覆盖计算机设计课题中的主要能力链路:

PythonHTMLSQLite
4.820
电商用户行为漏斗与CRO转化率优化分析
Python
NEW
进阶

电商用户行为漏斗与CRO转化率优化分析

电商用户行为漏斗与CRO转化率优化分析(E-Commerce Funnel CRO)是一套面向电商运营的数据分析平台,覆盖从用户访问到最终购买的完整漏斗链路,提供多维诊断、统计检验、PIE 优先级矩阵与 XGBoost 购买预测等能力,帮助运营团队精准定位转化瓶颈并制定优化策略。

PythonHTMLSQLite
4.866
多组学癌症预后预测分析系统
Python
进阶

多组学癌症预后预测分析系统

基于 Flask 的 Web 应用,用于上传 TCGA 风格合并表、做特征与标签概览、Cox 预后风险评分与生存相关可视化。模型在本地训练后以 形式加载,不提供旧版演示数据或假模型兜底。

PythonHTMLSQLite
4.834
基于 Apriori 算法的中药配伍审查系统
Python
NEW
进阶

基于 Apriori 算法的中药配伍审查系统

本系统是一个基于经典 Apriori 关联规则挖掘算法的中药配伍审查平台,使用真实中医药处方数据集(PTM-TKDE2018),实现药材频繁项集挖掘、关联规则生成与配伍禁忌审查。

PythonHTMLSQLite
4.840
基于 Python 的短视频用户行为分析系统
Python
NEW
进阶

基于 Python 的短视频用户行为分析系统

基于快手 KuaiRec / KuaiRand 数据集的短视频推荐分析平台,提供用户行为分析、推荐偏差检测、内容运营洞察、图神经网络推荐等完整分析链路。

PythonHTMLSQLite
4.875
基于 Python 的汽车市场数据分析与可视化平台
Python
NEW
进阶

基于 Python 的汽车市场数据分析与可视化平台

本平台是一个基于 Python Flask 框架的汽车市场数据分析与可视化系统,整合了多个真实汽车市场数据集,提供数据概览、车辆检索、多维分析、价格预测、品牌对比、技术规格分析、销量统计等功能模块,适用于汽车市场趋势研究和二手车价格预测场景。

PythonHTMLSQLite
4.894