任务1:赛题任务解析


## 赛题要点

### 算法分析题

### 创意分析题


## 早高峰共享单车潮汐点优化

  • 赛题任务:识别出工作日早高峰07:00-09:00潮汐现象最突出的40个区域,针对Top40区域计算结果进一步设计高峰期共享单车潮汐点优化方案;

  • 赛题数据:共享单车轨迹数据、共享单车停车点位(电子围栏)数据 和 共享单车订单数据;


## 早晚高峰时段综合运力智能调度

  • 赛题任务:针对工作日早高峰乌石浦地铁口附近停车和用车问题,自由进行数据分析和算法模型构建,以共享单车资源合理分配为目标,设计共享单车调度方案;

  • 赛题数据:共享单车轨迹数据、共享单车停车点位(电子围栏)数据、共享单车订单数据、轨道站点进站客流数据、轨道站点出站客流数据 和 轨道站点闸机设备编码数据;


## 绿色慢行交通的友好度评价研究

  • 赛题任务:对密集骑行路段的道路使用情况进行分析研判,主动发现影响城市骑行友好度的因素;

  • 赛题数据:共享单车轨迹数据、共享单车停车点位(电子围栏)数据、共享单车订单数据、轨道站点进站客流数据、轨道站点出站客流数据 和 轨道站点闸机设备编码数据;


## 数据读取与理解

假设我们将比赛数据存在../data/目录下,并引入常见的库:

import os, codecs
import pandas as pd
import numpy as np

PATH = '../input/'

### 共享单车轨迹数据

共享单车轨迹数据为共享单车在使用时候产生的位置定位数据,具体包含单车在不同时间段(默认是15秒记录一次)下的经纬度信息。

  • 读取数据:读取单车轨迹数据:
# 共享单车轨迹数据
bike_track = pd.concat([
    pd.read_csv(PATH + 'gxdc_gj20201221.csv'),
    pd.read_csv(PATH + 'gxdc_gj20201222.csv'),
    pd.read_csv(PATH + 'gxdc_gj20201223.csv'),
    pd.read_csv(PATH + 'gxdc_gj20201224.csv'),
    pd.read_csv(PATH + 'gxdc_gj20201225.csv')

])

# 按照单车ID和时间进行排序
bike_track = bike_track.sort_values(['BICYCLE_ID', 'LOCATING_TIME'])
  • 统计数据
列名称 取值个数 最大值 最小值
BICYCLE_ID 33345
LOCATING_TIME 71957 2020/12/25 9:59:59 2020/12/21 6:00:00
LATITUDE 1536749 24.520172114 24.482147226
LONGITUDE 358613 118.140532887 118.102571145
  • 路线可视化
import folium
m = folium.Map(location=[24.482426, 118.157606], zoom_start=12)
my_PolyLine=folium.PolyLine(locations=bike_track[bike_track['BICYCLE_ID'] == '000152773681a23a7f2d9af8e8902703'][['LATITUDE', 'LONGITUDE']].values,weight=5)
m.add_children(my_PolyLine)

### 共享单车停车点位(电子围栏)数据

共享单车停车点位(电子围栏)数据为规范共享单车停车秩序,统一划定的共享单车停放区域。

  • 读取数据
def bike_fence_format(s):
    s = s.replace('[', '').replace(']', '').split(',')
    s = np.array(s).astype(float).reshape(5, -1)
    return s

# 共享单车停车点位(电子围栏)数据
bike_fence = pd.read_csv(PATH + 'gxdc_tcd.csv')
bike_fence['FENCE_LOC'] = bike_fence['FENCE_LOC'].apply(bike_fence_format)
  • 围栏可视化
import folium
m = folium.Map(location=[24.482426, 118.157606], zoom_start=12)

for data in bike_fence['FENCE_LOC'].values[:100]:
    folium.Marker(
        data[0, ::-1]
    ).add_to(m)
m

### 共享单车订单数据

共享单车订单数据为共享单车使用时开锁和关锁信息的数据。

  • 读取数据
# 共享单车订单数据
bike_order = pd.read_csv(PATH + 'gxdc_dd.csv')
bike_order = bike_order.sort_values(['BICYCLE_ID', 'UPDATE_TIME'])
  • 单车位置可视化
import folium
m = folium.Map(location=[24.482426, 118.157606], zoom_start=12)
my_PolyLine=folium.PolyLine(locations=bike_order[bike_order['BICYCLE_ID'] == '0000ff105fd5f9099b866bccd157dc50'][['LATITUDE', 'LONGITUDE']].values,weight=5)
m.add_children(my_PolyLine)

### 轨道交通数据

  • 数据读取
# 轨道站点进站客流数据
rail_inflow = pd.read_excel(PATH + 'gdzdtjsj_jzkl.csv')
rail_inflow = rail_inflow.drop(0)

# 轨道站点出站客流数据
rail_outflow = pd.read_excel(PATH + 'gdzdtjsj_czkl.csv')
rail_outflow = rail_outflow.drop(0)

# 轨道站点闸机设备编码数据
rail_device = pd.read_excel(PATH + 'gdzdkltj_zjbh.csv')
rail_device.columns = [
    'LINE_NO', 'STATION_NO', 'STATION_NAME',
    'A_IN_MANCHINE', 'A_OUT_MANCHINE', 
    'B_IN_MANCHINE', 'B_OUT_MANCHINE'
]
rail_device = rail_device.drop(0)

## 赛题思路

### 比赛资料



© 2019-2023 coggle.club 版权所有     京ICP备20022947    京公网安备 11030102010643号