记得小O从大一下半学期刚开始接触科研的时候,负责的项目叫做《基于GIS的武汉市医疗急救站点设置及指挥调度系统优化研究》。那个时候初生牛犊不怕虎,很多关键性的东西都不会就凭着激情硬刚,当时由于时间很紧,还在网吧包夜看过文献....。虽然运气好拿下项目(记得当时小O看到国创审批名单下来的时候,整个人弹起来了),但不仅仅是方法和技术问题,就连数据问题也让小O头疼了很久很久。要急救站点、急救事件的数据,做空间格局的研究。要各种兴趣点(POI)和社会经济属性数据还有行政区划数据做驱动力分析云云。
科研和项目中,有些数据是公开的,比如统计年鉴,比如OSM~知道他们的存在并能够获取和整理是关键;有些数据是半公开的,比如poi、比如微博数据等,需要掌握一定的技术手段去获取它们,比如爬虫技术;有些数据是不公开的,如地理国情普查数据、单位内部数据、商业数据,这个时候得通过购买、合作、社会运作、网络攻击等手段获得;以及有些数据压根还不存在,需要自行生产。如何弄到自己想要的数据是门学问,小O也才刚刚起步。限于技术实力和篇幅,本文集中讨论POI。
POI(point of interests)即兴趣点,是电子地图的重要构成成分,诸如医院、学校、餐厅、超市这样的设置都是POI。在国内,主流的提供POI接口的的地图服务供应商主要为百度和高德两家(小圈的认知也许有局限性),而两家的POI分类标准略有不同。
全国的POI可以在淘宝上买到,大概一类POI就要50~100块了,整套数据还是有点贵的。之前小O还用过网页版的产品,充点钱,把关键词和要爬哪里发给后台,后台爬完后就会把数据发你的邮箱。以及,曾经在CSDN上找了很久,才找到一款总是会崩溃的POI爬取小软件(一次只能爬400)。直接购买、网上找软件存在的三个主要问题:贵、数据不全、爬下来的是百度坐标无法直接使用。
这些问题困扰了小O很久,后来小O编程技术开始提升,学会爬虫后干的第一件事情就是写爬POI的程序,小O写过c#版本的带winform界面的(S-Lab GeoUncoding,也是个很好用的功能挺多的软件,就是后来有些bug自己又懒就弃用了)、Java版本的、python版本的、web版的、matlab版本的(只含坐标转换部分)。
小O在科研和项目中需要用到POI的主要情况为:
①爬取POI后,按行政区统计,作为一个影响因子做驱动力分析等;
②爬取一大堆POI后计算可步行等相关指标;
③爬取POI后对POI本事进行空间格局分析等,也可利用POI研究城市形态或边界;
④地图制图需要;
⑤软件工程需要。
小O在实验室的时候,总是会被要求爬个POI或者转个坐标啥的。虽说在掌握后是个简单工作,但是隔三差五的这样也不是个事。于是小O干脆抽时间完整的把POI爬取中存在的情况再研究了研究,写了一款叫做OSpider的超好用的爬POI软件并详细的写好了用户手册,期间好好练习了练习python(小O之前主要做Java/matlab,研究上转向GeoDataScience后,程序上开始全面转型python+R)。
OSpider这个小软件,对于小O来说不仅仅是个小工具,小O已经把它当成了一款产品在运作,希望OSpider能够切实帮助到大家。下图是用OSpider爬取的武汉市酒店数据。
领取专属 10元无门槛券
私享最新 技术干货