完全な地理コード化されたオーストラリア国別住所ファイル (GNAF) とオーストラリアの行政境界を Postgres にロードする簡単な方法。簡素化され、ジオコーディング、分析、視覚化、集計の参照データとしてすぐに使用できます。
これらの紹介スライド (PDF) と data.gov.au ページをご覧ください。
利用可能な RAM を利用するように構成された Postgres サーバーで Python スクリプトを実行するには、30 ~ 120 分かかります。
データの GDA94 または GDA2020 バージョンを処理できます。ただし、GNAF と管理境界の両方に同じバージョンをダウンロードするようにしてください。 GDA94 または GDA2020 が何かわからない場合は、GDA94 バージョンをダウンロードしてください (参考までに、これらは座標系が異なります)。
適切なロード時間を得るには、パフォーマンスを考慮して Postgres サーバーを構成する必要があります。ここには良いガイドがあり、数年前のものであり、RAM がある場合はメモリパラメータの一部を強化できることに注意してください。
CREATE EXTENSION postgis
-h
引数を指定してload-gnaf.pyを実行して、利用可能な引数と必須の引数を確認します(以下のコマンドラインの例を参照)。gnaf-loader の動作は、スクリプトにさまざまなコマンド ライン オプションを指定することで制御できます。サポートされている引数は次のとおりです。
--gnaf-tables-path
抽出された GNAF PSV ファイルへのパスを指定します。このディレクトリは Postgres サーバーからアクセスできる必要があり、このディレクトリへのサーバーの対応するローカル パスは、 local-server-dir
引数を介して設定する必要がある場合があります。--local-server-dir
gnaf-tables-path
に対応する Postgres サーバー上のローカル パスを指定します。サーバーがローカルで実行されている場合、この引数は省略できます。--admin-bdys-path
抽出されたシェープファイル管理境界ファイルへのパスを指定します。 gnaf-tables-path
とは異なり、このパスは必ずしもリモート Postgres サーバーにアクセスできる必要はありません。 --pghost
Postgres サーバーのホスト名。これは、設定されている場合はデフォルトでPGHOST
環境変数に設定され、設定されていない場合はデフォルトでlocalhost
に設定されます。--pgport
Postgres サーバーのポート番号。これは、設定されている場合はPGPORT
環境変数にデフォルト設定され、設定されていない場合は5432
設定されます。--pgdb
Postgres サーバーのデータベース名。これは、設定されている場合はPGDATABASE
環境変数にデフォルト設定され、設定されていない場合はgeoscape
設定されます。--pguser
Postgres サーバーにアクセスするためのユーザー名。これは、設定されている場合はPGUSER
環境変数にデフォルト設定され、設定されていない場合はpostgres
設定されます。--pgpassword
Postgres サーバーにアクセスするためのパスワード。これは、環境変数PGPASSWORD
設定されている場合はデフォルトとなり、設定されていない場合は、 password
になります。 --srid
入力データの座標系を設定します。有効な値は4283
(デフォルト: GDA94 緯度/経度) および7844
(GDA2020 緯度/経度) です。--geoscape-version
YYYYMM 形式の Geoscape バージョン番号。デフォルトは今年と最後のリリース月です。例: 202408
。--previous-geoscape-version
以前の Geoscape リリースのバージョン番号 (YYYYMM)。 QAの比較に使用されます。例: 202405
。--raw-gnaf-schema
生の GNAF テーブルを保存するスキーマ名。デフォルトはraw_gnaf_
です。--raw-admin-schema
未処理の管理境界テーブルを保存するスキーマ名。デフォルトはraw_admin_bdys_
です。--gnaf-schema
最終的な GNAF テーブルを保存する宛先スキーマ名。デフォルトはgnaf_
です。--admin-schema
最終的な管理境界テーブルを保存する宛先スキーマ名。デフォルトはadmin_bdys_
です。--previous-gnaf-schema
以前のバージョンの GNAF テーブルが含まれるスキーマ。デフォルトはgnaf_
です。--previous-admin-schema
以前のバージョンの管理境界テーブルが含まれるスキーマ。デフォルトはadmin_bdys_
です。--states
ロードする状態のスペース区切りのリスト (例: --states VIC TAS
。デフォルトでは、すべての状態がロードされます。--prevacuum
テーブルを削除した後にデータベースを強制的にバキュームします。デフォルトはオフで、このオプションを指定するとインポート プロセスが遅くなります。--raw-fk
生の GNAF テーブルの主キーと外部キーの両方を作成します。デフォルトはオフで、指定するとインポートプロセスが遅くなります。生の GNAF テーブルを一時的なインポート手順以上の目的で利用する場合は、このオプションを使用します。最終的に処理されたテーブルには常に適切な主キーと外部キーが設定されていることに注意してください。--raw-unlogged
ログのない生の GNAF テーブルを作成し、インポートを高速化します。デフォルトはオフです。インポート後の生データ テーブルを気にしない場合にのみ、このオプションを指定してください。サーバーがクラッシュすると、生データ テーブルは失われます。--max-processes
データのロードに使用する並列プロセスの最大数を指定します。これを Postgres サーバー上のコア数から 2 を引いた数に設定しますが、16 コア以上の場合は 12 に制限します。12 を超えると最小限の利点があります。デフォルトは 4 です。--no-boundary-tag
集計およびコロプレス マップを作成するために、すべてのアドレスに主要な管理境界 ID の一部をタグ付けしないでください。python load-gnaf.py --gnaf-tables-path="C:tempgeoscape_202408G-NAF" --admin-bdys-path="C:tempgeoscape_202408Administrative Boundaries"
ロードGNAF テーブルをローカルで実行されている Postgres サーバーに送信します。 GNAF アーカイブはフォルダーC:tempgeoscape_202408G-NAF
に抽出され、管理境界はC:tempgeoscape_202408Administrative Boundaries
フォルダーに抽出されています。python load-gnaf.py --gnaf-tables-path="\svrsharedgnaf" --local-server-dir="f:sharedgnaf" --admin-bdys-path="c:tempunzippedAdminBounds_ESRI"
抽出された GNAF テーブルを共有フォルダー\svrsharedgnaf
にロードします。この共有フォルダーは、Postgres サーバー上のローカルのf:sharedgnaf
フォルダーに対応します。管理境界はc:tempunzippedAdminBounds_ESRI
フォルダーに抽出されています。python load-gnaf.py --states VIC TAS NT ...
ビクトリア、タスマニア、ノーザンテリトリーのデータのみをロードしますGNAF を使用せずに管理境界をロードできます。これを行うには、def main のステップ 1、3、および 4 をコメントアウトします。
注: メルボルンを分割し、アドレス上の非境界の locality_pids を修正するには依存関係が必要なため、Admin Bdys なしでは GNAF をロードできません。
このプロセスから得られたデータを使用する場合、オープン データ ライセンス要件の一部として、GNAF および Admin Bdys の data.gov.au ページの帰属要件に従う必要があります。
GNAF と管理境界は、Docker Hub 上のイメージ内の Postgres で使用できるようになりました。
docker pull minus34/gnafloader:latest
を使用してイメージをプルします。docker run --publish=5433:5432 minus34/gnafloader:latest
を使用して実行します5433
経由でコンテナ内の Postgres にアクセスします。デフォルトのログインは - ユーザー: postgres
、パスワード: password
注: 圧縮された Docker イメージは 8 GB、非圧縮の場合は 25 GB
警告: デフォルトの postgres スーパーユーザー パスワードは安全ではないため、次を使用して変更する必要があります。
ALTER USER postgres PASSWORD '
Postgres ダンプ ファイルをダウンロードし、データベースに復元します。
15 ~ 60 分かかります。
Geoparquet バージョンの空間テーブルと非空間テーブルの Parquet バージョンは、アプリケーションまたはサービスで直接使用できるようにパブリック S3 バケット内にあります。 AWS CLI を使用してダウンロードすることもできます。
ジオメトリには WGS84 緯度/経度座標 (SRID/EPSG:4326) があります。 Apache Spark の空間拡張機能である Apache Sedona を使用してデータを分析するためのサンプル クエリは、 spark
フォルダーにあります。
ファイルはここにあります: s3://minus34.com/opendata/geoscape-202408/geoparquet/
aws s3 ls s3://minus34.com/opendata/geoscape-202408/geoparquet/
aws s3 sync s3://minus34.com/opendata/geoscape-202408/geoparquet/
Open Geo-coded National Address File (G-NAF) エンド ユーザー ライセンス契約に基づいて、オーストラリア連邦によってライセンス供与された G-NAF © Geoscape Australia を使用して組み込まれているか、開発されています。
管理境界を組み込むか、またはそれを使用して開発されています © Geoscape Australia は、クリエイティブ コモンズ表示 4.0 国際ライセンス (CC BY 4.0) に基づいてオーストラリア連邦によってライセンスされています。
GNAF と Admin Bdys は、データに関する既知の軽微な制限の一部を削除するようにカスタマイズされています。最も注目すべきものは次のとおりです。
loc9901d119afda_1
およびloc9901d119afda_2
です)。分岐はヤラ川で発生します (メルボルンの住所の郵便番号に基づく)