サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
gunmagisgeek.com
FlatGeobufは良い、捗るぞ。 GeoJSON GeoJSON · GIS実習オープン教材 この数年でかなり普及の進んだGeoJSONですが、データ量が増えるとどうしても重くなりファイルサイズも肥大化するため扱いにくくなっていきます。 そこでGeoJSONの良さ(可搬性)を残しつつ、シリアライズ(バイナリ化)することで巨大なデータも扱いやすくしようという試みが行われてきました。 Geobuf mapbox / geobuf ファイルサイズが大きくなりがちなGeoJSONをprotocol buffersを使ってシリアライズすることで圧縮したファイルフォーマットです。GeoJSONに比べて8~6分の1ぐらいファイルサイズを抑えることができます。 GeoJSONをGeobufに変換するツールや、ブラウザ上で読み込んだGeobufファイルをGeoJSONに戻す(デシリアライズ)ためのJav
この記事はdeck.gl Advent Calendar 2021 参加記事です。 概要 GTFS(General Transit Feed Specification)は、公共交通に関するデータを扱うための世界標準データフォーマットです。多くの地域で交通データを公開する際のフォーマットとして採用されており、日本でも徐々に普及が進んでいます。 そこで、この記事ではdeck.glを使って、GTFSに含まれる経路情報と停留所情報を地図に表示する方法を解説します。 サンプルコード 「あおい交通 オープンデータ」よりダウンロードさせていただいたaoikotsu_GTFS_20211031.zipファイルから、経路データと停留所データを地図に掲載しています。 経路データはshape_idごとにグルーピングしランダムに色を塗っています。 背景地図は表示すると経路が見えにくくなるので切り替え式にしました
puppeteerを使うときは、別途インストールされたchromiumを操作する場合が多いのですが、ログインしてのスクレイピングなどを行うときは普段使っているchromeを操作したい場合があるのでそのやり方のメモです。 ※Chromeの実行ファイルの位置(パス)や、ユーザーデータディレクトリのパスは環境によって変わるのでパスを確認してコードを修正してください。 ローカルにインストールされているchromeを使う const puppeteer = require('puppeteer-core'); (async () => { const browserSet = { headless: false, executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\Chrome.exe', } const browser
[追記] Windows 11では、inuxのGUIアプリをシームレスに利用できる「WSLg」という機能が追加されます。Puppeteerに内蔵されているchromiumも X環境を構築しなくても起動できるようになります。 puppeteer内蔵のchromiumも headless:false で普通に開く。 個人的にはこれが特にありがたいかな。 VcXsrvを使うより気軽に使えてデバッグしやすくなった。 イメージビューアーなんかもWSLから開けるのよい。 ちょっとしたことだけど、作業効率は上がりそう。 pic.twitter.com/6EwQbCu3jt — 清水正行 (@_shimizu) July 4, 2021 以下、元の記事。 WSL2でPuppeteerを使うための環境設定メモです。 ■wsl2(Ubunte)にpuppeteerをインストールする とりあえず、wslにpup
概要 国土交通省主導の、都市の3Dデータをオープンデータとして公開するプロジェクト「PLATEAU」 東京以外の都市でも公開されたデータが増えてきて、いろいろと遊べるようになってきました。 私はDeck.glというWebGLベースの3D表現に長けた地図ライブラリをよく使っているのですが、日本ではなかなか建物の3Dデータを手に入れるのはコストが高かったため、ちょっとした思いつきを試してみるのもハードルが高かったのですが、PLATEAUのおかげで思いついたアイデアを色々と試すことができるようになったので、とてもありがたく思ってます。 そこでここ最近、いろいろ試してみたことを一通りのせてみました。 PLATEAUのデータを使ってできることの一部ではありますが、「3D都市データがあると、こんなことができるんだな」という参考になればさいわいです。 CityGMLや3D-tileなど今まで触ったことの
3.wsl側でサーバー起動 ここでは、httpサーバーをport:3000で起動したものとする。 4.ホストOSからwslのipアドレスを用いてアクセスできるか確認 確認作業はホストOSのブラウザで行う http://<wslのipアドレス>:3000 にアクセス これでアクセスできなかったらwsl内かWSLのイーサネットアダプター周りで問題が起きてる。 5.ホストOSのipアドレスでwslのサーバーにアクセスできるようにポートフォワーディングの設定を行う 以下、コマンド実行はコマンドプロンプトかpowershellで。どちらも管理者権限で実行する必要がある。 ポートフォワーディングを設定 > netsh.exe interface portproxy add v4tov4 listenaddress=<ホストOSのipアドレス>listenport=3000 connectaddress
絶賛推し事中のdeck.glなのですが、よく「始めるハードルが高い」といわれるのでcreate-react-appのカスタムテンプレートを作成してみました。 npmに上げてあるので、1コマンド打つだけでdeck.glのコードを書き始めることができます。 create-react-appのインストール cra(create-react-app)はreactが公式で提供している開発環境をセットアップするためのコマンドです。node.jsがインストールされている環境で、npmコマンドを使ってインストールしてください。
MAPBOX GL JS V2: 3D MAPS + CAMERA API + SKY API LAUNCH このブログでも何度か紹介したことがあるMapbox社が提供しているWebGLベースの地図ライブラリ Mapbox GL JSのver.2が公開されました。 Camera APIやSky APIなど、三次元での表現力を増すような新しい機能が追加され、またレンダリングスピードも向上しているそうです。 しかし、残念なことにオープンソースではなくなってしまいました。 Mapboxが提供するベースマップ(背景地図)などを使わなければ無料で利用することができたver.1と違い、ver.2はMapboxサービスのアクセストークンが必須となっています。また課金方法も変わっています。 下記、Issuesにver.2での課金について詳しい説明があります。 v2.0 changes merged wit
新型コロナウイルス感染症対策推進室(内閣官房)にて、先日公開された「全国医療機関の医療提供体制の状況」のデータを地図にプロットしてみました。 政府CIOポータルの方でも地図にプロットされた状態で公開されているのですが、少し動作が重くて見づらかったのと、 Deck.gl + Material-UI の練習がてら作ってみました。 アプリの説明 データ量(約2MB)が多いため、初回アクセス時は表示されるまでに結構時間がかかります。 スマホでも見れますが、データ量が多いのと操作しづらいのでできればPCで見てください。 * PC(モダンブラウザ)推奨 医療提供体制の状況マップ サークル表示 全ての医療区分データをポイントとして表示しています。遠目でも見やすいようにちょっと大きめに表示しています。 データは一病院ごとではなく、医療区分(外来や救急など)ごとになっているので、同じ病院では同じ位置に重なっ
公式サイト 概要 SandDanceは、WebGLを用いたBIツールで巨大なデータセットを素早く可視化し、複数のビュー間を滑らかなアニメーションでトランジションさせることで新たな知見を得ることができるBIツールだそうです(公式サイトより) サンプル画像でもカッコいいアニメーションが目を引きます。 deck.glのショーケースページで紹介されていて、個人的に興味を持っていたのですが、先日Microsoftの公式ブログでオープンソース化されることが発表されました。 Microsoft open sources SandDance, a visual data exploration tool - Open Source Blog Github やたらパーティクルが飛び交ってカッコいいです。 慣れないと無意味な3Dチャートとか作ってしまいかねない危うさはありますが、内部ではDeck.glやVeg
Vis.gl – Uber Vis Team Uber社がオープンソースとして公開している可視化ツールでは「deck.gl」が有名ですが、他にもUber社の持つ巨大なデータセットを分析するために作成されたさまざまなデータ可視化ツールがオープンソースとして公開されています。「Vis.gl」はそれらUber社が作成し公開している可視化ツールをまとめた呼び名で、現在では11点ほどのデータ可視化に有用なツールが公開されており今なお増え続けています。 ここでは、「Vis.gl」スイートとして公開されているツールを一通りざっと紹介したいと思います。(一部、Vis.gl以外でUber社が公開しているツールも含んでいます) ■データビジュアライゼーションフレームワーク ・deck.gl WebGLを用いて大量のデータを可視化することに長けたフレームワーク。 レイヤーベースのコンポーネントとして作られていて
概要 そもそもdeck.glにはデフォルトで表示されるベースマップといったものはありませんが、公式のサンプルの多くがdeck.glとreact-map-glを組み合わせて使っているケースが多いため、deck.glではベースマップを使うためにMapboxサービスへの登録が必須であるような誤解があるようです。 他のサービスのベースマップを使う deck.glでmapbox以外のベースマップを使用する方法はいろいろあるのですが、ここではTIleLayerを利用した例を紹介します。 TileLayerとは TileLayer:Deck.gl API reference TileLayerはサードパーティのラスタタイル(地図タイル)を読み込んで表示するためのレイヤーです。 サンプルコード 解説 他のマップライブラリで外部の地図タイルを読み込んだことがある方であればあまり迷うことはないかと思います。
概要 deck.glを使ってWebGLで描画した地図の上に、D3.jsを使ってsvgをオーバーレイしボロノイ図を描画します。 ソースコード 解説 deck.glでは、緯度経度と画面上の座標の投影変換をViewportクラスが担っています。 Viewportクラスは通常外部から利用できるような形でインタンス化されていませんが、サブクラスであるWebMercatorViewportを利用することで、投影変換を行うためのprojectメソッドを外部から利用することができます。 WebMercatorViewport Class projectメソッドを使って母点の画面上の座標を取得し、それらを基にd3-voronoiモジュールを用いてボロノイ図を描画するための座標を算出しています。 あとは、webGL上にオーバーレイしたSVG要素にPathエレメントを設置してボロノイを描画しています。 impo
DEMO 道沿いに、というのはさすがに難しかったので店舗間の直線距離で繋ぎました。 スタートは「ガスト 沖縄佐敷店」からとなっています。 参考:ガスト「24日で全国1361店舗まわれば1000万円山分け」企画を中止して謝罪 「事実上不可能」と批判の声 - ねとらぼ 思い付きと、深夜のテンションで作った。 巡回ルートの生成 店舗情報はガストの公式サイトから抜きました。(怒られたら消します) いわゆる「巡回セールスマン問題」と同じで最適解を見つけるのはかなり大変なので、店舗データをいくつかのブロックに分けて、その中で個別に作った巡回ルートを繋げています。 巡回ルートの生成には、salesman.js というまんまな名前のライブラリを使用。 ただ、 k-meansを使ってクラスタリングしたポイントデータを各ブロックにしたのですが、結果関東から東方が他のブロックに比べてかなり大きくなってしまったた
Twitterに「学校に提出する通学路の地図を作るのがめんどくさい」というツイートがちらほら流れてきて、どうやら同じことで悩んでいる人は多いみたいですね。 ググったり、リプライで寄せられているアドバイスをみると「web地図サービスの地図を印刷して貼り付ければいい」といった提案が結構あるようですが、民間のweb地図サービスはライセンスの関係でいろいろ面倒だったり、リスクが高かったりします。 世の中には税金で作られた誰でも使っていい地図サービスというものがあるので、こういう時こそ活用したらいいのではないかと思い、簡単なチュートリアル動画を作って見ました。 ぜひ活用して見てください。 地理院地図 チュートリアル 「通学路の地図作るのがめんどくさい」というツイートを結構みかけたので地理院地図を使って作って見た。これでいいのかはわからない。 pic.twitter.com/qrBhOMSIiK —
Google Maps APIにはベースマップのスタイルを動的に変更する機能がありますが、それがなぜか韓国の領内には適用されません。 発見した時にはバグかと思って開発者ツールで色々調べて見たりしたのですが、ググってみたところ技術的な問題というよりは法律上の問題でした。 参考: 구글 자바스크립트 style 한국 적용에 대해서 질문드립니다. – Google プロダクト フォーラム 以下、機械翻訳 韓国では国内法上の地図データを海外のデータセンターにエクスポートすることができない制約があって、Googleマップで提供される一部の機能が動作しておらず、地図画像を動的に変更する機能も含まれます。韓国の地図は、国内サーバーを介して制限的なスタイルの指導のみサービスしており、その他のAPIなどを通じた地図画像の変更は、現時点では困難です。今後、より多くのGoogleマップサービスの機能をサポー
ここ数週間、ずーとGoogle Earth Engineを触って遊んでいて、なんとか入門的なチュートリアルぐらいなら記事としてかけるのではないかと思ったので、Google Earth / Google Earth Engine Advent Calendar 2018 – Qiitaに参加してみることにしました。 Google Earth Engineとは Google Earth Engine は、日々刻々と変化する地球の様子を、動的なデジタル モデルとして表現するためのオンライン環境監視プラットフォームです。数ペタバイトもの衛星写真データを保持しており、それらの情報を高機能ツールで分析して地図上に視覚化することができます。たとえば、アマゾン河流域の熱帯雨林やコンゴの水資源の変化を視覚化できます。 GEEは、グーグルのクラウドに保存されたペタバイト級の衛星データにアクセスし、ブラウザ上で
地理空間データはどうしてもデータサイズが大きくなりがちです。 通常のデータ読み込みでは、読み込みが終わるまで地図の描画を始めることができないのですが、Fetch APIのReadableStreamを使うことで、「一部データを読み込んでは地図の一部分を描画する」という分割したレンダリングを実装することができます。 サンプルコード 約50MBのポリゴンデータを読み込みながら逐次描画しています。 DEMO //地理データをstreamを使って読み込む fetch("city.txt").then((response) => { const reader = response.body.getReader(); const stream = new ReadableStream({ start(controller) { function push() { reader.read().then(
「サイト上で実行されるプログラムについて同意を確認するためのプログラム」という記事で、MutationObserverを使ってscriptタグがDOMに追加させるタイミングでremoveを行うという力業を試してみたのですが、どうにも完全に実行を停止するのは難しいようです。 もともと、本来はheadタグ直下で実行すべきコードを記事文中内で実行しているため、記事以前に記述されているscriptに関しては実行を止めることができていなかったのですが、ほかにもasync属性が設定されているスクリプトに関してはこの方法では実行を止めることはできないようです。 また、一度ページが表示されるとキャッシュが残るため、2回目にページを表示した際に正しく動作しないようです。 サードパーティのスクリプトをフックして実行を制御するのはなかなかに難問でした。 [追記]検証ページつくってみました。 ※リンク先の検証ペー
昨今、クライアントサイドでプログラムを実行するリスクが高まっています。 そこで、ページ上で実行されるプログラムについて閲覧者に同意を求めるプログラムをこのページに埋め込んでみました。 ひとえにクライアントサイドで実行されるプログラムといっても様々なものがあります。 例えばこのブログはWordpressで作られていますが、使用しているテーマは様々なJavaScriptライブラリを外部から読み込んでいますし、Google アドセンスのような広告を表示するためのプログラムや、Google アナリティクスのようなアクセス解析を行うためのプログラムも閲覧者に許可なく実行され、CPUやメモリ、電力といった閲覧者のリソースを消費します。 また、このブログに掲載しているデータビジュアライゼーションや地図コンテンツは、複雑な計算処理をクライアントサイドで行う為、非常に負荷の高いプログラムがユーザーサイドで実
市区町村ごとのマクドナルド店舗数で色付けしています。色が濃い地域ほど店舗が多くなります。 白く塗られた地域がマクドナルドが一店舗もない「ドナルドのいない街」です。 DEMO 経緯 Geoクラスタではマクドナルドの店舗データを使った分析が流行っているらしいので、周回遅れながらこのビッグウェーブに乗ってみることにしました。 日本一マクドナルドから遠い場所 - Qiita 「本当に」日本一マクドナルドから遠い場所|ヌノカワ ユウスケ|note 日本一マクドナルドから遠い場所はPostGISで求められるかな? - Qiita 日本一マクドナルドから遠い場所 をより精確に求めてみた - Qiita とはいえ、一番遠い場所を見つける別のアプローチも思いつかなかったので、今回は、GISを使った分析の基本、「ポリゴンごとに含まれるポイントをカウントして塗り分け地図を作る」をすることに。 データ ・マクドナ
kepler.gl Uber社では、自社で集めた地理空間データを可視化するためのフレームワーク deck.gl をオープンソースとして公開していますが、deck.glを用いて作成されたwebGIS「Kepler.gl」のver.1.0が公開されました。 webGLに対応したブラウザであれば、サイトにアクセスするだけで利用できるので大規模な位置情報などを可視化するソフトウェアをお探しの方は試してみてはいかがでしょう。 1分でわかるKepler.glの使い方 「Add Data」ボタンでデータを追加して、「Add Layer」ボタンで可視化方法を選ぶというのが基本的な操作方法になります。 csvデータをアップロード 「Add Data」ボタンをクリックし、下記画像の赤枠で囲まれた部分に、緯度、経度のデータが含まれるcsvファイルをドラッグ&ドロップします。 レイヤーを追加 「Add Layer
市区町村をクリックするとここに情報が表示されます。 白く塗られている地域は、マクドナルドの店舗がありません
中規模のデータをどうやって地図上に視覚化するか フロントエンドで地図を表示するのは、データサイズとの戦いです。 現在のところ、大量のデータを表示するにはベクトルタイル化するのがもっともベターですが、ベクトルタイルにもいくつかの何点があります。 例)全国のガソリンスタンドの位置を地図上にプロットしてみた。 一つは、データのコンバート作業に時間がかかること。 どの程度のズームレベルまで作成するかによるのですが、タイルファイルを生成するまでには何工程か経なければならず、運用で頻繁にデータを差し替えたり更新したりする必要がある場合、無視できない作業量になります。 もう一つは、フロントエンドでかなり多くの404アクセスエラーがでること。 タイルのコンバート時間を短くするには、必要な部分のみ作成するのがもっとも効果的なのですが、その場合、地図クライアントソフトが存在しないタイルに対してもリクエストを投
demo sample code deck.glとは? deck.gl Uber社がオープンソースとして公開しているWebGLベースの地理情報視覚化フレームワークです。webGLを利用しているため、比較的データ量の多い地理情報もフロントエンドに表示することができます。 Reactのコンポーネントとして作成されているため、いままで手を出して来なかったのですが、最近Reactを勉強し始めたついでに弄ってみました。 今回は、とりあえず開発環境の構築と、サンプルにあるgeojsonデータを読み込んで表示するコンポーネントを作ってみます。 この記事は内容が古くなっています。 最新のDeck.glについては、以下の記事を参照してください。 React Hooks とdeck.gl v.7を使ってweb地図を作ってみた。 deck.glのインストール github/deck.gl deck.glリポジト
概要 「Reveal.jsをMicro:bit(chibi:bit)でコントロールする。」の記事では、micro:bit(chibi:bit)をフロントエンドと繋げるのに、バックエンドとしてnode.js(BLE & web socket)を使っていましたが、今回は、Web Bluetooth APIを使ってブラウザだけでmicro:bitと通信してみました。 ※ いまのところWeb Bluetooth APIを利用できるのは、デスクトップのChrome/Operaと一部最新のAndroidのみです。 事前準備 ペアリングのセキュリティを解除し、すべてのBLEサービスを有効にするために以下の作業を行う必要がある。参考:Flashing micro:bit firmware hexファイルをダウンロードする。 USBケーブルを使用してマイクロビットをPCに接続。 hexファイルをmicro:
TEDに公開されている日本語字幕の付いた動画のなかから、データビジュアライゼーションに関連する動画をピックアップしてみました。 視覚化 データビジュアライゼーションの美 私のデータセットであなたのマインドセットを変えてみせます 人間性を巧みに描く 人類の知識を表す視覚的表現の歴史 データで描く、示唆に富む肖像画 データの中に自分を見つけるには 統計 誤った統計を見抜く3つの方法 統計を好きになるべき理由 統計に騙される陪審員たち データ分析 ハリウッドに潜む性差別のデータ ビックデータを使ったNYCでの最悪な駐車場の見つけ方 アンドレア・シュライヒャー 「データに基づく学校改革」 地図 スティーブ・ジョンソンの感染地図 広げる価値のあるアイデアの地図作り (場所を示すだけではなく)私達が何者かを示す地図 分かりやすい地図のデザイン
日本でも結構な数のテロ事件が発生している。 Demo 概要 The Global Terrorism Database (GTD) で公開されている1970年から2015年までのテロデータの内、ロケーション情報(緯度経度)が判明している152,253件を地図上にプロットしてみました。 全件表示と、各年毎にフィルタリングして表示することができます。 マーカーをクリックすると簡単な詳細をポップアップで表示しています。とくに翻訳などしていないのでChromeの日本語翻訳機能などを使って翻訳してください。 ズームレベルが大きすぎるとマーカーが消えてしまうなどの修正できてないバグがあります。 ※ スマホでも一応表示はされますがめちゃくちゃ重いので、できるだけPCでご覧ください。 備考 テロ事件が少ないといわれる日本ですが、プロットしてみると意外と件数があります。 2014年の「札幌連続ボンベ爆発事件
次のページ
このページを最初にブックマークしてみませんか?
『_shimizu@gunmagisgeek』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く