HeatHash
地図 Twitter NoSQL JPEG
HeatHashってなに?

• 世界中でつぶやかれている
Tweetをヒートマップに表示
するシステムです。


• 僕がKLabに入ったきっかけ
です。
キーポイント
• Tokyo Cabinetで地理情報を扱っ
 てみました。


• keyを工夫してます。GeoHashの
 変形です


• HornetQを使ってみました。



• Nettyを使ってみました。



• JPEGをバイトデータの結合だけ
 で作ってみました。
目標にしたこと

• 軽い


• 速い


• スケーラブルっぽい


• NoSQL使ってみよう
構成

クローラ    TCストアPG タイル画像サーバ




   HornetQ    TC
こんなサーバーで動かして
     ます
• Dell Dimension9150


• メモリ4GB



• PentiumD2.8GHz DualCore


• CentOS5.4 64bit


 !

• の上のOpenVZ仮想マシン


• 物理マシンの半分くらいのリソース
 を割当
クローラ部分

• Twitter Streaming APIを使ってます


• tweet垂れ流しのAPI


• Rubyのプログラムで受信して位置情報を持っ
 てるのだけHornetQに送信
HornetQ
• Javaメッセージングシステム


• RubyとはSTOMPを使って連携


• 疎結合を目指してみた


• tweetを受け取るRubyプログラムとTCに格納
 するJavaプログラムを結合
TCにストアする部分

• Javaで作成


• tweetに含まれるキーワードをAC法で分類


• TCの空間キーが一致するデータをインクリメ
 ント
NoSQLと地理情報
• NoSQL>単一のキーの検索は高速


• 二つの座標(X,Y)をどうやって一つのキーで扱うか?


• そこでGeoHash
キーの設計1
 Lat 35.661913            1691547476
Lon 139.700943            3814180817
        メルカトル投影して整数化
     1101>01010001のように1bitづつ間をあけて、
     Lonだけ1左シフトして論理和する。


空間インデックス                   -4892471399664340206

        左から一致しているビットが多いほど
        近いエリアにある点
キーの設計2
• キーワードID+地図のズームレベル+空間イン
デックス=TCのキー


• このキーの範囲検索により、地球上の1タイル
領域を選択できる。


• TCで使ったのはBツリーDB
Netty
• JavaのNIOクライアントサーバーフレームワー
ク


• 非同期イベント駆動でハイパフォーマンスでハ
イスケーラブル


• これで画像だけ送出するHTTPサーバーを作成
した
JPEG生成
• データ構造


• 作る画像 256x256決めうち 8x8のグリッド


• ヘッダはそのまま


• MCUの大きさとRSTブロック
JPEGの構造

    ヘッダ         画像データはMCU単位
                でDCT、量子化、ハフ
  量子化テーブル
                マン符号化される。
ハフマン符号化テーブル     MCUは前のMCUと関連
 MCU RST 繰り返し   しており、RSTでリ
                セットされる。
     EOI
JPEG生成の処理
• ヘッダと量子化テーブル、ハフマンテーブル
は、あらかじめ用意する


• RSTを必ずMCUの前につければ、用意したバ
イト列の結合だけでJPEG作れちゃうね


• 元になるデータはGimpで作成してバイナリエ
ディタで加工したよ
この方法の利点
• 画像を展開するメモリがいらな
 い 256x256x4=262144 > 10000
 !

• 画像を描画する処理がいらない


• JPEG変換の処理がいらない


• 決められたバイト列を使いまわ
 すわけだからキャッシュにも乗
 りやすいよね
というわけで実演
iPadでも見られるよ


• iOS用アプリ作ってみました
地理情報は何が面白い
        か?
• リアルに直結した情報


• スマフォなど端末が普及


• 便利、楽しいの可能性


!

• 位置ゲー作ろうぜ!
次回予告
• ガラケーはムービーメーカーの夢を見るか


• 携帯用Webアプリで動画編集に挑戦!

More Related Content

PPTX
WebGLで浮動小数点テクスチャを扱う話
PDF
2012-03-08 MSS研究会
PDF
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
PDF
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうか
PDF
Debianでタイルマップサービスを作ってみた
PPTX
Spmv9forpublic
PPTX
Archaeo-GIS Workshop Round 7: GPS hands-on
PDF
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
WebGLで浮動小数点テクスチャを扱う話
2012-03-08 MSS研究会
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうか
Debianでタイルマップサービスを作ってみた
Spmv9forpublic
Archaeo-GIS Workshop Round 7: GPS hands-on
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来

What's hot (10)

PDF
20180516 ガチラボ vol.2
PDF
自作GPUへの道
PDF
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
PPTX
PasQポスター
PDF
GPUをJavaで使う話(Java Casual Talks #1)
PDF
Softflowd_49.7d_20160723
PDF
機械学習プロ生20151121
PPTX
Map server入門 - FOSS4G 2012 Hokkaido
PDF
Hyperlapse for Azure Media Servicesを本気で使ってみた
PPTX
農業AIハッカソンマイクロソフト様発表資料
20180516 ガチラボ vol.2
自作GPUへの道
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
PasQポスター
GPUをJavaで使う話(Java Casual Talks #1)
Softflowd_49.7d_20160723
機械学習プロ生20151121
Map server入門 - FOSS4G 2012 Hokkaido
Hyperlapse for Azure Media Servicesを本気で使ってみた
農業AIハッカソンマイクロソフト様発表資料
Ad

Similar to HeatHash (20)

PDF
FOSS4Gで地理空間情報もかんたん
PDF
地理空間とOSGeoとPostGISとを簡単に紹介してみます
ODP
FOSS4G 2012 Osaka
PPTX
Osckyoto2012 osgeojp foss4g
PDF
FOSS4G 2014 Tokyo 基調講演「GSI for All」
PDF
FOSS4Gでオープンデータもかんたん
PDF
電子国土Webシステムのオープン化への取り組み(国土地理院・佐藤壮紀様)
PDF
PinQAでのMongoDB活用事例
PDF
FOSS4G Tokyo2011 発表資料
PDF
Node-REDのworldmapの活用
PPTX
PostGIS Handson | FOSS4G Tokyo 2014
KEY
HexRinger と FOSS4G の紆余曲折
PDF
Community & Activity ~OSGeo財団日本支部とその活動のご紹介~ Prese
PDF
生態系計測研究領域セミナー 20120802
PPTX
FOSS4Gでオープンデータの 可視化にチャレンジ!
PDF
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
PDF
Visualization of the weather data for the smartphone
PDF
130622 osc nagoya_presentation
PDF
世界をかえちゃったかもしれないFOSS4G
PDF
Tile map 2011_foss4g_osaka
FOSS4Gで地理空間情報もかんたん
地理空間とOSGeoとPostGISとを簡単に紹介してみます
FOSS4G 2012 Osaka
Osckyoto2012 osgeojp foss4g
FOSS4G 2014 Tokyo 基調講演「GSI for All」
FOSS4Gでオープンデータもかんたん
電子国土Webシステムのオープン化への取り組み(国土地理院・佐藤壮紀様)
PinQAでのMongoDB活用事例
FOSS4G Tokyo2011 発表資料
Node-REDのworldmapの活用
PostGIS Handson | FOSS4G Tokyo 2014
HexRinger と FOSS4G の紆余曲折
Community & Activity ~OSGeo財団日本支部とその活動のご紹介~ Prese
生態系計測研究領域セミナー 20120802
FOSS4Gでオープンデータの 可視化にチャレンジ!
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
Visualization of the weather data for the smartphone
130622 osc nagoya_presentation
世界をかえちゃったかもしれないFOSS4G
Tile map 2011_foss4g_osaka
Ad

HeatHash