LoginSignup
0
0

More than 1 year has passed since last update.

unvt/equinox コンポーネントレビュー

Last updated at Posted at 2021-12-18

これはベクトルタイル Advent Calendar 2021の第19日目です。

image.png

  • 地図に自由を
  • データに愛着を
  • 現場に向かって

をビジョンとして進めている国連ベクトルタイルツールキット(UNVT)ファミリーですが、特に現場に向かって前進するときに重視しているのが Raspberry Pi の活用です。

なお、UNVTを用いる場合のサーバー選びについては、サーバーの選び方 - ベクトルタイルをどう配備するか
も見ていただけると嬉しいです。

Raspberry Pi 用 UNVT インストーラー unvt/equinox

Raspberry Pi 用 UNVT インストーラーとして、unvt/equinoxを保持しています。Raspberry Pi OS 上で curl https://unvt.github.io/equinox/install.sh | sh とするとインストールが進むというスクリプトです。

今回は、次の図に示すような、equinox でインストールされるソフトウェアのうち、主要なものについて説明を試みます。

2021-12-18 10.42.24.jpg

システム関係

tmux

ターミナルのマルチプレクサです。ssh で Raspberry Pi に入った後、複数のシェルをきりかえて使えるようになります。また、ログアウトしても使っているシェルは生きたままになるので、例えば日を超えての作業の継続をするときにも便利です。

budo

Node.js で書かれた簡単なウェブサーバです。気軽に動かせて、割とオプションのセンスも良いので使っています。

ruby

オブジェクト指向スクリプト言語です。UNVTを構成する初期の頃は、全てを Node.js で取り扱うように心がけていましたが、ファイルシステムを扱うようなタスクでは煩雑になりがちなのと、シェルとの間のカルチャーの違いがあるように感じたので、再び Ruby を使うようになってきています。

特に、タスクを一つの Rakefile にまとめておくということをよく行っています。ファイルが増えすぎないためにも良いですし、Rakefile の記法は結局 Ruby の上の DSL なので、柔軟に回せるのが気に入っています。

Rakefile に対応するものを見つけきれなかったことが、 Ruby を再びよく使うようになった理由かもしれません。

また、改めて振り返ってみると、私は Ruby のカルチャーにアクセスできるところからヒントやメリットを得ているかもしれません。例えば、最近も、シンプルさについて次のような勉強を進めています。このような知見にアクセスしやすくなるという点で、 Ruby にアクセスしているというところからヒントやメリットを得ているかもしれません。

Rich Hickey: Simplicity Matters (eugene yokota 訳)

parallel

Parallels ではなくて、GNU Parallel です。シェルの上で並列処理をするのに便利なツールです。Raspberry Pi でタイル生産をする場合、メモリ・CPU・IOを使い切るようにタスクを設計することが重要ですが、Raspberry PiのCPUの4つのコアを十分に活用するには、多くの場合並列化が有効です。

nginx

ウェブサーバです。おそらく軽量なので、Raspberry Piでも安心して動かせる感覚があります。

nodejs

Node.js の処理系です。equinox でインストール処理を書くのによく苦労しています。本当に正しい入れ方がどれなのか、完全には自信がないところですが、現在のところ、equinox で導入した Node.js は問題なく動作しているようです。

地理空間情報関係

Tippecanoe

ベクトルタイルの生産を担う、CLI の優れたオープンソースソフトウェアです。

Charites

ベクトルタイルのスタイルを担う、CLI の優れたオープンソースソフトウェアです。

vt-optimizer

ベクトルタイルの最適化を担う、CLI の優れたオープンソースソフトウェアです。

GDAL

地理空間情報を CLI でハンドルするためによく使うオープンソースソフトウェアです。

PDAL

ポイントクラウドデータを CLI でハンドルするためによく使うオープンソースソフトウェアです。

Osmium

OpenStreetMap の osm.pbf ファイルをハンドルするためによく使うオープンソースソフトウェアです。

開発関係

yarn

Node.js のためのパッケージマネージャーですが、npm のみでも十分かもしれないと思っており、維持するべきかどうか迷っているところではあります。コメントがあればいただけると嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0