本ブログはシリーズものです。最初の記事であるe-Statの境界データについての説明のページはこちら。
インターネット上のファイルをAlteryxでダウンロードするには
まず、基本的な話からしていきたいと思います。Alteryxでインターネット上のファイルをダウンロードするには、ダウンロードツールを使います。
基本的な設定は以下のとおりです。
ログインなどが不要な場合は、基本設定タブのみでほぼ完結できます。今回はログイン不要です。
- URL:ダウンロードしたいファイルのURLを含むフィールドをセットします
- 出力:「ファイルへ」の「フィールドからのファイル名」を選択し、保存したいファイル名を含むフィールドをセットします
ここで設定している「SaveFilePath」というフィールドはファイル名のみとしています。これにより、ワークフローが配置されているフォルダにそのまま保存されます。例えば「01.zip」などのデータがあればOKです。
ところで、ダウンロードツールでダウンロードする際、何度も以下のエラーで止まりました。
Unrecognized or bad HTTP Content or Transfer-Encoding
これは、Communityを検索したところ、以下ヘッダーをダウンロードツールに付加することで回避できるとのことで試したらうまくいきました。
Accept-Encoding: *
cache-control: no-cache
実際の設定は以下のとおりです。
なお、サーバーに負荷をかけないように、大量のダウンロードを行う際は、一気に行わないようにしてください。Alteryxの場合は、接続タブで調整が可能です(記事の後半で解説しています)。
小地域(町丁・字等)のデータを一括でダウンロードする
まず、データ量、数の少ない「小地域(町丁・字等)」から一括ダウンロードしてみましょう。正直なところ、このデータは47回ダウンロードすれば良いだけの話なので、手動でもできなくはないレベルの数かと思います。
とはいえ、まずは練習がてらやってみたいと思います。
まず、北海道全域のファイルをダウンロードするURLは以下のとおりです(測地系はJGD2000、ファイル形式はShapefile、世界測地系緯度経度の場合です)。
https://www.e-stat.go.jp/gis/statmap-search/data?dlserveyId=A002005212020&code=01&coordSys=1&format=shape&downloadType=5&datum=2000
Code=01となっている部分が北海道を指し示しています。つまり、47都道府県であれば、01~47がここに当てはまります。今回は、都道府県名とCodeの対応表を用意してみました。
これをテキスト入力ツールでワークフロー内に取り込んでおきましょう。
次に、上のURLに対して、先程用意したリストでコード番号を置換することでダウンロードURLを作って行こうと思います。置換のために、「01」の部分を「[CODE]」などとしたURLをテキスト入力ツールで用意したいと思います。
つまり、以下のような感じです。
https://www.e-stat.go.jp/gis/statmap-search/data?dlserveyId=A002005212020&code=[CODE]&coordSys=1&format=shape&downloadType=5&datum=2000
これらのテキスト入力ツールを、フィールド付加ツールで結合します。
このとき、URLを置換していきますが、置換後にURLが元より長くなるとお尻が切れてしまいます。そのため、通常置換するテキストは文字数を多めに取っておきます。これは、フィールド付加ツール内のセレクトツール機能で行います。
その後、置換していきましょう。フォーミュラツールを使います。関数としては以下のような形になります。
Replace([URL], "[CODE]", [AreaCode])
次に、ファイルとして保存する際のファイルパスを作ります。
[AreaCode]+"_"+[都道府県名]+".zip"
これで前準備はできました。いよいよダウンロードツールでダウンロードしていきます。
設定は以下のとおりです。
基本設定
ヘッダー
ヘッダーは、本記事の最初の方で触れた通りに設定します。
ペイロード
HTTPアクションは「GET(またはFTP)」です。
接続
接続は、必要に応じて設定します。最大接続を増やすと、一度にダウンロードできる数が増えるため、速度は早くなります(もちろん、インターネット回線に十分な帯域があるときには有効です)。
また、レコードを絞るオプションは、一気にデータを落とす場合にサーバーに負荷がかかるような場合に、アクセス速度を意図的に遅くして、サーバーへの負荷を落とすためのものです。処理速度は、1分間あたりの処理レコード数で、デフォルトでは1分間に60レコードを処理する、という設定になっているので、1秒に1レコードしか処理を行わないようになります。
これにより、以下のようなワークフローとなります。
これを実行すると、以下のようにデータがダウンロードできます。
ところで、このファイルからShapeファイルを読み込みたいのですが、AlteryxにはZipファイルから読み込む機能があります。しかしながら、Shapeファイルは未対応です・・・。
ということで、次回はZIPファイルを解凍して読み込む方法をご紹介していきたいと思います。
おまけ(ダウンロードすべきファイル形式)
※2023/02/04追記
e-Statの国勢調査の境界データは、3つの形式(Shape、KML、GML)で配布されています。Alteryxではどれを使うのが良いでしょうか?
結論としては、一番普及しているShapefileが良いです。
GML形式は読み込みを正式サポートしていません(書き込みのみ正式サポート)。また、日本語パスがある場所に配置すると読み込めないという問題があります。
KMLは、Google Earthで使える便利な形式ですが、KMZで配布されています。KMZはKMLをZIP圧縮したものなので、ZIPファイルとして解凍すればそのまま利用が可能ですが、ひと手間かかります。
コメント