采用弹性系数发求得未来年份的物流生产量和吸引量,采用双约束重力模型对OD矩阵进行预测,阻抗函数采用的两两小区之间的距离,最后将预测结果矩阵写入excel。
OD矩阵如图
程序如下:
import copy
import numpy as np
import pandas as pd
import openpyxl as op
"""
#################双约束重力模型########################
1.数据提取
2.物流生成预测
3.迭代求取ki,kj
4.物流分布预测
5.主函数
6.保存od_pre为预测od矩阵,保存od_draw_data为绘图数据
"""
# 弹性系数数据,求得物流增长率alpha
elastic_coefficient = [[0.12, 0.69], [0.1, 1], [0.08, 0.88]]
alpha = []
for each in elastic_coefficient:
alpha.append(each[0] * each[1])
# 提取od信息
od_data = pd.read_csv('L_OD_data.csv')
od_data = np.array(od_data)
od_data = od_data.tolist()
ai = od_data[-1] # 当前吸引量
pi = [] # 当前发生量
for i in od_data:
del i[0]
pi.append(i[-1])
del ai[-1]
del pi