整理第十六届全国大学智能车竞赛比赛数据

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整理第十六届全国大学智能车竞赛比赛数据相关的知识,希望对你有一定的参考价值。

简 介: 整理提交了第十六届全国大学生智能车总决赛的数据。

关键词 智能车竞赛总决赛

数据格式转换
文章目录
格式要求
数据来源
表格种类
数据文件整理
整理方案
整理过程
总 结

 

§01 据格式转换


1.1 格式要求

  根据中国高等教育学会统计2021年全国大学生课外科技活动要求,上载比赛的EXCEL表格为:

【表1-1 上载EXCEL表格格式】

作品编号作品名称学校名称学生1姓名学生2姓名学生3姓名学生4姓名学生5姓名学生6姓名学生7姓名学生8姓名队名专业名称学院名称指导老师1指导老师2奖项名称竞赛组别竞赛类别备注

1.1.1 填表说明

  1. 奖项各竞赛自行设定,可含单项奖或专项奖。
  2. 组织奖、优秀指导教师奖等可另行设定。
  3. 组别:指研究生、本科、高职高专、中职、教师。
  4. 类别:有些竞赛有分类,如:广告设计竞赛的平面类、动画类等。
  5. 部分竞赛有作品编号、作品名称名称,如挑战杯等。
  6. 学校名称、奖项为必填项。可添加多个学生、指导老师单元格,但请不要破坏上方表格。
  7. 如果团队中学院和专业每个人不同,以领队为准,如果没有领队以多数的学院为准

1.2 数据来源

比赛竞赛组别竞赛类别奖项名称学校名称队伍名称学生指导教师
分赛区竞速比赛八个竞速组别分赛区比赛
分赛区创意比赛三个创意组比赛分赛区比赛
全国竞速总决赛八个竞速组别全国总决赛
全国创意总决赛三个创意组比赛全国总决赛
RT-Thread创新组一个组别创新组比赛

1.2.1 数据项填充转换

  提交的竞赛数据表格,并不是所有的表格项在智能车竞赛报名表格中都有,下面是对于提交数据表格项进行数据定义。

数据项转换:
作品编号:对于一张表格排序从1到N
作品名称:智能车模
学校名称:参赛队伍报名学校
学生名称:学生名称 1 ~ 5人
队伍名称:队伍名称
专业名称:NULL
学院名称:NULL
指导教师:指导教师1 ~ 2 人
奖项名称:一等奖 ~ 三等奖
竞赛组别:竞速八个组别,创意三个组别,RT-Thread创新将
竞赛类别:分赛区比赛,全国总决赛
备注:NULL

1.3 表格种类

  总共生成以下五张表格:

  • 全国总决赛竞速组别:包括八个竞速比赛的奖项,一等奖,二等奖
  • 全国总决赛创意组别:包括三个组别;一等奖,二等奖,三等奖;
  • 分赛区比赛竞速组别:包括八个竞速组别奖项:一等奖,二等奖,三等奖,优胜奖
  • 分赛区比赛创意组别:包括三个组别:一等奖,二等奖,三等奖;
  • RT-Thread创新组别:一个组别

 

§02 据文件整理


2.1 整理方案

  整理过程分为两个步骤:

  • 第一步: 将原始的EXCEL表格整理成中间格式:
    • 文件格式:TXT文件;
    • 每一行定义: 分赛区/总决赛、奖项、组别、学校、队伍、指导教师(2)、学生(5)
    • 文件个数:五类,按照【1.3:表格种类】定义。
  • 第二步: 将中间文件生成最终提交格式文件。
    • 对于中间文件按照奖项进行排序;
    • 生成最终提交EXCEL表格文本文件;

2.2 整理过程

2.2.1 整理所在目录

  整理数据所在目录: H:\\SmartCar\\2021\\Awards

  目录的格式:

├─RT-Thread专项奖
├─全国总决赛
├─分赛区比赛
│  ├─东北
│  ├─华东
│  ├─华北
│  ├─华南
│  ├─安徽
│  ├─山东
│  ├─广东
│  ├─浙江
│  └─西部
├─创意组-分赛区
├─创意组全国总决赛
└─数据整理过程

2.2.2 整理文件过程

(1)数据预处理

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# PROCAWARD.PY                 -- by Dr. ZhuoQing 2021-12-25
#
# Note:
#============================================================

from headm import *                 # =

#------------------------------------------------------------

awardname = 1:'Ò»µÈ½±', 2:'¶þµÈ½±', 3:'ÈýµÈ½±', 4:'ÓÅʤ½±', 5:'´´Ð½±'
levelname = 'È«¹ú×ܾöÈü':'all', '·ÖÈüÇø±ÈÈü':'division',
             '°²»ÕÈüÇø':'anhui', 'ɽ¶«ÈüÇø':'shandong', 'Õã½­ÈüÇø':'zhejiang',
             '¹ã¶«ÈüÇø':'guangdong', '¶«±±ÈüÇø':'dongbei',
             '»ª±±ÈüÇø':'huabei', '»ª¶«ÈüÇø':'huadong',
             '»ªÄÏÈüÇø':'huanan', 'Î÷²¿ÈüÇø':'xibu'

groupname = '½ÚÄÜÐűê×é':'energe',
             '»ù´¡ËÄÂÖ×é':'wheel4',
             'µ¥³µÀ­Á¦×é':'bicycle',
             'Ë«³µ½ÓÁ¦×é':'relay',
             'ÖÇÄÜÊÓ¾õ×é':'aivision',
             'ר¿Æ»ù´¡×é':'basic',
             'È«ÏòÐнø×é':'mecanum',
             'µç´ÅÔ½Ò°×é':'crosscountry',
             'Öǻ۽»Í¨' : 'traffic',
             'Öǻ۲ÍÌü' : 'canteen',
             'ÖÇ»ÛÎïÁ÷' : 'logistrics'

#------------------------------------------------------------
level = '°²»ÕÈüÇø'
group = 'ר¿Æ»ù´¡×é'

stringid = 45

#------------------------------------------------------------
_ = tspgetdopstring(-stringid)
alllines = [l for l in clipboard.paste().split('\\r\\n') if len(l.replace('\\t', '')) > 0]
printf(alllines)

#------------------------------------------------------------
'''
for l in alllines:
    printt(l.split('\\t'))
'''
#------------------------------------------------------------

data = []
for l in alllines[1:]:
    l = l.split('\\t')
    if len(l) < 10:
        award = l[-2]
        if award.find('Ò»') >= 0: award = 'Ò»µÈ½±'
        elif award.find('¶þ') >= 0: award = '¶þµÈ½±'
        elif award.find('Èý') >= 0: award = 'ÈýµÈ½±'
        else: award = 'ÓÅʤ½±'

        university = l[1]
        team = l[2]
        teachers = ','.join(('',''))
        students = ','.join(('','',''))
        item = (level, award, group, university, team, teachers, students)
    else:
        award = l[-1]
        university = l[1]
        team = l[2]
        teachers = ','.join((l[4],l[5]))
        students = ','.join((l[6],l[7],l[8]))
        item = (level, award, group, university, team, teachers, students)


    printt(item:)
    data.append(item)

#    break

npzname = "%s%s"%(levelname[level], groupname[group])
tspsave(npzname, data=data)
#------------------------------------------------------------
time.sleep(.1)
data = tspload(npzname, 'data')
printt(data:)

#------------------------------------------------------------
#        END OF FILE : PROCAWARD.PY
#============================================================

(2)数据合成

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# ALLMERGE.PY                  -- by Dr. ZhuoQing 2021-12-25
#
# Note:
#============================================================

from headm import *                 # =

data0 = tspload('anhuiwheel4', 'data')
data1 = tspload('anhuirelay', 'data')
data2 = tspload('anhuimecanum', 'data')
data3 = tspload('anhuienerge', 'data')
data4 = tspload('anhuicrosscountry', 'data')
data5 = tspload('anhuibicycle', 'data')
data6 = tspload('anhuiaivision', 'data')
data7 = tspload('anhuibasic', 'data')


#------------------------------------------------------------
alldata = []
dataall = [data0,data1,data2,data3,data4,data5,data6,data7]

for d in dataall:
    for item in d:
        alldata.append(item)

#------------------------------------------------------------
awardname = 1:'Ò»µÈ½±', 2:'¶þµÈ½±', 3:'ÈýµÈ½±', 4:'ÓÅʤ½±', 5:'´´Ð½±'

#------------------------------------------------------------
def award2index(asd):
    try:
        return list(awardname.values()).index(asd)
    except:
        return 99

sortdata = sorted(alldata, key=lambda x:award2index(x[1]))

#------------------------------------------------------------
tabletext = '×÷Æ·±àºÅ    ×÷Æ·Ãû³Æ    ѧУÃû³Æ    ѧÉú1ÐÕÃû    ѧÉú2ÐÕÃû    ѧÉú3ÐÕÃû    ѧÉú4ÐÕÃû    ѧÉú5ÐÕÃû    ѧÉú6ÐÕÃû    ѧÉú7ÐÕÃû    ѧÉú8ÐÕÃû    ¶ÓÃû    רҵÃû³Æ    ѧԺÃû³Æ    Ö¸µ¼ÀÏʦ1    Ö¸µ¼ÀÏʦ2    ½±ÏîÃû³Æ    ¾ºÈü×é±ð    ¾ºÈüÀà±ð    ±¸×¢'.split()

#------------------------------------------------------------
def title2id(t):
    try:
        return tabletext.index(t)
    except:
        return len(tabletext) - 1

printt(title2id('×÷Æ·±àºÅ'))

#------------------------------------------------------------
def item2table(item, id):
    tdim = ['']*len(tabletext)


    tdim[title2id('×÷Æ·±àºÅ')] = str(id)
    tdim[title2id('×÷Æ·Ãû³Æ')] = '¾ºËÙÖÇÄܳµ'
    tdim[title2id('¾ºÈü×é±ð')] = item[2]
    tdim[title2id('¾ºÈüÀà±ð')] = item[0]
    tdim[title2id('½±ÏîÃû³Æ')] = item[1]
    tdim[title2id('ѧУÃû³Æ')] = item[3]
    tdim[title2id('¶ÓÃû')] = item[4]

    teachers = item[5].split(',')
    for id,t in enumerate(teachers):
        title = 'Ö¸µ¼ÀÏʦ%d'%(id+1)
        tdim[title2id以上是关于整理第十六届全国大学智能车竞赛比赛数据的主要内容,如果未能解决你的问题,请参考以下文章

第十六届全国大学生智能车竞赛比赛获奖证书格式说明以及下载链接

第十六届全国大学生智能车竞赛全国总决赛线上比赛规范

第十六届全国大学生智能车竞赛竞赛数据统计结果以及闭幕式讲稿

第十六届全国大学生智能车竞赛线上比赛监督裁判培训演练程序

第十六届全国大学生智能车竞赛全部比赛胜利结束了

第十六届全国大学生智能车迅飞智慧餐厅智能车竞赛比赛成绩