航空客流分析与预测模型之西南篇

基于LSTM的城市轨道交通客流量预测(demo) 本数据集记录了2023年4~5月xiamenBRT45个站点的客流量(按小时划分,61d=61*24=1464h)。hours。基于过去7天的客流量数据预测未来1天的客流量数据。 阅读详情

目录

1、机场与航线网络

2、航段与航班

3、客流分析模型

4 代码

航空客流分析模型核心代码 (Python)

核心代码解读与注意事项

高速和航空名词区别 


航空客流分析模型是航线网络规划、运力调配和市场需求预测的重要基础,是决定航司收益与市场战略精度的决定性因素。本团队目前已建立了覆盖全国各大区域机场群的航空客流分析与预测模型,并打通了各航空公司、机场及空管数据的资源壁垒,后续将对各重要航空市场的分析模型展开介绍,欢迎持续关注。此次以西南地区为例,向大家介绍西南地区航空客流模型的特点和作用。

h

1、机场与航线网络

在机场数量上,截至2024年底,西南地区(主要包括四川、重庆、云南、贵州)吞吐量百万级以上的民用运输机场已超过30个,其中成都天府(TFU)、成都双流(CTU)、重庆江北(CKG)、昆明长水(KMG)为国际性枢纽机场。

在航线分布上,以成都、重庆、昆明三大枢纽为核心,形成了辐射全国、连接全球的“轮辐式”航线网络。枢纽机场之间、以及枢纽与区域内支线机场(如丽江、西昌、遵义等)的连接构成了密集的区域航线网;相比之下,川西高原、黔东南等部分地形复杂、经济发展相对滞后的地区,航线网络和航班频次相对稀疏。

在国际及地区航线上,西南地区与东南亚、南亚、欧洲及北美主要城市均有直飞航线,国际航班门架(虚拟出入境记录点)处理后可视为国际虚拟航站,是构建区域国际航空模型的关键节点。

2、航段与航班

西南地区现有活跃航段(Segment)数千条,航班班次密集。截至2024年末,西南地区日均起降航班已超过5000架次。在空间分布方面,成渝昆贵四大核心城市对的航线是区域内最繁忙的“空中走廊”,如成都-重庆、成都-昆明等;在机型配置方面,干线航路多以A320、B737等中型客机为主,国际航线及核心干线已逐步由A350、B787等宽体机执飞;在客流特征方面则呈现出高度的商务性、旅游性和季节性。如春运、暑运及国庆黄金周期间,往返于西南地区的旅游热线(如成都-三亚、重庆-厦门)客流急剧增加,呈现出明显的季节性高峰。

模型通过对各个航段的飞行距离、时间、票价、航班频次等参数进行赋值,对旅客出行选择行为的相关参数进行标定,建立了广义出行效用函数,为客流分配与预测奠定了基础。

https://via.

3、客流分析模型

在完成航线网络模型构建后,将航空OD客流数据导入到模型中,采用广义出行效用函数,利用离散选择模型(如Logit模型) 进行客流分配,即可得到对应年份的各条航线预测客流。(涉及数据保密要求,已对下图流量分布图进行混淆处理,图片仅供示意)

https://via.

除了进行客流分配之外,西南地区航空客流模型还可以应用于多种业务分析场景,如航线收益分析、旅客构成分析、中转流量分析、潜在市场需求挖掘、新开航线可行性评估等。此处以中转流量分析为例进行介绍:

选择2024年的西南地区航线网络(可以通过查询年份进行设置),以拉萨(LXA)为起点,以北京(PKX)为终点,以最短旅行时间(或最低票价)为条件,进行旅客出行路径分析,即可得到该OD对的最优中转方案(如经成都或重庆中转)、各中转节点的分流比例以及总的旅行时间和费用。

https://v

西南地区航空客流分析模型可有效助力航空公司、机场集团及行业主管部门进行精准的市场研判、航线规划和运力优化,在新航线开辟决策、航班时刻优化、收益管理、枢纽机场规划、航空市场专题研究等方面具有重要应用价值。本团队凭借成熟的航空分析模型和独特的空域数据资源优势,长期开展上述相关业务,欢迎有兴趣的公司和朋友前来咨询。

4 代码

航空客流分析模型核心代码 (Python)

我们将使用 pandas 进行数据处理,biogeme 作为离散选择模型的核心库(它是学术界和工业界进行此类建模的标准工具),并使用 networkx 来构建航线网络。

python


复制

下载

# core_air_passenger_model.py
import pandas as pd
import numpy as np
import biogeme.biogeme as bio
import biogeme.database as db
import biogeme.models as models
import biogeme.messaging as msg
from biogeme.expressions import Beta, Variable, log
import networkx as nx
from typing import Dict, List, Tuple

class AirPassenge
基于数据挖掘的H公园客流量分析预测 客流量预测 阅读详情

相关推荐

机器学习之案例:客流预测

机器学习之案例:客流预测

学习中 3624

客流量预测模型:数学建模与实战案例

在本篇博客中,我们介绍了客流量预测模型的基本概念,并结合Matlab代码和实战案例,演示了如何应用时间序列分析和回归分析进行客流量预测。客流量预测在交通运输、商业等领域具有重要意义,希望本篇博客能帮助读者更好地理解客流量预测的原理和应用,并在实际应用中取得更好的效果。

YOLO 1082

航空旅客需求预测:方法、应用与风险管理

统计分析是通过数学和统计模型来识别数据中的模式和关系的一种技术。这种方法依赖于数据集的大小和质量,对历史数据进行分析,以预测未来的趋势。它包括描述性统计、推断统计和假设检验等方法。在航空旅客需求预测领域,统计分析方法可以用来估算未来的乘客数量,基于季节性、假日效应、经济因素等。机器学习是一种人工智能技术,它允许计算机系统从经验中学习并改进预测准确性,而无需进行明确的编程。机器学习方法通常被分为监督学习和无监督学习两大类。

weixin_31860973的博客 1191

基于LSTM模型的城市轨道短时客流交通预测

通过网盘分享的文件:城市轨道短时客流交通预测.zip链接: https://pan.baidu.com/s/1HyTnjeGK-gqo7Oo4htRK0A 提取码: wlgdR%5E2。

言不信者行不果,行不敏者言多滞. 2200

基于贝叶斯网络的短时公交客流预测模型

针对公交客流的时变特征,假设当前时刻的客流量仅与历史客流量和发车频率相关,提 出一种基于贝叶斯网络的短时公交客流预测模型,给出了节点定义、网络结构与参数学习及推理 算法,揭示了它们之间的因果关系;通过南通市301路公交线路某个站点的实际客流调查,利用该 模型预测其发展趋势,并与神经网络、支持向量机等预测模型进行比较,验证了其有效性。

LobeHub开源AI应用平台:从部署到定制的全栈实践指南

在现代AI应用开发领域,大语言模型(LLM)的集成与部署是核心技术挑战之一。其原理在于通过API或本地化部署,将预训练模型的强大能力封装为可调用的服务。这项技术的核心价值在于极大地降低了AI应用的开发门槛,使开发者能够快速构建智能对话、内容生成等场景的应用。随着模型即服务(MaaS)模式的普及,一个关键痛点是如何高效地管理多模型、设计友好的用户界面并实现功能扩展。这正是开源项目LobeHub所聚焦的领域,它通过提供可插拔的架构和配置驱动的低代码理念,解决了AI能力落地的“最后一公里”问题。本文将结合Dock

weixin_27210125的博客 758

vins-mono前端详解(2)——imu预积分

本篇文章详细讲解了vins-mono中imu预积分内容,包括复杂的公式推导。

weixin_44587828的博客 1196

铭飞MCMS源码部署

文章目录前言一、下载铭飞源码二、部署源码1.使用IDEA打开源码2.配置tomcat环境2.1下载tomcat并测试是否可以成功启动(此处不赘述)2.2在IDEA中安装tomcat环境并配置3.添加数据库,并配置3.1新建数据库3.2 导入sql配置三、启动测试 前言 铭飞MCMS基于IDEA、tomcat和mysql的环境搭建。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载铭飞源码 gitee:https://gitee.com/mingSoft/MCMS/releases(各种版本按需下

MARS_ZORO的博客 4069

实战解析:如何通过LTspice仿真优化MOS管缓启动电路,解决上电冲击电流问题

本文详细解析如何通过LTspice仿真优化MOS管缓启动电路,有效解决上电冲击电流问题。文章从问题根源分析入手,介绍LTspice环境搭建、缓启动电路设计原理、参数优化技巧及实际工程问题排查,帮助工程师掌握MOS管电源开关电路的关键设计方法,提升系统可靠性和性能。

weixin_28683689的博客 516

Cadence OrCAD: 层次化设计 Hierarchical Design

详细介绍OrCAD的原理图层次化设计方法。

Fantasy237的博客 1万+

在Jetson orin板卡上部署ocr模型遇到错误

摘要:安装ONNX Runtime GPU版本时遇到问题,直接pip install onnxruntime-gpu会报错。解决方案是从test.pypi.org下载对应的.whl文件(如ort_nightly-1.14.0...aarch64.whl),本地安装后还需降级NumPy版本(如pip install numpy==1.26),以解决NumPy版本兼容性问题。整个过程涉及三个关键步骤:下载正确架构的wheel文件、本地安装、调整NumPy版本。

xdxd3c的博客 1526

【银河麒麟V10】【桌面】【服务器】系统启动问题

1、如果之前运行好好的,重启后系统报错,一般80%是因为fstab的问题,回想下之前有没有添加过外接存储,修改过/etc/fstab,如果是的话一般是因为存储异常(比如网络存储无法连接,本地存储路径变化)导致系统开机自检失败,导致无法正常启动; 处理方式:进入单用户(单用户进入的几种方式上面有专门文章介绍),修改/etc/fstab,将新增的内容暂时注释掉,然后重启系统,能正常进入系统后再分析失败原因。 ...

桂安俊@KylinOS 3万+

YOLOv12涨点优化:自研检测头 | 独家创新(Partial_C_v12Detect)检测头结构创新,实现涨点

现有12Detect进行二次创新,提升检测精度,独家创新(Partial_C_12Detect)检测头结构创新,适合科研创新度十足,强烈推荐

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 633

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 智能体工作流(Agentic Workflows)专项调研报告
下一篇: 智能体在航空行业的应用场景与赋能关键技术研究
交通上的硅基思维
博客等级 码龄4年 2762粉丝 913原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

交通上的硅基思维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值