“Xiamen Taxi Dataset” 项目简介

The Xiamen taxi trajectory datasets consist one-month trajectory data of almost 5,000 taxicabs in Xiamen, totally about 220 million GPS position records and 8 million live trips. On the time aspect, the dataset covered all the daytime and nighttime on both weekdays and weekends, being able to reflect mobility patterns in heavy, moderate, and light traffic conditions. Paper about a taxi route recommendation systems:   

    Yongxuan Lai, Zheng Lv, Kuan-Ching Li, Minghong Liao: Urban Traffic Coulomb's Law: A New Approach for Taxi Route Recommendation, in IEEE Transactions on Intelligent Transportation Systems, Volume 20, Issue 8, Aug. 2019, Pages 3024-3037.       [PDF]

      Zheng Lv, Yongxuan Lai, Kuan-Ching Li,Minghong Liao and Xing Gao: Taxi Route Recommendation Based on Urban Traffic Coulomb's Law, the 18th International Conference on Web Information Systems Engineering (WISE), 2017

Visualization

The total trip happend from 07:00 a.m. to 08:00 a.m. on July 24th, 2017 (green spot stands for the start location of a trip and red spot stands for the end location of a trip).

Description

The form of the position trajectories is ".dmp" and can be imported into Oracle. The files consist of multiple serialized data units of the following structure, and each data unit is a sample of a taxi's location and time.

The form of the operation trajectories is ".mdf" and can be imported into SQL Server. The files consist of multiple serialized data units of the following structure, and each data unit is a sample of a taxi's trip.

Data Structure

position trajectories

typedef struct _pdata_unit{
   char CLBH;    // Car ID (e.g. 3459271471)
   datetime GPSTIME;     // GPS time (e.g. 2014-07-02 15:31:34)
   double JD;    // Location Longitude (e.g. 24.4752283333333)
   double WD;     // Location Latitude (e.g. 118.024231666667)
   int GD;    // Orientation(Orientation/10, bettwen 0 to 35)
   char SUDU;   // Speed (km/h)
   char JQBH;   // alarm information (including the information on whether the taxi is occupied or not)
} data_unit;

operation trajectories

typedef struct _odata_unit{
   char SIM;    // Car ID  (there is a one-to-one correspondence betwwen _pdata_unit.CLBH and _odata_unit.SIM)
   int GPSONTIME;     // GPS time when the trip start (e.g. 2014-07-01 00:01:17.000)
   int GPSONTIME;     // GPS time when the trip end (e.g. 2014-07-01 00:01:53.000)   
   char SJD;     // Longitude when the trip start (Longitude*10e6, e.g. 118122895)
   char SWD;     // Latitude when the trip start (Latitude*10e6, e.g. 24483057) 
   char SANGLE;  // Orientation when the trip start (Orientation/10, bettwen 0 to 35)
   char EJD;     // Longitude when the trip end (Longitude*10e6, e.g. 118122895)
   char EWD;     // Latitude when the trip end (Latitude*10e6, e.g. 24483057)
   char EANGLE;  // Orientation when the trip end (Orientation/10, bettwen 0 to 35)
   double DISTANCE;    // driving distance of this trip (e.g. 0.2km)
   double MONEY;    // income of this trip (e.g. 9.6)
} data_unit;

 

You are welcome  to contact:  laiyx@xmu.edu.cn.