美文网首页
城室小站站首语, 及Trick001

城室小站站首语, 及Trick001

作者: 城室科技 | 来源:发表于2020-03-11 15:35 被阅读0次

    城室小站站首语, 及Trick001


    站 首 语


    首先,很久没有自己写小短文了。其次,建个小站的想法由来已久。

    城市数据研究是这几年比较火热的领域,但在我2013年左右刚接触这些方面的内容,并尝试引入城市研究中的时候,甚至可以完全理解为“误入歧途”。从data visualization,到data mining,甚至到后面的deep learning,各种各样的技能型知识铺面而来,自己从一个“画图迷”成了“数据迷”。其实本质上我依然很喜欢设计,但它所能带来的快乐往往只停留在灵感火花迸发的那一刻而已,其后将伴随着冗长、乏味的机械劳动和工作。但凡做设计的人或许都见过凌晨4点的城市和屏幕上的cad或者ps吧?事后想来,码代码则反馈机制高很多,可能对我来说更容易产生比较快的响应和愉悦吧。

    其实这已经不稀奇了,周围有越来越多的伙伴、朋友走上了这条路,而且自从开了公司之后,越发觉得自己已经开始落伍了。就在这很多的技术内容离我远去的时候,希望在还没有彻底遗忘前,把自己知道的一些内容分享给大家,是这个小站建设的初衷。因为自己当初学习的时候也深受各类免费、甚至开源的教程的帮助,所以自己也一直希望可以建立一个小站,分享一些tricks给和我一样设计背景又喜欢城市数据的朋友。

    结合团队的实际情况,我们会尽量保证每个月出2篇关于数据、可视化的小技巧。今后的内容会有一定的连续性,随时欢迎朋友加入我们的分享,也欢迎朋友们就关心的内容提出建议。

    第一站:设计思路搞数据研究怎么起步?

    其实就和背GRE单词一样,开头ABC的单词总是背的比较熟悉,越到后面就越惨不忍睹。设计背景的出身搞数据研究基本上 learning curve 非常陡峭,可能还没有入门就被踢出门了。身边也有很多朋友问是否有什么捷径,通常我的回答是仰仗“热情”,因为自己也是一步一坑的学了各种各样三脚猫的东西。但今天既然说了要写一些分享的内容,我觉得还是可以总结一些基本的原则:

    A 不求甚解

    顾名思义,不要追求把某一part学通,因为这是不可能也没必要的。就像python本身就是glue language一样,coding大部分就直接拿来主义好了,写代码先从抄代码搞起,而且即使一开始看不懂每一行所有的内容也不要太纠结,先把自己要的内容搞出来再说。以后在用pdb之类的逐行学习就可以了。

    B 先学着跑再学走

    还没学会走就打算跑?没错。个人一直认为英语和脚本是一回事,前者是人和世界沟通的工具,后者是人和机器沟通的工具。所以学英语的很多技巧可以嫁接过来。最好的学英语的时段通常是小孩3岁左右的时候,本来就是通过不断的实战来学习,而不是从单词语法来开展。倘若抱着“今天搞懂个真随机假随机,明天看个深拷贝浅拷贝,总有一天可以学好”的想法来开展工作,那估计永远不会开展下去。实战是检验个人的最好也是惟一的方法

    C 胸有大略

    当我们要开展一个project的时候,需要明确几个方面的内容:数据源?算法?可视化?还有一些相关的问题,比如硬件够不够用,云平台要不要买一个之类。至今依然还记得自己曾经很兴奋的用processing花了一晚上的时间搞了一张infographics,觉得也算是学了点java,结果第二天一早起来发现 Excel 居然有同样的可视化的模板!这件事充分说明了在开展工作前,最好能充分的了解有哪些工具包可以直接使用,不要重复造轮子。因为你的核心目的是完成项目计划,而不是掌握某种技术本领,技术是会飞速演变的。

    再举个例子,基本的数据获取可以写个爬虫,现在网上 requests, bs4 这些教程一搜一大堆,封ip的问题也有很多高人指点;可视化就看是否需要交互了,如果需要交互稍微复杂一些,当然也可以用kepler简单高效(我们会在后续的内容中给大家介绍我们使用各类工具的心得和体会),硬件的话就是丰俭由人的事情了,如果不是太挑剔的话尽量给自己搞一台云服务器+本地计算+手中编写笔记本的三件套组合吧,这样比较适合基本的开发和云部署。我在我的知乎live上也提供过一份基本的技术工具清单,有兴趣的朋友可以去看。AI的数据如果有接口或者平台,那就直接用之,要啥自行车,比如可以直接用我们的[CITYFACE]小程序获得一些基本的分析。

    D 学好英语

    不得不承认英语比中文在查资料方面有用太多了,毕竟世界上70%+的网页都是用英文写的。即使你英文不好,但起码得知道一些基本的专有名词和中文的对应关系,不然在很多时候debug几乎成了不可解的难题。这里列举一些,比如:regular expression / wildcard(正则表达式);数据表里的 join, merge, clip, difference, erase, dissolve 等等;还有各类动词:dump、escape、iterate、parse、deprecate、sampling、inherit、derive等等;还要各类名词:socket、dict、init、module;这些不胜枚举的keyword是自己完成debug的基础,有时候自己需要寻找的答案往往只差几个关键词而已。我至今依然记得在遥远的读书时代 advisor Tunney Lee 在听完我一通废话连篇的解释之后,就瞬间报出来一个"paradigm shift",并且很快google出一大堆相关内容,这不就是今天某胖所提的“范式转变”么?(原谅鄙人的无知)其实如果不求职的话,github倒未必非要自己搞一个,不过搞个自己的website,放点test的东西倒是很有必要。

    Trick 001 变形地图

    很多人可能见过这张或者类似的图,其本质就是通过面积变形来展示美国大选的选举人票的分布不均。

    当第一次看到这图的时候可能给人的感觉很cool,也很想知道这个map是如何做出来的,但完全无从知道。

    我是怎么做的呢?

    1 先试着google以图搜图的方法,直接利用这张图进行搜索,简单粗暴但是有效果

    2 接下来,尝试从检索结果中找出相应的关键词,重点找出这类图叫什么名字,你要相信它必然有学名,类似treemap,spider map之类

    3 比如在这里我们可以看到这个关键词:cartogram

    4 测试一下这个关键词是不是灵验,hmmm看起来不错

    5 然后再搜一下怎么画这图呗

    6 点击第一个link,接下来就又要感谢强大的 stack overflow

    7 这里基本上可以知道所有的相关信息了。

    比如你可以找到相关的paper:

    又比如你可以看到俩小工具

    又比如看到D3也有包,那就可以搞的很兼容了:

    等一下, 甚至还有更简单直接的方案:

    QGIS 有直接的插件,这不是轮子都早就造好了吗?!

    8 之后的流程就可以绕开写代码,转而纯走GUI路线了(也就是上面所说的不要重复造轮子):

    9 在plugin里面找到这个工具,然后给安装上:(附上Qgis的安装地址:https://qgis.org/en/site/

    10 然后简单测试一下,Add demo layer:

    11 最后执行命令:

    12 Bingo,就可以得到你要的结果了:

    所以,有时候代码很有用,也有的时候,找到工具也挺好。

    文/刘浏 2018-07-30

    相关文章

      网友评论

          本文标题:城室小站站首语, 及Trick001

          本文链接:https://www.haomeiwen.com/subject/yqvcjhtx.html