作为一个数据控,爱好各类实时数据,最近在用 HTML5 把天朝区土鳖的气象雷达图去土鳖化,比如:
经过 HTML5 拖下来一堆算法撸过以后变成:
由于 Canvas CORS 的的限制,必须把图片爬下来放到同域名上,经过一番折腾撸出这样一个脑洞略大的方案:
找了一圈国外免费的云服务,能访问 nmc.gov.cn 的也就只有 GAE 。
天朝目前有 167 个气象雷达站,平均 10 分钟更新一帧(部分是 5 分钟),每帧 35k ,一天会产生 800M+的数据,GAE 是放不下的,于是用 GitHub API 放 GitHub Pages 上。
同时需要产生 json 文件供前端调用,撸了一圈发现 GAE 的 datastore quota 最多爬 3 次就会被撑爆,于是又用 GitHub API 把 commit 后的 git tree 拖回 GAE 当数据库用。
每个站要在百度地图上放叠加层,需要知道中心的经纬度,以及每帧数据的范围。之前爬到一个内部的 xml ,有所有站点的坐标,于是很愉快的解决了。数据范围没有现成的数据,于是顺便写了个简单的 OCR 算法从图片上识别出来。最后这些数据和爬虫爬到的整合,生成一个 json 文件供前端调用。
目前是 GAE 上跑两个 application 分时爬(一个 application 的 bandwidth quota 只够爬半天),GitHub 的 Repo 一天一清,避免超过 1GB 大小的限制被和谐。
数据有保障了,又可以愉快的把前端撸完早日上线。
爬虫源码:
https://github.com/catx-weather/radar-bot
爬虫数据:
https://github.com/catx-weather/data
OCR 脚本:
https://github.com/catx-weather/frame-range-ocr
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/127110
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.