python交通调查数据处理_python 小型交通调查后的数据处理(数车)

MMP,寒冷的冬天,在西安北郊的一个上午,一组四人刚起床早饭没吃就去数车,大腿冻得直哆嗦,终于以五分钟时间间隔数了一个半小时的车。

以下是要求

为两个实验前做准备做交通调查,对所调查的路口现有路口交通信号控制参数的进行优化设计。

实验一,单个交叉路口定时控制。实验二,四个路口绿波带控制。

提交文件一,单个交叉口信号控制参数优化设计,含括调查资料。

需要调查内容:饱和交通流量S,各个方向车流量q。路口绿灯起步损失时间,黄灯滞后时间,黄灯时间,全红时间。

调查结束后,自行完成对路口交通信号灯控制参数的优化设计。

需要提交的文件二,四个路口绿波带控制参数设计,含括调查资料。(仅限于一个时间段内的参数设计,前一个文件单个交叉口的也是仅限于一个时间段内的即可)

调查内容包括:

1.四个路口的道路几何参数,每一路口每一方向进口车道数量,左直右车道数,4个交叉口之间的距离。

2.交通流参数,车辆在路段上运行速度,各个交叉口直行车流量,转弯流量。

3.信号灯控制参数,各个路口交通信号灯控制参数,周期,绿灯时间分配,黄灯全红时间。

最后计算,运行方式单双向,最大周期,绿波带宽度,绿灯时间分配,绿灯起步时距差,推荐运行速度。

我们数的时候分大车和小车

1、数回来的基础数据是这样的

b809d03be806?utm_campaign=maleskine

image.png

2、加工一下是这样的

b809d03be806?utm_campaign=maleskine

image.png

3、

import numpy as np

import pandas as pd

from matplotlib.font_manager import FontProperties

import matplotlib.pyplot as plt

import seaborn as sns

sns.set_style('darkgrid')

def deal(db):

db_copy=pd.DataFrame(db,columns=['time','右','左','直']).fillna(0)

for i in range(0,16):

db_copy['右'][i*3+2]=db_copy['右'][i*3+0]+db_copy['右'][i*3+1]

db_copy['左'][i * 3 + 2] = db_copy['左'][i * 3 + 0] + db_copy['左'][i * 3 + 1]

db_copy['直'][i * 3 + 2] = db_copy['直'][i * 3 + 0] + db_copy['直'][i * 3 + 1]

db_copy['合计']= db_copy['右']+db_copy['左']+db_copy['直']

return db_copy

db={}

db[0]=pd.read_excel('张1.xls')

db[1]=pd.read_excel('孙1.xls')

db[2]=pd.read_excel('田1.xls')

db[3]=pd.read_excel('刘1.xls')

westD=db[0]['合计'][0::3].tolist()

westX=db[0]['合计'][1::3].tolist()

northD=db[1]['合计'][0::3].tolist()

northX=db[1]['合计'][1::3].tolist()

eastD=db[3]['合计'][0::3].tolist()

eastX=db[3]['合计'][1::3].tolist()

southD=db[2]['合计'][0::3].tolist()

southX=db[2]['合计'][1::3].tolist()

ZD=sum(westD+northD+eastD+southD)

ZX=sum(westX+northX+eastX+southX)

print(ZD)

# plt.pie([ZD,ZX],labels={'big car','small car'},autopct='%1.1f%%')#,colors=colors)

# plt.axis('equal')

eastout=[57.0, 40.0, 40.0, 41.0, 43.0, 49.0, 55.0, 49.0, 44.0, 43.0, 48.0, 54.0, 35.0, 45.0, 35.0, 53.0]

westout=[42.0, 45.0, 44.0, 42.0, 38.0, 50.0, 47.0, 55.0, 46.0, 35.0, 48.0, 48.0, 41.0, 45.0, 35.0, 47.0]

northout=[7.0, 6.0, 2.0, 3.0, 4.0, 5.0, 7.0, 2.0, 5.0, 3.0, 7.0, 3.0, 2.0, 3.0, 5.0, 4.0]

southout=[13.0, 16.0, 12.0, 13.0, 9.0, 10.0, 12.0, 8.0, 19.0, 12.0, 15.0, 11.0, 8.0, 15.0, 11.0, 13.0]

eastin=[43.0, 52.0, 10.0, 44.0, 54.0, 9.0, 35.0, 40.0, 11.0, 43.0, 55.0, 12.0, 51.0, 62.0, 8.0, 47.0]

westin=[29.0, 43.0, 8.0, 26.0, 31.0, 7.0, 33.0, 40.0, 6.0, 38.0, 45.0, 10.0, 32.0, 41.0, 8.0, 34.0]

northin=[8.0, 8.0, 0.0, 3.0, 3.0, 0.0, 3.0, 3.0, 2.0, 3.0, 3.0, 0.0, 0.0, 0.0, 2.0, 2.0]

southin=[11.0, 16.0, 2.0, 10.0, 10.0, 1.0, 7.0, 11.0, 5.0, 12.0, 18.0, 5.0, 8.0, 11.0, 0.0, 12.0]

font = FontProperties(fname=r"C:\\WINDOWS\\Fonts\\simsun.ttc", size=14)#C:\WINDOWS\Fonts

# plt.plot([i * 12 for i in eastout] ,'-o',[i * 12 for i in westout] ,'-o',[i * 12 for i in northout] ,'-o',[i * 12 for i in southout] ,'-o')

# label = ["eastout", "westout", "northout","southout"]

# plt.legend(label, loc = 0, ncol = 2)

# plt.title(u'出口流量',fontproperties=font)

# plt.plot([i * 12 for i in eastin] ,'-o',[i * 12 for i in westin] ,'-o',[i * 12 for i in northin] ,'-o',[i * 12 for i in southin] ,'-o')

# label = ["eastin", "westin", "northin","southin"]

# plt.legend(label, loc = 0, ncol = 2)

# plt.title(u'入口流量',fontproperties=font)

#plt.legend([plot1, plot2], (’red line’, ’green circles’), ’best’, numpoints=1)

# plt.show()

west_left=db[0]['左'][2::3].tolist()

west=db[0]['合计'][2::3].tolist()

north_left=db[1]['左'][2::3].tolist()

north=db[1]['合计'][2::3].tolist()

east_left=db[3]['左'][2::3].tolist()

east=db[3]['合计'][2::3].tolist()

south_left=db[2]['左'][2::3].tolist()

south=db[2]['合计'][2::3].tolist()

#w=float(west_left)*west**-1

left=[sum(west_left),sum(east_left),sum(south_left),sum(north_left)]

sum=[sum(west),sum(east),sum(south),sum(north)]

plt.bar(range(4),[round(left[i]*100/sum[i]) for i in range( len(sum) )],width=0.45,color='darkred')

plt.xticks(range(4),['west','east','south','north'])

plt.title(u'各出口左转车辆百分比',fontproperties=font)

for x,y in zip(range(4),[round(left[i]*100/sum[i]) for i in range( len(sum) )]):

plt.text(x, y+0.05, '%.2f' % y+'%', ha='center', va= 'bottom')

plt.show()

4、出图

b809d03be806?utm_campaign=maleskine

image.png

b809d03be806?utm_campaign=maleskine

image.png

b809d03be806?utm_campaign=maleskine

image.png

b809d03be806?utm_campaign=maleskine

%@Z(T$Z8L(L}CDS39_PRTXV.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一份车刀数据的数控车床零件编程实例: ``` O0001;程序开始 N10 G40 G90 G70;初始设定 N20 T0101 M06;选择刀具1,换刀 N30 G00 X-30.0 Z5.0;快速移动到起始点 N40 G01 Z-10.0 F0.2;以0.2的进给率向下加工 N50 G01 X-20.0 F0.1;向右加工 N60 G01 Z-20.0 F0.2;向下加工 N70 G01 X-25.0 F0.1;向左加工 N80 G01 Z-30.0 F0.2;向下加工 N90 G00 X-30.0 Z5.0;快速移动到起始点 N100 T0102 M06;选择刀具2,换刀 N110 G00 X-30.0 Z5.0;快速移动到起始点 N120 G01 Z-10.0 F0.2;以0.2的进给率向下加工 N130 G01 X-20.0 F0.1;向右加工 N140 G01 Z-20.0 F0.2;向下加工 N150 G01 X-25.0 F0.1;向左加工 N160 G01 Z-30.0 F0.2;向下加工 N170 G00 X-30.0 Z5.0;快速移动到起始点 N180 M30;程序结束 ``` 解释: - 第1行:程序开始 - 第2行:初始设定,包括取消刀具半径补偿(G40)、绝对坐标(G90)和毫米进制(G70) - 第3行:选择刀具1并换刀 - 第4行:快速移动到起始点(X轴-30.0,Z轴5.0) - 第5行:以0.2的进给率向下加工(Z轴-10.0) - 第6行:向右加工(X轴-20.0) - 第7行:向下加工(Z轴-20.0) - 第8行:向左加工(X轴-25.0) - 第9行:向下加工(Z轴-30.0) - 第10行:快速移动到起始点 - 第11行:选择刀具2并换刀 - 第12行:快速移动到起始点 - 第13行:以0.2的进给率向下加工(Z轴-10.0) - 第14行:向右加工(X轴-20.0) - 第15行:向下加工(Z轴-20.0) - 第16行:向左加工(X轴-25.0) - 第17行:向下加工(Z轴-30.0) - 第18行:快速移动到起始点 - 第19行:程序结束 注意:以上代码仅供参考,具体的数控车床编程需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值