您的位置:首页 > 编程语言 > Python开发

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

2017-04-13 17:26 197 查看
作者: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”,加载上北京市的背景地图,如下图:



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





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







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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: