Try   HackMD

執筆中の ango

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
ご自由にコメントしてください
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

ango の目的

ango は 2019年9月13日に開催される FOSS4G Niigata 2019 のハンズオンセッション「国連と始めるベクトルタイル」に使うことを想定した、国連ベクトルタイルツールキットのハンズオン教材を開発することを目的としたレポジトリです

ango の目標は「国連ベクトルタイルツールキットを使ってウェブ上のオープンデータをあなたの手でベクトルタイルに変換する」方法をできるだけ分かりやすく伝えることです。Niigata のハンズオンまでは日本語をふんだんに使って作業をしていくつもりですが、いずれは英語化して国際的に使うことも想定しています。

ango というレポジトリ名は新潟市出身の作家坂口安吾の名からもらっています。

国連ベクトルツールキットとは

ここでは、国連ベクトルツールキットとは、ogr2ogr と Tippecanoe と vt-optimizer と Maputnik と Node を使ってベクトルタイルを生産しホストする方法論を指しているものと考えていただければと思います。なお、地物ストリームのワイヤフォーマットとしては GeoJSON Text Sequences を使うことになると思います。

詳細は、FOSS4G 2019 Bucharest に投稿した論文を見ていただけるとありがたいです。

ちなみに、国連ベクトルタイルツールキットは常に参加パートナーを求めています。しかし、まだ大したガバナンスメカニズムはありません。ちなみに、もう少し軌道に乗ってきた段階でちゃんとガバナンスを作って OSGeo incubation process に乗せたい、という話はあります。

ango の実装技術選定

いきなり枕草子みたいで恐縮ですが、ハンズオンマテリアルの実装技術として、次の技術を使おうと現時点で思っています。

GitHub
ファイルを置きます。
GitHub Issues
クローズ可能な課題を置きます。なお、ドキュメントは HackMD で、コミュニケーションは Gitter で行きましょう。いずれも、気軽に書き込んでください。
HackMD
ドキュメントを Markdown で書いていきます。
Gitter
コミュニケーションを行います
Speaker Deck
スライドを共有する必要がある場合には Speaker Deck を使うかもしれません。でも、HackMD のスライドモードで頑張るかもしれません。
asciinema
コンソールのスクリーンキャストに使います。HackMD のスライドモードと組み合わせられることは確認済み。asciinema rec -i 1 といったコマンドで収録をします。

ハンズオンの諸元

タイトル
国連と始めるベクトルタイル
タイトル(英語仮訳)
Getting started on vector tiles with the United Nations

想定するハンズオンのフロー

  1. いきなりデモ。今日のハンズオンが終わった時にはあなたがこれを作ってますよ、と訴える。生産とホストの作業の流れも続けて説明する。また、変換対象のオープンデータを案内し、生産対象を特定する。
  2. 計算機環境の準備。ツールキット全部入りの Dockerfile である rasv を使ってもらうことを基本とする。
  3. 各コマンドの動きを確認する。
  4. ソースデータから mbtiles への変換をする。とりあえず modify.js はお仕着せ。具体的には、modify.js と材料データを含めたレポジトリ から取っていただく。
  5. Express サーバを立ち上げて実際に見てみる。とりあえず style.json はお仕着せ。
  6. ここから散開。違うデータに取り組むもよし、modify.js を修正してサイズ最適化に挑戦するもよし、style.json を Maputnik あるいは Node.js で書き換えてスタイルを整えるもよし。
  7. 成果のご紹介、質問、ラップアップ、集合写真撮影
Created with Raphaël 2.2.0スタートデモ・座学説明計算機環境の動作確認コマンドの動作確認生産ホスト余力がある?(バリエーションコース)スタイル調整・最適化・別データに挑戦など(まとめ)成果紹介・質疑・ラップアップ・集合写真撮影終了yesno

ハンズオンで変換対象とするデータ

こちらにあるリストの中から国土数値情報の河川データで流域ポリゴンと川の地図を共通課題として最初に実施することにしたいと思っています。

ハンズオン用に構成するネットワーク

モラトゥワのときと同じく、会場から提供されるネットワークに藤村持参の AirPort Extreme を吊るして、そのネットワークに研修員は入ってもらうようにし、適宜ファイルサーバなどもそのネットワークの中にぶら下げます。いざという時にログインしてもらう予備計算機なども、このネットワークにぶら下げます。







network



internet

会場インターネット



airport

Airport Extreme



internet->airport





fileserver

サーバ(必要な場合)



airport->fileserver





pc1

研修員PC 1



airport->pc1





pc2

研修員PC 2



airport->pc2





rp1

Raspberry Pi 1



airport->rp1





pc1->fileserver





pc2->rp1





rp1->fileserver





会場ネットワークについて

最善で WiMAX 一つ、と考えておくとそれほど外れないような気がします。そうすると、あまり大きなイメージをインターネットからとるような形にはしたくないかもしれませんね。

次の施策で緩和することをいずれ考えましょう。

  • unvt/rasv は、できるだけ事前に pull しておいてください。
  • クラウド上の環境 (EC2 とか) でお受けになることも歓迎します。

新ハンズオン資料 ango を構成するサブ・プロダクト

ハンズオンの流れを改めてサブ・プロダクトを考えるために整理しますと、次の通りだと思っています。

  1. マルチアーキテクチャ Docker コンテナイメージである rasv を使って、国連ベクトルタイルツールキットが入った環境を立ち上げる。
  2. 河川データ GeoJSONS を入手する。
  3. ステップバイステップの誘導により、河川データ GeoJSONS からベクトルタイル を生産し、ホストする
  4. 余力がある人は、optgeo 的なアプローチで自由な作業をしてもらう。

しかしとりあえず河川データについては調整があるので、当面の間、自然災害伝承碑のデータでハンズオンマテリアルを作っていきます。

これを実現するために必要なサブプロダクトは、次の通りだと思っています。

  1. 国連ベクトルタイル Docker イメージ gh:un-vector-tile-toolkit/rasv
  2. 自然災害伝承碑 GeoJSONS gh:optgeo/mokuroku2geojsons -> gh:optgeo/geojsons-natural-disaster-monuments
  3. ango の生産スクリプト gh:un-vector-tile-toolkit/ango-produce
  4. ango のホストスクリプト gh:un-vector-tile-toolkit/ango-host
  5. ango のハンズオンスライド hackmd:ango-sides

これらを、並行して作っていき、だんだんと参加型で修正・改善可能にしていきたいと思います。また、おおむねまとまってきたところで、1. - 4. を一つのコンテナイメージにまとめた unvt/ango を作成することになると思っており、実際に並行作業を進めています。

この他に、vt-optimizer を使うと思います。rasv にまだ同梱していないのですが、同梱することを考えるかもしれません。rasv への同梱を進めています。

Annex: かんばん

Annex: 仮説あるいは目標

ango の一連の作業を通じて検証したい仮説あるいは達成したい目標としては、次のような命題を考えています。

  • $35 の Raspberry Pi と、$200 の hp Stream と、それから $1500 の MacBook Pro では、当然できることは違うけれども、どの機種でも rasv でベクトルタイルの生産とホストができる。また、種類で言って80%以上の地理空間情報は、Raspberry Piでハンドルできるような規模である。
  • ハンズオンのネットワークという極限の環境は、教育現場のネットワークという極限の環境、行政現場のネットワークという極限の環境、災害対応現場のネットワークという極限の環境に類似している。RPi ベースのサーバを同じネットワーク・セグメント内にぶら下げるという ango のアプローチは、これらの極限環境に共通のソリューションを提供できる可能性がある。