Быстрый способ загрузить полный геокодированный файл национальных адресов Австралии (GNAF) и административных границ Австралии в Postgres, упрощенный и готовый к использованию в качестве справочных данных для геокодирования, анализа, визуализации и агрегирования.
Взгляните на эти вступительные слайды (PDF), а также на страницу data.gov.au.
Запуск сценария Python занимает 30–120 минут на сервере Postgres, настроенном на использование доступной оперативной памяти.
Вы можете обрабатывать версию данных GDA94 или GDA2020 — просто убедитесь, что вы загружаете одну и ту же версию как для GNAF, так и для административных границ. Если вы не знаете, что такое GDA94 или GDA2020, загрузите версии GDA94 (к вашему сведению — это разные системы координат).
Чтобы обеспечить хорошее время загрузки, вам необходимо настроить сервер Postgres на производительность. Здесь есть хорошее руководство, в котором отмечается, что ему уже несколько лет, и некоторые параметры памяти можно улучшить, если у вас есть ОЗУ.
CREATE EXTENSION postgis
-h
(см. примеры командной строки ниже).Поведением gnaf-loader можно управлять, указав в скрипте различные параметры командной строки. Поддерживаемые аргументы:
--gnaf-tables-path
указывает путь к извлеченным файлам GNAF PSV. Этот каталог должен быть доступен серверу Postgres , и, возможно, потребуется установить соответствующий локальный путь сервера к этому каталогу через аргумент local-server-dir
--local-server-dir
указывает локальный путь на сервере Postgres, соответствующий gnaf-tables-path
. Если сервер работает локально, этот аргумент можно опустить.--admin-bdys-path
указывает путь к извлеченным файлам границ администратора Shapefile. В отличие от 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
Номер версии Geoscape в формате ГГГГММ. По умолчанию указан текущий год и последний месяц выпуска. например 202408
.--previous-geoscape-version
Номер предыдущей версии выпуска Geoscape в формате ГГГГММ; используется для сравнения качества. например 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, но ограничьте до 12, если 16+ ядер — минимальная польза будет выше 12. По умолчанию — 4.--no-boundary-tag
НЕ помечайте все адреса некоторыми ключевыми идентификаторами границ администратора для создания агрегатов и картографических карт.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
. Эта общая папка соответствует локальной папке f:sharedgnaf
на сервере Postgres. Границы администратора были извлечены в папку c:tempunzippedAdminBounds_ESRI
.python load-gnaf.py --states VIC TAS NT ...
Загружает только данные для Виктории, Тасмании и Северной территории.Вы можете загрузить границы администратора без GNAF. Для этого закомментируйте шаги 1, 3 и 4 в файле def main.
Примечание. Вы не можете загрузить GNAF без Admin Bdys из-за зависимостей, необходимых для разделения Мельбурна и исправления неграничных locality_pids на адресах.
При использовании данных, полученных в результате этого процесса, вам необходимо будет соблюдать требования к атрибуции на страницах data.gov.au для GNAF и Admin Bdys в рамках требований лицензирования открытых данных.
GNAF и границы администратора готовы к использованию в Postgres в образе в Docker Hub.
docker pull minus34/gnafloader:latest
docker run --publish=5433:5432 minus34/gnafloader:latest
5433
. Логин по умолчанию — пользователь: postgres
, пароль: password
Примечание: сжатый образ Docker — 8 ГБ, несжатый — 25 ГБ.
ВНИМАНИЕ: Пароль суперпользователя postgres по умолчанию небезопасен, и его следует изменить с помощью:
ALTER USER postgres PASSWORD '
Загрузите файлы дампа Postgres и восстановите их в своей базе данных.
Должно занять 15-60 минут.
Геопаркетные версии пространственных таблиц, а также паркетные версии непространственных таблиц находятся в общедоступной корзине S3 для использования непосредственно в приложении или службе. Их также можно загрузить с помощью интерфейса командной строки AWS.
Геометрии имеют координаты широты и долготы WGS84 (SRID/EPSG:4326). Пример запроса для анализа данных с использованием Apache Sedona, пространственного расширения Apache Spark, находится в папке 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/
Включено или разработано с использованием G-NAF © Geoscape Australia, лицензированного Австралийским Союзом в соответствии с Лицензионным соглашением с конечным пользователем открытого файла геокодированных национальных адресов (G-NAF).
Включено или разработано с использованием административных границ © Geoscape Australia, лицензировано Австралийским Союзом по международной лицензии Creative Commons Attribution 4.0 (CC BY 4.0).
GNAF и Admin Bdys были настроены так, чтобы устранить некоторые известные незначительные ограничения с данными. Наиболее примечательными являются:
loc9901d119afda_1
и loc9901d119afda_2
). Раскол происходит на реке Ярра (судя по почтовым индексам в адресах Мельбурна).