Month: May 2015

CartoDBのアニメーション地図

CartoDBを使うと、時系列データが簡単にアニメーション地図として表示できます。 CartoDBでは、このような地図をトルク地図と呼んでいます。必要なのは、データに日付と時間を示すデータが入っていることです。日付の代わりに、数値を用いることもできます。今回の地図は、自宅の近くの湖と言うか、池の周りの散歩道をGPSを持って歩いた時のデータです。特に何も凝ったことはしていませんが、動きの様子が手に取るようにわかっていただけると思います。 CartoDB本家の方に行くと様々なサンプル地図がありますが、その中から幾つか気に入ったものを紹介します。 クリント・イーストウッドでも有名な、サンフランシスコの「アルカトラズからの脱出」シミュレーション(地図は記事の下の方にあります。 ニューヨークの3空港からの飛行シミュレーション地図 第一次世界大戦中のイギリスの海軍船の動き この他にも沢山の面白い例があります。みなさんもCartoDBを使って自分のデータを地図にしてみませんか?ご質問がある方は、お気軽にinfo@pacificspatial.comまでご連絡下さい。

Posted in CartoDB

CartoDBを使った地図サイトの作り方

データをいかに面白く見せるか、どれだけ多くの人たちにみてもらうかということは、地図を使ったウェブサイトにかぎらず大きなチャンレンジです。CartoDBを使った様々なプロジェクトに私達は取り組んでいますが、今日はその中から特にオモシロイと思ったサイトを参考に作ってみた地図の例をご紹介したいと思います。今回の地図を作るに辺り、そのインスピレーションとなったのが、このニュージーランドのホビット映画撮影地図です。 とても美しくて魅力的な地図だと思いませんか?こんなウェブ地図を作って、データを面白く見せるということは、とても大事なことだと思います。CartoDBを使うとデータのホスティングとベース地図の部分を心配せずに、思いっきりビジュアルの部分に集中できます。もちろん、トルク地図のようなアニメーション地図を使えば、その視覚的効果は抜群です。 私達の例は、上の例ほど洗練はされていませんが、試作品としてその可能性を見せてくれると思います。下のイメージをクリックすると、地図が新しいタブで表示されます。あまり凝ったことはしていないので、デスクトップ以外ではあまりうまく表示ができないかもしれませんが。 この地図の背景図には、前回のブログでも紹介した、エコリスの地図タイルをCartoDBエディタを通して利用しています。色の濃いところほどサルの利用頻度が高いところです。上の図では、スギ・ヒノキ植林地である抹茶色の部分を避けるようにニホンザルが環境を利用していることがわかると思います。その代わりに、植林地の林縁部分や少し青みがかった農耕地の周辺部をよくりようしています。左側のスギ林の写真とサルの写真を地図にかぶせることで、面白い効果を出すとともに、この地図が植林地とサルに関する地図であることをイメージで示しています。 みなさんもCartoDBをつかってこのような地図を作ってみませんか?CartoDBについてご質問のある方は、私達までご連絡下さい。

Posted in CartoDB

エコリスの地図タイルサービス

仙台にあるエコリスは、独自の地図タイルサービスや、DEMの変換ソフトなどを提供する、異色の会社です。その取組が素晴らしいので、ここで少し地図タイルサービスを活用してみたいと思います。 Leaflet リーフレットを使うと、エコリスのタイルサービスを簡単に取り入れ、地図を作成することができます。この例は、エコリスが提供する地図タイルをスイッチで切り替えるだけの簡単なものですが、魅力的な背景図として活用できることがわかっていただけると思います。地図の右上にあるアイコンでスイッチャーを開いて、ラジオボタンでベース地図を切り替えてみてください。ちなみに、地図の中央にあるマーカーはドラッグすることができます(だからなんだということではないのですが。。。)。 CartoDB 次にPSSのパートナーであるCartoDBとエコリスの地図タイルサービスを組み合わせると、あっという間に感じのよい地図が作れてしまいます。CartoDBは、WMSやタイルサービス、NASAの衛星画像サービスなどを活用して、素早く地図を作成できるようになっています。詳しくは、この記事もご覧ください。 この様に、既存のサービスを使えば、魅力的な地図があっという間にできて、配信、共有することができます。もちろん、CartoDB.jsやLeafletの機能を活用すれば、さらに踏み込んだ楽しいウェブ地図作りができるようになります。素晴らしすぎます。

Posted in CartoDB

Euclidean Allocation

アロケーションラスタ ArcGISのEuclidean AllocationはGISでデータ解析していると、とても便利な機能です。ラスタデータに対するバッファ機能のようなものですが、バッファ内のセルは、一番近い基になるラスタのカテゴリまたは整数値を持つことになります。左の図で言えば、青いポリゴンの周りに様々な色のバッファがありますが、それぞれのバッファはポリゴンの属性値を持ったラスタです。各ポリゴンの縄張り範囲をある距離内で示したようなものです。ArcGISならSpatial Analystさえあればすぐに実行できるのですが、オープンソースでやる方法を探していたので、ここでその結果を報告をします。 まず、SAGAのGRID Proximity Bufferを見てみると、どうやらEuclidean Allocationらしきことができそうです。このコマンドは、QGISのプロセッシングメニューからも使えますし、もちろん、本家のSAGA GISからも使えます。Inputとしては、GRID(ラスタ)が必要なので、基になるデータがベクタならば、QGISのプロセッシングメニューから「Rasterize (vector to raster)」を探し出し、まずは基になるラスタを作成します。 GRID proximity bufferは、ラスタのNoDataの部分に対してバッファを発生させるので、コマンドを実行する前に、バッファを発生させたい部分がNoDataとなっていることを確認して下さい。SAGAである値をNoDataに変更する方法は、このポストを参考にして下さい。GRID proximity bufferの必要なパラメタを設定してコマンドを実行すると、デフォルトではDistance Grid、Allocation Grid、Buffer Gridの3つのレイヤが作成されます。今回目的としている出力はAllocation Gridですが、Distance Gridはソースへの距離を実数で表したもので、Buffer Gridは、Distance Gridを基に指定した距離間隔(Equidistance)でグリッドをクラス分けしたもので、例えばUTF座標系のデータでEquidistanceを100に指定すると、Distance Gridで123.45mの値を持つセルは200に、4570.23mのセルは、4600へとクラス分けされます。 SAGAのGRID proximity bufferは思い通りにArcGISで言うところのEuclidean Allocationをやってくれたのですが、今回のテストでは一つだけ問題がでました。それは、解析対象範囲が入力レイヤの最小範囲で指定されているので、値を持つセルがレイヤ範囲のギリギリまである場合、バッファがレイヤの範囲を超えて計算されないため、バッファが思い通りに作成されませんでした。 この問題を解決するには、レイヤの範囲を変更する必要があります。そのために手っ取り早いのは、ツールボックスのGDAL/OGR内にある、Clip raster by extentツールです。この中にある「クリップされた領域」オプションの右側にあるボタンをクリックし、表示される「レイヤー/キャンバス範囲を利用する」、「キャンバスで領域を指定して下さい」オプションを指定し、どちらかで実際のレイヤの最小範囲よりも広い範囲を指定した上でレイヤを新しく作成します。この作成されたレイヤに対しGRID proximity bufferを適用すると、今度は思い通りにバッファーの範囲が拡張されます。 SAGAのGRID proximity bufferと同じような方法をGRASSで探してみると、r.grow.distanceが使える事がわかりました。ただしこの場合は、バッファ距離が指定できないため、レイヤの領域範囲内は全てソースラスタのカテゴリ値が割り振られます。そのため、r.grow.distanceで同時に作成されるDistance layerの距離によってallocation gridをクリップする必要があります。 まとめ 今回は、GISの解析でよく使うArcGISでいうところのEuclidian AllocationをオープンソースGISを使ってどのようにやるかということについてテストしてみましたが、QGISに付属するSAGAやGRASSでも手軽に同じ解析ができることが分かりました。また、オープンソースGISの面白い解析ツールがあったら紹介したいと思います。

Posted in GIS, QGIS, SAGA Tagged with:

CartoDBの同期テーブル機能を使った地図の作成

同期テーブルの活用 CartoDBでは、サーバやドロップボックス、グーグルドライブにあるCSVやエクセルなどのデータと同期させ、一定の時間間隔でデータをアップデートさせ、それを地図として表示することができます。その方法については、CartoDBのチュートリアルの中にありますが、今回は、USGSから提供されている地震のデータを使ってほぼリアルタイムでデータが更新される地図を作成しました。 使用したデータは、15分毎に更新される、過去30日の全世界の地震データです。CartoDBを使えばこの様にダイナミックな地図を簡単に作成することができます。

Posted in CartoDB

CartoDBの使い方

CartoDBとは CartoDBについて知りたい方は、まずは、4月25、26日に無料で行うCartoDBイベントに来てください!CartoDBのチームをニューヨークから招待し、直接CartoDBを見て、聞いて、質問できます。 CartoDBは、簡単にいえばクラウド上で位置データを視覚化するツールです。いろんなデータをとりあえずアップロードしておき、そこから地図を作ったり、データを共有したりすることがものすごく簡単にできる様になっています。なんとこのソースコードはオープンソースですので、やる気がある人は自分で一からサービスを始められるのですが、まあ、結構大変なのでサービスとして走っているCartoDBを利用するのがお勧めです。フリーのアカウントもあるので、まずは皆さん是非試してみてくださ。日本語へのローカライズはまだできていませんが。。。お金を払えば、大きなデータのホストやエンタープライズまで行けば、マルチユーザーアカウントなども設定できますし、やはりサーバーは社内になければ、、、という方には、CartoDBのオンプレミスバージョンも有ります。 私達PSSは、そんなCartoDBの日本での認定パートナーです。日本での展開を今後行っていく上で、日本の事情に合った色々な例を紹介できればと思います。 CartoDBを使った地図の例 まず、一番簡単にできるのが、CartoDBのエディタで作成した地図をウェブサイトに貼りこむことです。これは、CartoDBの使い初めてすぐにできます。あまりにも簡単なのでびっくりするほどです。下の地図は、国土地理院の地理院地図が提供する「淡色地図」を背景図として利用しています。地理院地図サービスはほんとうに素晴らしいですね。CartoDBとの相性もバッチリです。ただの絵に見えるかもしれませんが、地図を拡大したり、点の情報を見たりすることができます。 この様にCartoDBないで作成した地図を外に共有するのはとても簡単にできるのですが、CartoDBには、さまざまなAPIが揃っているので、外からCartoDBに働きかけてダイナミックに地図を表示したりすることができます。そのうち、私が作成した例を幾つかご紹介します。すべての例は、栃木県日光市のニホンザルC群の位置データ(ポイント)を使っています。 この例は、基本的なCartoDBの地図に、Chart.jsをつかってグラフを重ね合わせた例です。 地図を表示 この例は、CartoDBのちずに時間スライダーを加えて、指定した時間内のデータだけが表示されるようにしたものです。 地図を表示 この例は、地図上にボタンを加え、各月のデータが簡単に見れるようにしたものです。 地図を表示 最後の例は、上の地図に、さらに行動圏のポリゴンをダイナミックに追加した例です。ポリゴンは予め用意したものではなく、SQL APIとPostGISの関数、さらにGeoJSONを利用してダイナミックに作成しています。「Home Range」とかいてあるボタンをクリックしてみてください。 地図を表示 これらの地図は、CartoDB、JavaScript、CSS、HTML、JQueryなどを少し知っている必要がありますが、それでもCartoDBを使うことでできることの将来性を垣間見ることができるのではないでしょうか? CartoDBが取り扱うことのできる地図化表現で得意なのが時系列データです。以下の例を見て下さい。 この例では、サルがいた場所を月ごとに表しています。月数が0から始まっているので、実際の月はスライダに1を足した数になるのですが、冬に標高の低いところをサルが集中的に利用している様子がわかります。こんな地図もCartoDBなら簡単に作れます。 まとめ 皆さんも是非CartoDBを始めてみてください。そしてその面白さに是非触れてみてください。私達がお手伝いできることがあればinfo@pacificspatial.comまで気軽にご相談下さい。

Posted in ウェブ, プロジェクト