Разработка геоприложений на языке Python
Покупка
Издательство:
ДМК Пресс
Автор:
Вестра Эрик
Перевод:
Логунов А. В.
Год издания: 2017
Кол-во страниц: 446
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-437-3
Артикул: 712481.01.99
Написание геопространственных программ предполагает решение таких задач, как группирование данных по географическому положению, хранение и анализ больших массивов информации, выполнение сложных расчетов и построение красочных интерактивных карт. Книга предоставляет обзор главных геопространственных понятий, источников геоданных и наборов инструментов для геообработки. Рассмотрены приемы хранения и доступа к пространственным данным. Показано создание собственного интерфейса со скользящей картой в рамках веб-приложения. Подробно описано создание редактора геоданных на основе географического модуля GeoDjango для веб-платформы Djaogo. Издание адресовано опытным разработчикам на языке Python, которые хотели бы освоить концепции геопрограммирования, методы получения и работы с геоданными, решать пространственные задачи и конструировать сложные картографические приложения.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
- ВО - Магистратура
- 05.04.03: Картография и геоинформатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Эрик Вестра Разработка геоприложений на языке Python
Erik Westra Python Geospatial Development Develop sophisticated mapping applications from scratch using Python 3 tools for geospatial development Third Edition BIRMINGHAM – MUMBAI
Эрик Вестра Разработка геоприложений на языке Python Разработка сложных картографических приложений с нуля с использованием геоинструментальных средств Python 3 Третье издание Москва, 2017
УДК 528.92:004.9Python ББК 26.17с В38 Вестра Э. В38 Разработка геоприложений на языке Python / пер. с англ. А. В. Логунова. – М.: ДМК Пресс, 2017. – 446 с.: ил. ISBN 978-5-97060-437-3 Написание геопространственных программ предполагает решение таких задач, как группирование данных по географическому положению, хранение и анализ больших массивов информации, выполнение сложных расчетов и построение красочных интерактивных карт. Книга предоставляет обзор главных геопространственных понятий, источников геоданных и наборов инструментов для геообработки. Рассмотрены приемы хранения и доступа к пространственным данным. Показано создание собственного интерфейса со скользящей картой в рамках веб-приложения. Подробно описано создание редактора геоданных на основе географического модуля GeoDjango для веб-платформы Django. Издание адресовано опытным разработчикам на языке Python, которые хотели бы освоить концепции геопрограммирования, методы получения и работы с геоданными, решать пространственные задачи и конструировать сложные картографические приложения. УДК 528.92:004.9Python ББК 26.17с Copyright © Packt Publishing 2016. First published in the English language under the title ‘Python Geospatial Development – Third Edition – (9781785288937)’ Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-78528-893-7 (анг.) Copyright © 2016 Packt Publishing ISBN 978-5-97060-437-3 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2017
Содержание Об авторе ...................................................................... 11 О рецензенте ................................................................. 12 Предисловие ................................................................. 13 Глава 1. Разработка геопрограмм на Python ........................ 27 Python ......................................................................................................................................................27 Python 3 ..............................................................................................................................................29 Разработка геопространственных программ ..............................................................................30 Сферы применения геоприложений .............................................................................................33 Анализ геоданных ...........................................................................................................................33 Визуализация геоданных .............................................................................................................35 Создание геопространственных мэшапов ..............................................................................37 Последние достижения ......................................................................................................................38 Заключение ............................................................................................................................................41 Глава 2. Геоинформационные системы ............................... 42 Ключевые понятия ГИС ....................................................................................................................42 Географическое положение .........................................................................................................42 Расстояние.........................................................................................................................................46 Единицы измерения.......................................................................................................................48 Картографические проекции ......................................................................................................50 Системы координат ........................................................................................................................56 Геодезические датумы ...................................................................................................................59 Географические фигуры ..............................................................................................................60 Форматы данных ГИС .......................................................................................................................62 Работа с данными ГИС вручную ....................................................................................................64 Получение данных ..........................................................................................................................65 Инсталляция библиотеки GDAL ..............................................................................................65 Заключение ............................................................................................................................................74 Глава 3. Библиотеки Python для геопрограммирования ......... 75 Чтение и запись геоданных ..............................................................................................................75 Пакет GDAL/OGR .........................................................................................................................75 Инсталляция пакета GDAL/OGR ............................................................................................76 Концепция библиотеки GDAL ..................................................................................................76 Пример использования .................................................................................................................82 Концепция библиотеки OGR .....................................................................................................85
Содержание Пример использования .................................................................................................................86 Документация по GDAL/OGR ..................................................................................................88 Работа с проекциями ..........................................................................................................................89 Библиотека pyproj ..........................................................................................................................89 Инсталляция библиотеки ............................................................................................................89 Концепция библиотеки ................................................................................................................91 Пример использования .................................................................................................................93 Документация ..................................................................................................................................94 Геоанализ и геообработка .................................................................................................................95 Библиотека Shapely ........................................................................................................................95 Инсталляция библиотеки ............................................................................................................95 Концепция библиотеки ................................................................................................................97 Пример использования .................................................................................................................99 Документация ...............................................................................................................................100 Визуализация геоданных ...............................................................................................................101 Библиотека Mapnik .....................................................................................................................101 Инсталляция библиотеки .........................................................................................................102 Концепция библиотеки .............................................................................................................103 Пример использования ..............................................................................................................105 Документация ...............................................................................................................................107 Заключение .........................................................................................................................................107 Глава 4. Источники геоданных ......................................... 109 Источники геоданных в векторном формате ..........................................................................110 Геоданные проекта OpenStreetMap .......................................................................................110 База данных TIGER ....................................................................................................................113 Геоданные веб-сайта Natural Earth ........................................................................................117 Географическая база данных GSHHG ..................................................................................119 Набор данных границ стран мира ..........................................................................................121 Источники геоданных в растровом формате ...........................................................................122 Геоданные проекта Landsat .......................................................................................................123 Геоданные веб-сайта Natural Earth ........................................................................................127 Геоданные проекта GLOBE .....................................................................................................130 Национальный набор данных рельефа ................................................................................132 Источники геоданных других типов ..........................................................................................136 База данных сервера географических названий GEOnet ..............................................136 Данные информационной системы географических названий США.......................138 Выбор источника геоданных .........................................................................................................140 Заключение .........................................................................................................................................140 Глава 5. Решение задач с геоданными на Python ................. 142 Необходимые условия .....................................................................................................................142 Общие задачи с использованием геоданных ...........................................................................143
Содержание 7 Задача: вычисление ограничительной рамки для всех стран мира .....................................................................................................................143 Задача: вычисление границы между Таиландом и Мьянмой .......................................145 Задача: анализ высот на основе цифровой карты местности .......................................147 Смена датумов и проекций ............................................................................................................153 Задача: смена проекции для совмещения файлов фигур с географическими и UTM-координатами ................................................................................................................153 Задача: перевод из одного датума в другой для совмещения свежих данных TIGER со старыми ......................................................................................................................157 Выполнение геопространственных расчетов ..........................................................................160 Задача: идентификация национальных парков внутри и в окрестностях городских агломераций..............................................................................................................161 Конвертирование и стандартизация единиц геометрии и расстояния ..........................166 Задача: вычисление длины границы между Тайландом и Мьянмой .........................166 Задача: нахождение точки в 132.7 км к западу от г. Шошоун, шт. Калифорния .......173 Упражнения ........................................................................................................................................174 Заключение .........................................................................................................................................176 Глава 6. Пространственные базы данных ........................... 177 СУБД с поддержкой пространственных данных ...................................................................177 Пространственные индексы ..........................................................................................................178 Знакомство с PostGIS......................................................................................................................181 Инсталляция СУБД PostgreSQL ...........................................................................................183 Инсталляция расширения PostGIS .......................................................................................184 Установка адаптера psycopg2 ...................................................................................................185 Настройка СУБД ..............................................................................................................................186 Создание учетной записи пользователя Postgres .............................................................186 Создание базы данных ...............................................................................................................187 Разрешение доступа к базе данных .......................................................................................187 Включить поддержку пространственных данных ...........................................................187 Использование расширения PostGIS ........................................................................................187 Документация по PostGIS ........................................................................................................191 Продвинутый функционал PostGIS .....................................................................................191 Наиболее успешные практические приемы .............................................................................192 Рекомендуем: используйте базу данных для отслеживания пространственных привязок ....................................................................................................192 Рекомендуем: используйте для данных приемлемую пространственную привязку ..........................................................................................................................................194 Рекомендуем: избегайте динамических трансформаций внутри запроса ...............196 Рекомендуем: не создавайте геометрии внутри запроса ................................................197 Рекомендуем: грамотно используйте пространственные индексы ............................198 Рекомендуем: учитывайте пределы оптимизатора запросов своей СУБД .............198 Заключение .........................................................................................................................................201
Содержание Глава 7. Генерирование карт при помощи Python и библиотеки Mapnik ...................................................... 202 Введение в библиотеку Mapnik ....................................................................................................202 Создание образца карты .................................................................................................................209 Понятия библиотеки Mapnik ........................................................................................................214 Источники данных ......................................................................................................................214 Правила, фильтры и стили .......................................................................................................217 Символизаторы ............................................................................................................................220 Карты и слои ..................................................................................................................................229 Визуализация карты ...................................................................................................................230 Заключение .........................................................................................................................................232 Глава 8. Работа с пространственными данными .................. 234 Описание приложения DISTAL ..................................................................................................234 Проектирование и конструирование базы данных ...............................................................238 Скачивание и импорт данных .......................................................................................................242 Набор данных границ стран мира ..........................................................................................242 Географическая база данных береговых линий GSHHG ...............................................243 Географические названия США .............................................................................................244 Географические названия остальных мест ..........................................................................246 Реализация приложения DISTAL ...............................................................................................249 Сценарий «выбрать страну» ....................................................................................................251 Сценарий «выбрать область» .................................................................................................253 Сценарий «показать результаты» .........................................................................................263 Использование приложения DISTAL ..................................................................................268 Заключение .........................................................................................................................................269 Глава 9. Совершенствование приложения DISTAL ................ 270 Обработка линии антимеридиана ...............................................................................................270 Решение проблемы масштабирования ......................................................................................276 Производительность ........................................................................................................................280 Поиск проблемы ...........................................................................................................................280 Улучшение производительности ............................................................................................282 Использование сегментов береговых линий ......................................................................291 Анализ повышения производительности ............................................................................292 Заключение .........................................................................................................................................293 Глава 10. Инструменты для разработки геопространственных веб-приложений ............................. 294 Инструментарий и методика для геопространственных веб-приложений ..................294 Веб-приложения ..........................................................................................................................295 Веб-службы ....................................................................................................................................300
Содержание 9 Стэк «скользящей карты».........................................................................................................305 Геопространственные веб-протоколы ...................................................................................306 Анализ трех конкретных инструментов ...................................................................................308 Протокол TMS ..............................................................................................................................308 Библиотека OpenLayers .............................................................................................................313 Модуль GeoDjango ......................................................................................................................317 Заключение .........................................................................................................................................325 Глава 11. Собираем все вместе – полнофункциональная картографическая система ............................................. 326 О системе ShapeEditor.....................................................................................................................326 Проектирование системы ShapeEditor ......................................................................................330 Импорт файла фигур ..................................................................................................................330 Выбор геообъекта .........................................................................................................................332 Правка геообъекта .......................................................................................................................334 Экспорт файла фигур .................................................................................................................334 Необходимые компоненты ............................................................................................................334 Настройка базы данных ..................................................................................................................335 Настройка проекта ShapeEditor ...................................................................................................335 Определение приложений ShapeEditor ....................................................................................337 Создание общего приложения shared ........................................................................................337 Определение моделей данных ......................................................................................................339 Объект Shapefile ...........................................................................................................................339 Объект Attribute ...........................................................................................................................340 Объект Feature ..............................................................................................................................340 Объект AttributeValue ................................................................................................................341 Файл models.py ............................................................................................................................341 Знакомство с подсистемой администрирования ...................................................................344 Заключение .........................................................................................................................................350 Глава 12. ShapeEditor – импорт и экспорт файлов фигур ...... 351 Реализация режима просмотра списка файлов фигур ........................................................351 Импорт файлов фигур .....................................................................................................................355 Форма для импорта файлов фигур ........................................................................................355 Извлечение выгруженного файла фигур из архива ........................................................358 Импорт содержимого файла фигур .......................................................................................361 Очистка ...........................................................................................................................................368 Экспорт файлов фигур ..............................................................................................................369 Заключение .........................................................................................................................................376 Глава 13. ShapeEditor – выбор и правка геообъектов ........... 377 Выбор геообъекта для правки .......................................................................................................378 Реализация сервера сборных цифровых карт ....................................................................378
Содержание Отображение карты при помощи библиотеки OpenLayers ..........................................398 Перехват нажатий кнопкой мыши .........................................................................................404 Реализация режима просмотра «Найти геообъект» ........................................................406 Правка геообъектов ..........................................................................................................................412 Добавление геообъектов .................................................................................................................418 Удаление геообъектов ......................................................................................................................421 Удаление файлов фигур ..................................................................................................................423 Использование системы ShapeEditor ........................................................................................424 Дальнейшие усовершенствования и улучшения ...................................................................424 Заключение .........................................................................................................................................425 Глоссарий сокращений и основных терминов .................... 427 Сокращения ........................................................................................................................................427 Термины ...............................................................................................................................................430 Предметный указатель ................................................... 436