OpenStreetMap Data Case Study

 OpenStreetMap Data Case Study

---

地图区域

portland, TX, United States

https://www.openstreetmap.org/relation/127875

选择区域时遇到的问题

一开始选择了北京区域来进行项目,但到后面清洗数据的时候,遇到一个问题,但可考虑到python读取中文需要转码,学习此数据课程前完全没有接触过编程,因此还是选择了美国的城市,感觉会更容易些。之后有时间会尝试用mangoDB数据库研究北京区域的数据。

获得样本文件

从原始 OSM 区域中获取系统的元素样本,k越大,样本文件越小。

修正街道名称

使用正则表达式对发现的实际问题添加映射。

数据导入SQL后,一些基本查询显示街道名称缩写和expected中的街道类型不同。应依照expected纠正街道的名称,选择不使用正则表达式。

统一电话号码格式

    def update_phone_num(phone_num):

        m = phone_num_re.match(phone_num)

        if  m is None:

        ......

导出为csv文件

解析OSM XML文件中的元素,将这些元素从文档形式转换为表格形式,再写入 .csv 文件。

将csv文件导入数据库

这里我用DB browser for sqlite,把csv文件导入sql数据库。

数据概述和补充意见

文件大小

    portland_oregon.osm ......... 1.62 G

    P3.db .......... 939.6 MB

    nodes.csv ............. 633.8 MB

    nodes_tags.csv ........ 11.2 MB

    ways.csv .............. 60.7 MB

    ways_tags.csv ......... 157.6 MB

    ways_nodes.cv ......... 186.4 MB

nodes的数量

    QUERY = "SELECT COUNT(*) FROM nodes"

    [(6756791,)]

ways的数量

    QUERY = "SELECT COUNT(*) FROM ways"

    [(876817,)]

独立用户数的数量

    QUERY = "SELECT COUNT (DISTINCT(e.uid)) FROM (SELECT uid FROM nodes UNION ALL SELECT uid FROM ways)e;"

    [(1491,)]

只出现一次的用户的数量

    QUERY = "SELECT COUNT(*) FROM (SELECT e.user, COUNT(*) as num FROM (SELECT user FROM nodes UNION ALL SELECT user FROM ways) e GROUP BY e.user HAVING num=1)  u"

    [(289,)]


贡献最大的10名用户

    QUERY = "SELECT e.user,COUNT(*) as num FROM (SELECT user FROM nodes UNION ALL SELECT user FROM ways)e GROUP BY e.user ORDER BY num DESC LIMIT 10"

    [(u'Peter Dobratz_pdxbuildings', 1949443), (u'lyzidiamond_imports', 1896180), (u'Mele Sax-Barnett', 559609), (u'baradam', 541141), (u'Darrell_pdxbuildings', 430582), (u'cowdog', 362994), (u'Peter Dobratz', 320534), (u'Grant Humphries', 295009), (u'justin_pdxbuildings', 116528), (u'amillar-osm-import', 106857)]


下面是一些用户贡献百分比统计信息:

1.顶级用户贡献率(“Peter Dobratz_pdxbuildings”)25.54%;

2.结合前2用户贡献(“Peter Dobratz_pdxbuildings”和“lyzidiamond_imports”)50.38%;

3.综合排名前10位的用户贡献86.18%;

4.只贡献一次的用户占总用户的19.38。

什么类型的商店最多(top10)

    QUERY = "SELECT value,COUNT(*) as num FROM nodes_tags WHERE key='shop' GROUP BY value ORDER BY num DESC LIMIT 10"

    [(u'convenience', 208), (u'hairdresser', 159), (u'clothes', 148), (u'beauty', 119), (u'car_repair', 70), (u'mobile_phone', 69), (u'supermarket', 48), (u'optician', 41), (u'bakery', 37), (u'hardware', 37)]

便利店最多,其次是发廊、服装店、美容院、汽车修理厂、手机店、大超市、眼镜店、面包店、五金店。结果还是符合预想的。

宗教信仰

    QUERY = "SELECT nodes_tags.value,COUNT(*) as num FROM nodes_tags JOIN (SELECT DISTINCT(id) FROM nodes_tags WHERE value='place_of_worship') i ON nodes_tags.id=i.id WHERE nodes_tags.key='religion' GROUP BY nodes_tags.value ORDER BY num DESC"

    [(u'christian', 553), (u'buddhist', 5), (u'jewish', 2), (u'muslim', 2), (u'unitarian_universalist', 2), (u'eckankar', 1), (u'hindu', 1), (u'sikh', 1)]

宗教是美国文化中非常显著的一部分,。美国绝大多数人信奉基督教,但其他各种宗教也同时并存。

十大最受欢迎的菜

    QUERY = "SELECT nodes_tags.value,COUNT(*) as num FROM nodes_tags JOIN (SELECT DISTINCT(id) FROM nodes_tags WHERE value='restaurant')i ON nodes_tags.id=i.id WHERE nodes_tags.key='cuisine' GROUP BY nodes_tags.value ORDER BY num DESC LIMIT 10"

    [(u'pizza', 66), (u'mexican', 49), (u'thai', 36), (u'american', 34), (u'chinese', 33), (u'italian', 16), (u'sushi', 16), (u'burger', 15), (u'japanese', 15), (u'asian', 13)]

看来,波特兰k人最喜欢吃披萨,中餐也有很好的市场。

建议:

建立反馈激励机制,鼓励用户提交新数据和更新旧数据

好处:

给用户反馈,能让更多的用户更多的给地图贡献数据,地图数据量得以保证;2.适当的激励机制,能增加数据的可靠性,旧数据及错误数据也能得到更新。

预期的问题:

新用户增多,前期不熟悉产品,可能会带来很多的错误数据和重复数据;2.可能会增加维护成本。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容