はじめに
Amazon Web Service (AWS)のクラウドストレージである Simple Storage Service (S3)はストレージおよびデータ通信のコストが比較的高いサービスです。しかし、公共性があり付加価値の高いデータに対してはS3を無料で利用できる AWS OpenData Sponsorshop Program というものが用意されています(以下、AOSPと略す)。2025年10月時点で800を超えるデータセットが公開されています。
静岡県は県土全域をLiDARで計測した点群データを公開しています。このVirtual Shizuokaプロジェクトでは静岡県全体のデジタルツインを構築することを目指しています。
Virtual Shizuoka の点群データはG空間情報センターから入手することが可能ですが、この度 OpenData Sponsorship Program が適用されたことによりS3から直接ダウンロードすることも可能になりました。ここではその方法について説明したいと思います。
AWS の認証について
AWSでサービスやリソースを管理するためには、Identity and Access Management (IAM) が用いられます。認証・認可には、古くは主にアクセスキーが用いられていましたが、現在は Identity Center を用いたシングルサインオン(SSO)や Security Token Service (STS)の利用が推奨されています。
しかしながら、AOSPはオープンデータを扱う性質上 誰でも利用できる ようになっています。したがってAWSのアカウントやユーザーを作成する 必要はありません 。
AWS CLIのインストール
AWSにはコマンドラインインターフェース(CLI)が Linux, macOS, Windows 向けに用意されています。CLIを使えば、ブラウザからコンソールにログインすることなくリソースの管理をコマンドで実行することが可能です。
インストールと更新の手順にしたがってインストールしてください。
例えば macOSではインストールした後にバージョンを確認すると以下のように表示されます。
% aws --version
aws-cli/2.27.49 Python/3.13.4 Darwin/24.6.0 exe/x86_64
コマンドラインオプション
AWS CLIにはいくつかのコマンドラインオプションがあります。
通常は --profile
オプションを指定するなどして認証情報を設定します。しかしながら AOSPの S3バケットにアクセスする時には認証情報が必要ないので --no-sign-request
をコマンドオプションに指定することになります。
AWS CLIによる S3 へのアクセス
AWS CLI の S3 コマンドの詳細はリファレンスを参照してください。
ここではオブジェクトの一覧を取得する lsコマンドと、オブジェクトをコピーする cpコマンドを利用します。
lsコマンドでオブジェクトのリストを取得
Virtual Shizuoka のS3バケットは s3://virtual-shizuoka
として公開されています。
まずは lsコマンドでオブジェクトの一覧を取得してみます。トップレベルのリストを取得すると、年度毎に分けられたフォルダが表示されます。
S3は通常のファイルシステムとは違うので、いわゆる「フォルダ」とは厳密には違いますが、便宜上フォルダと呼びます。
% aws s3 ls --no-sign-request s3://virtual-shizuoka
PRE 2019/
PRE 2020/
PRE 2021/
PRE 2022/
PRE 2025/
フォルダの階層を辿っていくと以下のようにファイルが表示されます。
% aws s3 ls --no-sign-request s3://virtual-shizuoka/2019/LP/Ground/08/ME/28/
2025-01-08 17:24:22 481045925 08ME2849.zip
2025-01-08 17:24:24 484322738 08ME2858.zip
2025-01-08 17:24:29 475120887 08ME2859.zip
2025-01-08 17:24:31 570210987 08ME2868.zip
2025-01-08 17:24:33 498277799 08ME2869.zip
2025-01-08 17:24:35 1105064092 08ME2878.zip
2025-01-08 17:24:40 546414699 08ME2879.zip
2025-01-08 17:24:42 523084485 08ME2888.zip
2025-01-08 17:24:45 330658624 08ME2889.zip
2025-01-08 17:24:46 340431683 08ME2898.zip
2025-01-08 17:24:48 455458538 08ME2899.zip
フォルダの階層は以下のような構成になっています。
階層 | 値 | 備考 |
---|---|---|
YEAR | 2019, 2020, 2021, ... | データ取得年度 |
METHOD | LP, ALB, MMS, UAV, ... | データ取得方法 |
TYPE | Ground, Grid, Contour, Ortho | データタイプ |
ZONE | 08 | 平面直角座標系番号 |
GRID_CODE_50000 | ME | 地図情報レベル50000 |
GRID_CODE_500 | 28 | 地図情報レベル500 |
FILENAME | 08ME2899.zip |
Virtual Shizuoka のバケットは、すべてこのようなオブジェクトキーで表せるようになっています。
s3://virtual-shizuoka/YEAR/METHOD/TYPE/ZONE/GRID_CODE_50000/GRID_CODE_500/FILENAME
詳細についてはドキュメントのページを参照してください。
cpコマンドでオブジェクトをコピーする
まずはファイルを一つ指定してダウンロードしてみます。
ダウンロード先としてカレントディレクトリの下にdownloadsフォルダを用意しておき、その中にファイルを作成します。
% aws s3 cp --no-sign-request s3://virtual-shizuoka/2019/LP/Ground/08/ME/28/08ME2899.zip ./downloads/
download: s3://virtual-shizuoka/2019/LP/Ground/08/ME/28/08ME2899.zip to downloads/08ME2899.zip
フォルダを指定して複数のファイルをまとめてダウンロードすることも出来ます。
この場合3つのコマンドオプションを組み合わせて指定します。
- recursive
- 再帰的にフォルダ内のオブジェクトを対象にします。
- exclude
- コピーから除外するオブジェクトを指定します。
- include
- コピーの対象とするオブジェクトを指定します。
次の例では正規表現のワイルドカード""を使って、ファイル名が ".zip"のオブジェクトのみをダウンロードします。
% aws s3 cp --no-sign-request s3://virtual-shizuoka/2019/LP/Ground/08/ME/28/ ./downloads/ --recursive --exclude "*" --include "*.zip"
次の例では正規表現で任意の一文字にマッチする"?"を使って、ファイル名が 08ME2849,08ME2859,08ME2869,08ME2879,08ME2889,08ME2899 のオブジェクトが対象としてダウンロードされます。
% aws s3 cp --no-sign-request s3://virtual-shizuoka/2019/LP/Ground/08/ME/28/ ./downloads/ --recursive --exclude "*" --include "08ME28?9.zip"
さいごに
AWS CLIを使うことで、ブラウザを使わず、点群データのダウンロードがスクリプトによって行うことが可能になりました。オープンデータ・スポンサーシップによって通信費も無料で利用することが出来ますので、遠慮なくダウンロードして使い倒してしまいましょう。