孤立森林 实现_孤立森林训练结果并可视化

1.取输入道路的每10min,或者20min,或者30min的平均速度和经过车辆数

def qushu(tablenames,filename1):

result = []

for table_name in tablenames:

print(table_name)

sql_str = "SELECT AVG(\"VELOCITY\"), count(*), count(distinct \"TM_SERIAL\") AS COUNT_TM, " \

"TIMESTAMP WITH TIME ZONE \'epoch\' + " \

"INTERVAL '1 second' * round(extract(\'epoch\' from \"ctime\") / 600) * 600 as timestamp " \

"FROM public.\"{0}\" "\

"where \"osm_id_new\" >= {1} and \"osm_id_new\" <= {2} " \

"GROUP BY timestamp".format(table_name,start_road,end_road)

print(sql_str)

cursor.execute(sql_str)

rows = cursor.fetchall()

for row in rows:

result.append(row)

with open(filename1,'a',newline='') as f:

csv_writer = csv.writer(f)

for i in result:

csv_writer.writerow(i)

2.对取出的数进行处理,取出每个时间段的 前一个时间段和后一个时间段的 速度和车辆数

def parsedata(contents,filename2):

result1 = []

for i in contents:

content = i.replace("\n","").split(',')

list1 = []

avg_velocity = content[0]

count_tm = content[2]

time = content[3].replace("+08:00","")

time = datetime.datetime.strptime(time,'%Y-%m-%d %H:%M:%S')

hour = time.hour

minute = time.minute

hour_minute = int(hour)*6 + int(minute)/10

list1.append(content[3])

list1.append(time)

list1.append(avg_velocity)

list1.append(count_tm)

list1.append(hour)

list1.append(minute)

list1.append(hour_minute)

result1.append(list1)

changdu = len(result1)

result2 = []

for i, val in enumerate(result1):

hour_minute = val[6]

if(i == 0):

if((hour_minute + 1) == result1[i+1][6]):

#与下一个时间点连续

avg_velocity_qian = val[2]

avg_velocity_hou = result1[i+1][2]

count_tm_qian = val[3]

count_tm_hou = result1[i+1][3]

else:

avg_velocity_qian = val[2]

avg_velocity_hou = val[2]

count_tm_qian = val[3]

count_tm_hou = val[3]

val.append(float(avg_velocity_qian))

val.append(float(avg_velocity_hou))

val.append(int(count_tm_qian))

val.append(int(count_tm_hou))

result2.append(val)

elif(i == changdu-1):

if(hour_minute == result1[i-1][6]):

#与上一个时间点连续

avg_velocity_qian = avg_velocity_qian = result1[i-1][2]

a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值