Python+ArcGIS进行北京市出租车轨迹点的展示

作者:WenWu_Both

出处:http://blog.csdn.net/wenwu_both/article/

版权:本文版权归作者和CSDN博客共有 

转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文链接;否则必究法律责任

数据源:微软研究院.出租车数据  下载地址:https://www.microsoft.com/en-us/research/publication/t-drive-trajectory-data-sample/

本篇博文要完成的工作主要是:

1、将上述数据(8911个txt文件)转化成1个csv表

2、将csv表导入ARCGIS进行轨迹点展示

第1步工作:

我们借助Python完成,直接上代码:

# -*- coding: utf-8 -*-
# 批量读取微软出租车数据
# Python 2.7
import os
import csv
# 遍历指定目录,显示目录下的所有文件名
def eachFile(filepath): 
    pathDir =  os.listdir(filepath);
    pathtxt_list = [];
    for allDir in pathDir:
        child = os.path.join('%s%s' % (filepath, allDir));
        pathtxt_list.append(child.decode('gbk')); # .decode('gbk')是解决中文显示乱码问题
    return pathtxt_list;

# 定义读取txt函数
def readFile(filename):
    fopen = open(filename, 'r'); # r 代表read
    f_list = [];
    for eachLine in fopen:
        f_list.append(eachLine.strip('\n')); # 注意别忘了去掉换行符'\n'
    fopen.close();
    return f_list;
    
# 定义csv保存文件
def csvsave(taxi_list_1):
    with open('taxi.csv','wb') as myFile:
        myWriter=csv.writer(myFile);
        myWriter.writerow(['taxi_id','date_time','lon','lat']);
        myWriter.writerows(taxi_list_1);
# 主程序
pathtxt_list = eachFile("C:\\Users\\JiaoTong\\Desktop\\Microsoft Data\\");
taxi_list = [];
for filename in pathtxt_list:
    print filename,'导入成功';
    f_list = readFile(filename);
    # taxi_list.append(f_list); # 以整个list添加
    taxi_list.extend(f_list); # 一条条的合并
taxi_list_1 = [];
for taxi in taxi_list:
    taxi_list_1.append(taxi.split(','));
csvsave(taxi_list_1)

执行完上述程序,得到北京市出租车的轨迹点CSV表–
taxi.csv

第2步工作:

(1)首先下载好北京市的地图背景文件(搜索“地图下载器”),将其做成瓦片地图。

(2)打开“ArcMap”,加载上北京市的背景地图,如下图:

《Python+ArcGIS进行北京市出租车轨迹点的展示》

(3)将taxi.csv文件加载进ArcMap,“显示XY数据”-“确定”,将轨迹点显示出来:

《Python+ArcGIS进行北京市出租车轨迹点的展示》

《Python+ArcGIS进行北京市出租车轨迹点的展示》

(4)选中该图层,“数据”-“导出数据”将图层保存为.shp文件,重新加载.shp文件,删除原csv图层,保存成.mxd文件,下次直接点开.mxd文件即可。

《Python+ArcGIS进行北京市出租车轨迹点的展示》

《Python+ArcGIS进行北京市出租车轨迹点的展示》

《Python+ArcGIS进行北京市出租车轨迹点的展示》


OK,大功告成,最后再次感谢微软研究院。


[1] Jing Yuan, Yu Zheng, Xing Xie, and Guangzhong Sun. Driving with knowledge from the physical world. In The 17th ACM SIGKDD international conference on Knowledge Discovery and Data mining, KDD’11, New York, NY, USA, 2011. ACM.
[2] Jing Yuan, Yu Zheng, Chengyang Zhang, Wenlei Xie, Xing Xie, Guangzhong Sun, and Yan Huang. T-drive: driving directions based on taxi trajectories. In Proceedings of the 18th SIGSPATIAL International Conference on Advances in Geographic Information Systems, GIS ’10, pages 99-108, New York, NY, USA,2010. ACM.

    原文作者:WenWu_Both
    原文地址: https://blog.csdn.net/wenwu_both/article/details/70160156
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞