V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
akfish

这几天做的一个爬天朝区气象雷达数据的爬虫,每 10 分钟 500+帧,跑 GAE 存 GitHub

  •  9
     
  •   akfish ·
    akfish · Aug 10, 2014 · 8063 views
    This topic created in 4281 days ago, the information mentioned may be changed or developed.
    作为一个数据控,爱好各类实时数据,最近在用 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
    Supplement 1  ·  Aug 10, 2014
    无级缩放,保留空间分辨率信息,依然是原始数据无插值:
    27 replies    2014-10-18 17:13:51 +08:00
    neoz
        1
    neoz  
       Aug 10, 2014
    虽然没多大 用,但是看起来X格很高!赞!
    mywaiting
        2
    mywaiting  
       Aug 10, 2014
    LZ这么牛逼,你妈知道的吗!赞+1
    leveraging
        3
    leveraging  
       Aug 10, 2014
    帅哭。
    arnofeng
        4
    arnofeng  
       Aug 10, 2014 via Android
    太流弊
    procen424
        5
    procen424  
       Aug 10, 2014
    官方雷达图虽然看上去土鳖,但是像素点的颜色和位置是精确的,结合刻度能读出非常有效的信息。
    30dbZ基本就要下雨了 40dbZ就是短时雷雨大风天气
    这么一处理反倒没法看了。。。
    akfish
        6
    akfish  
    OP
       Aug 10, 2014   ❤️ 1
    @procen424 处理后的位置也是精确对齐的,花了不少精力保证爬到能用来保证对齐精度的数据。
    像素的颜色只是换了套伪彩方案而已,数据依然是用的原始数据,并且能保留空间分辨率无级放大。
    后面会加上交互,鼠标到任意点就能获得该点dBz大小,比官方的易读得多了。
    akfish
        7
    akfish  
    OP
       Aug 10, 2014
    @procen424 见append。
    chenillen
        8
    chenillen  
       Aug 10, 2014
    github 服務掛了肯定是因為這個 project 的!lz 贊!!!
    glogo
        9
    glogo  
       Aug 10, 2014
    赖斯啊!
    WangYan
        10
    WangYan  
       Aug 10, 2014
    点个赞,若提示dBz大小,就真的比官方的易读多了
    scylla
        11
    scylla  
       Aug 11, 2014 via iPad
    lZ, Tai Niue be le, zan!
    vbs
        12
    vbs  
       Aug 11, 2014
    nb。。。。
    lz你那还有其他数据?
    lcj2class
        13
    lcj2class  
       Aug 11, 2014 via Android
    等会必须fork
    wzb350
        14
    wzb350  
       Aug 11, 2014
    不明觉厉
    superbear
        15
    superbear  
       Aug 11, 2014
    真厉害,居然把gitgub当数据库用!
    valianliu
        16
    valianliu  
       Aug 11, 2014
    坐等前段上线,太流弊了。
    KillAd
        17
    KillAd  
       Aug 11, 2014
    能做成站点上线上来才是大家最期待的吧
    hao1032
        18
    hao1032  
       Aug 11, 2014
    GAE的数据库是不给力,以前爬了几天的数据想删除。到现在已经删了2天了,删一会就提示配额不足,然后只能等到第二天继续删。 哭。。。。。。。。。。。
    procen424
        19
    procen424  
       Aug 11, 2014
    @akfish 棒!期待早日上线
    0065paula
        20
    0065paula  
       Aug 11, 2014
    不知道楼主有没有玩过 caiyunapp.com ?也是获取是实时雷达数据,用来看什么时候雨停还不错。
    openroc
        21
    openroc  
       Aug 11, 2014
    @hao1032, 多弄几个GAE,轮流爬。:)
    akfish
        22
    akfish  
    OP
       Aug 11, 2014
    @0065paula 不错的app,我目前侧重交互和数据可视化,多增加几种数据源后才会开始做预报算法。
    akfish
        23
    akfish  
    OP
       Aug 11, 2014
    @vbs 目前只是雷达,这个做完善后再爬别的。
    no13bus
        24
    no13bus  
       Aug 11, 2014
    @akfish 数据可视化,楼主玩 http://processingjs.org/
    吗?
    akfish
        25
    akfish  
    OP
       Aug 11, 2014
    @no13bus 小玩过,还没在项目里用过。
    hao1032
        26
    hao1032  
       Aug 12, 2014
    @openroc 我是删除数据
    crossmaya
        27
    crossmaya  
       Oct 18, 2014
    不错,mark!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2514 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 08:14 · PVG 16:14 · LAX 01:14 · JFK 04:14
    ♥ Do have faith in what you're doing.