Где располагается файл для геоникса geotree
Несмотря на большой прорыв в области приложений для создания топографических планов в настоящее время, многие «по старинке» пользуются для создания цифровой модели местности и отрисовки горизонталей на топографических планах программой CREDO TER. Однако метод, который используется в программе для этого, неудобен и можно сказать, что уже морально устарел. Конечно, можно порассуждать, что многие организации до сих пор пользуются комплексом CREDO для проектирования и создания топопланов, но прогресс не стоит на месте, и как показал опыт, есть способ построения ЦММ и отрисовки горизонталей, гораздо проще и удобнее. Это программа — Geonics3D.
Кроме отрисовки горизонталей, практически все задачи, выполняемые CREDO, так же можно делать и в Geonics3D (подсчёт объёмов, построение чертежей разрезов, и многие другие).
Для того, чтобы импортировать точки с координатами в чертёж, — их необходимо внести в базу данных проекта. Это можно сделать в уже созданном чертеже, импортировав геоточки из (почти) любых объектов чертежа, или загрузить из текстового файла, полученного в результате обработки в CREDO или напрямую из файла со списком точек с координатами и отметками. В своём примере я покажу, как импортировать точки из файла с координатами из CREDO DAT.
Разберём один из способов построения поверхности, используя Геоникс:
1. Открываем (или создаём) новый проект:
2. Задаём имя нового проекта:
в заголовке должны отобразиться параметры чертежа и его привязка к проекту:
3. В навигаторе выбираем пункт «Установки геоточек» — это необходимо для задания параметров точек, их вида на чертеже, точности и другого:
параметры должны быть примерно такими:
4. Импортируем геоточки в проект из текстового файла:
выбираем файл для импорта:
Формат нашего файла с точками (обычно такой получается при экспорте из CREDO) имеет вид:
Для того, чтобы точки корректно импортировались в проект, — нужно создать формат для импорта:
загружаем наш файл и настраиваем параметры, задавая какие колонки в файле каким данным соответствуют:
после создания формата для импорта, — указываем или создаём группу для импорта наших точек:
После этого на чертеже появится следующая картина (она может отличаться незначительно, если были заданы другие свойства геоточек):
5. Заходим в проводник проекта
Откроется проводник проекта, в котором раскрываем меню объектов, правой кнопкой мыши на пункте «Поверхности» выбираем «Создать поверхность»
задаём имя будущей поверхности:
6. Добавляем в поверхность наши точки:
7. Создаём границу нашей будущей поверхности:
Для создания границы поверхности последовательно «проходим» все граничные точки, в конце правым щелчком мыши выбираем «замкнуть» для замыкания созданного контура:
8. Строим поверхность:
проверяем параметры, при необходимости — корректируем:
должна получиться примерно такая поверхность:
9. Переходим к созданию горизонталей.
Для этого в палитрах инструментов в разделе «рельеф» выбираем меню «построение горизонталей»:
Сразу отобразится меню программы создания горизонталей:
После проверки и задания необходимых параметров построения, программа спросит о необходимости удаления старых горизонталей. Так как у нас не было старых горизонталей, — выбираем «нет»
Получаем вот такой чертёж:
Как видим, чертёж требует корректировки (собственно, — ничего удивительного, это обычное дело). продолжим редактирование, удалив лишние точки (панель инструментов, раздел «рельеф» — «редактировать геоточки» / удалить). Их так же можно не удалять с чертежа, а просто исключить из группы, которую мы указывали для построения поверхности:
Указываем, какие точки нужно удалить с чертежа:
Выбираем конкретные точки:
Программа удалит геоточку, и она не будет в дальнейшем участвовать в построении поверхности, но нужно будет эту поверхность перестроить и обновить горизонтали.
Получается участок нашей поверхности, уже без точки и с новыми горизонталями:
Вот такой простой и быстрый способ построения поверхности с уже готовыми полилиниями, и без необходимости их приведения к «человеческому виду» после CREDO TER.
Для более сложного построения, как и в КРЕДО, — можно задавать структурные линии, строить внутренние контура, дополнять чертёж другими точками, корректировать контура поверхностей, создавать другие поверхности, делать разрезы и многое другое.
Создание модели рельефа по файлу координат точек съемки
Допустим, в нашем распоряжении имеется текстовый файл, представленный на рис. 24.
Рис. 24
Мы видим здесь пять колонок данных, разделенных пробелами. В первой колонке — номер точки съемки, во второй — координата Х, в третьей — Y, в четвертой — отметка, в пятой — описание точки.
- Создаем чертеж и открываем проект.
- Создаем поверхность «Рельеф».
- Создаем новый формат для импорта данных из текстового файла, для чего запускаем Менеджер форматов и в появившемся окне нажимаем кнопку Добавить (рис. 25).
Рис. 25
В появившемся окне Формат файла точек (рис. 26) вводим имя формата, расширение импортируемого файла, отмечаем опцию С разделителем и обязательно вставляем в окошко рядом символ пробела. Затем нажимаем кнопку Добавить колонку и выбираем назначение первой колонки, снова нажимаем кнопку Добавить колонку Для проверки правильности созданного формата можно здесь же загрузить и просмотреть исходный файл (кнопки Загрузить и Анализ).
Рис. 26
Рис. 27
Рис. 28
14 комментариев на «Создание рельефа местности и отрисовка горизонталей с помощью Geonics3D»
После импорта, в командной строке прописано «импорт н-количества точек произведен», а точки в рабочем окне не появляются. Делаю все как прописано! Что можно сделать с такой проблемой?
А всё ли в порядке с координатами? Правильно ли были расставлены колонки в окне настройки шаблона импорта?
Косяк с шаблонам был, поправил все прошло! Спасибо!
Попробуй колесиком мыши пошелкать пару раз
та же фигня(( делаю всё строго в соответствии с инструкцией, но точки на рабочем пространстве не появляются (хотя полоска загрузки пробегает). колонки десять раз проверил — всё верно. в чём ещё может быть причина??
Есть подозрение, что нужно заменить разделители дробных частей в текстовом файле (точки/запятые или наоборот)
обезательно галочку поставь вставить в чертеж
Спасибо за инструкцию. Очень помогла. Если не сложно, подскажите, можно ли здесь считать обьем земляных работ? Зарание спасибо!
Сам не пробовал, но говорят, что можно. Суть — такая же, как в кредо, — надо 2 поверхности создать.
Подскажите, не могу импортировать геоточки из текстового файла, делаю все по инструкции, выдает : Импортировано геоточек — 0.
Надо в исходном файле (.ТХТ) убрать исходные точки с которых производилась съемка
Зачем же? Если они вровень с землёй были забиты, — никаких проблем.
Я сталкивался с этой проблемой и отличным решением было удаление точек с которых производилась съемка.
Обработка данных
Для нашей задачи нам необходимо соотнести между собой почтовые индексы зданий и районы города.
Чтобы не обрабатывать лишних зданий, оставим только те из них, у которых заполнено поле с индексом:
Как видим, на слое с точками почти не осталось зданий, поэтому дальше будем использовать только слой с полигонами зданий (несмотря на то, что в нем это поле оказалось заполнено только у 5%, 13 тысяч нам должно хватить).
В целевой таблице мы хотим увидеть следующие колонки:
- Почтовый индекс
- OSM-ID района города, в котором чаще всего встречаются здания с этим индексом
- Доля зданий с этим индексом, которые находятся в его "основном" районе. Эта метрика нужна, чтобы проверить, не слишком ли разбросаны по городу здания с этим почтовым кодом.
Код для создания такой таблицы
Итоговая таблица выглядит следующим образом:
Источник данных
Источником данных был выбран OpenStreetMap (он же OSM). Это картографический сервис, наполняемый по принципу Википедии — желающие могут редактировать данные, добавлять недостающую информацию и так далее.
Быстрая проверка качества карт показала вполне адекватное отображение как крупных городов, так и мелких деревень и сел. Подробнее про качество данных и способы их наполнения можно почитать на официальной странице OSM.
Чтобы выгрузить данные с OSM, мы воспользовались помощью специализированного агентства (как делать выгрузки самостоятельно, можно почитать тут).
Мы выбрали NextGis, однако есть и другие агентства, чьей помощью можно воспользоваться для выгрузки и обработки данных.
На NextGis можно за символическую плату подготовить карту Москвы (заняла ~30 минут) и за чуть менее символическую — всей России (заняла ~4 дня). Также можно подготовить выгрузку по произвольной области.
Карта есть — теперь нужно понять, как выстроить связь между почтовыми кодами (к которым привязаны наши данные) и нужными нам уровнями детализации (город / район и тд).
Исходно была надежда на эталонный справочник Почты России, однако оказалось, что наполнение его далеко от идеала (например, для почтового кода может быть указано, в каком городе он находится, но не в каком районе). К тому же в России, в отличие, например, от США, здания с одним и тем же почтовым кодом могут находиться в разных районах города, или даже в разных городах.
В результате было решено опереться на все тот же OpenStreetMap. На одном из слоев карты представлены отдельные здания, у части из которых заполнено поле с почтовым кодом.
Если найти все дома с определенным почтовым кодом, а потом определить, в каком районе города находится большинство из них, можно определить, какой район является для данного индекса "основным".
Понятно, что такой подход имеет ряд ограничений. Например, могут найтись районы, в которых нет ни одного здания с заполненным индексом, могут быть ошибки при его написании и многие другие потенциальные косяки.
В то же время, в итоге выполнения этого упражнения мы увидели вполне удовлетворительные результаты (подробнее о них будет написано в разделе "Проверка").
В общем, проще показать, чем объяснить, так что переходим к делу!
Создание модели рельефа по старому DWG-чертежу
Допустим, имеется старый DWG-файл, где расположение объектов в пространстве модели не соответствует их изыскательским координатам, горизонтали отрисованы полилиниями на отметке 0, а точки съемки — блоками с атрибутом, в котором содержится отметка. Создание модели рельефа по этому чертежу не потребует много сил и времени.
-
Открываем старый чертеж в программе GeoniCS 2004 (рис. 20).
Рис. 20
Рис. 21
Рис. 22
Рис. 23
Об авторе evgenich
Формат файлов
Оптимальным для нашей задачи оказался формат Shapefile.
Не вдаваясь в подробности, Shapefile — это векторный формат, с помощью которого можно отобразить геометрические фигуры (например, районы города), а также привязать к ним ряд параметров для отображения (например, население в каждом районе).
Основные релевантные термины, которыми мы будем оперировать:
- Точка — Сочетание широты и долготы
- Линия — Последовательность из нескольких точек, соединенных между собой в фиксированном порядке
- Полигон — Замкнутая линия, у которой совпадают первая и последняя точка\
Подробнее про различные элементы можно почитать в замечательной статье.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
Геодерево (меню навигатора) – текстовый файл, доступный пользователю для изменения. Пользователь, даже не разбираясь в синтаксисе, легко может устранить лишнее и переструктурировать меню "под себя", удаляя и меняя местами строки.
Будет в формате unicod.
Структура ttd файла.
ttd файл описывает структуру дерева, которое состоит из узлов и конечных вершин (далее – вершин).
Поля разделяются символом точкой с запятой.
Описание узла топодерева.
Отображаемое название в топодереве
Отображаемая иконка *.ico 16*16 32 цв.
или из дерева, или D:\Downloads\7010.ico::/7010;
Вызываемая страничка помощи из chm файла
Обязательны поля: 1, 2
Узел 3 уровня вложенности, отображаемое название 2 Рельеф.
Манипулирует слоями, которые начинаются с символа 2.
Описание вершины топодерева.
Отображаемое название в топодереве
Вызываемая функция или команда
Отображаемая иконка *.bmp 16*16 32 цв.
Вызываемая страничка помощи из chm файла
Обязательны поля: 1, 2, 3.
21100000 Горизонтали утолщенные Л;
(dbznak "21100000" 1);
Подробное описание структуры ttd файла
Уровень определяет вложенность узлов (вершин) в дереве. Причем, вложенный уровень должен отличаться от родительского на единицу. Если последующая вершина имеет уровень, больший, чем текущий, тогда эта вершина становится узлом. При формировании дерева следите, чтобы уровень вершин, находящихся под узлом, был больше на 1.
Название – отображаемый текст в топодереве.
Команда – 1) для узла отображает тулбар (первым символом тулбара должна быть *);
2) для вершины выполняемая команда при выборе вершины дерева. Для отрисовки знака используется функция (dbznak код знака 0).
Слой – название слоя, с которым будет производится манипуляции (включить, отключить, оставить только этот слой). Возможна работа с группой слоев, если указывается символ * в конце фрагмента названия слоя.
Иконка - иконка, которая отображается в топодереве. *.bmp 16*16 32 цв. Это ресурс файла GeoniCS.dll
Можно добавить свои знаки в *.ttd файл. Можно сделать отдельно файл со своими знаками, потом его загрузить в нужную закладку с помощью команды gtload.
2;31320000 Глубины водоемов T; (dbznak "31320000" 0);
4;21 Рельеф, выраженный горизонталями;*21 Рельеф, выраженный горизонталями;21*;IDB_NODE_OPEN;
Действие: вставляет данные из указанного файла на текущий уровень. Не использовать после узла (узел превращается в пункт). Если не указан путь, то файл берется из каталога, где находится вызывающий файл.
Действие: вставляет данные из указанного файла как подуровень.
Комментарий – строки, начинающиеся с точки с запятой (;) – в начале могут быть пробелы.
Геодерево (меню навигатора) – текстовый файл, доступный пользователю для изменения. Пользователь, даже не разбираясь в синтаксисе, легко может устранить лишнее и переструктурировать меню "под себя", удаляя и меняя местами строки.
Будет в формате unicod.
Структура ttd файла.
ttd файл описывает структуру дерева, которое состоит из узлов и конечных вершин (далее – вершин).
Поля разделяются символом точкой с запятой.
Описание узла топодерева.
Отображаемое название в топодереве
Отображаемая иконка *.ico 16*16 32 цв.
или из дерева, или D:\Downloads\7010.ico::/7010;
Вызываемая страничка помощи из chm файла
Обязательны поля: 1, 2
Узел 3 уровня вложенности, отображаемое название 2 Рельеф.
Манипулирует слоями, которые начинаются с символа 2.
Описание вершины топодерева.
Отображаемое название в топодереве
Вызываемая функция или команда
Отображаемая иконка *.bmp 16*16 32 цв.
Вызываемая страничка помощи из chm файла
Обязательны поля: 1, 2, 3.
21100000 Горизонтали утолщенные Л;
(dbznak "21100000" 1);
Подробное описание структуры ttd файла
Уровень определяет вложенность узлов (вершин) в дереве. Причем, вложенный уровень должен отличаться от родительского на единицу. Если последующая вершина имеет уровень, больший, чем текущий, тогда эта вершина становится узлом. При формировании дерева следите, чтобы уровень вершин, находящихся под узлом, был больше на 1.
Название – отображаемый текст в топодереве.
Команда – 1) для узла отображает тулбар (первым символом тулбара должна быть *);
2) для вершины выполняемая команда при выборе вершины дерева. Для отрисовки знака используется функция (dbznak код знака 0).
Слой – название слоя, с которым будет производится манипуляции (включить, отключить, оставить только этот слой). Возможна работа с группой слоев, если указывается символ * в конце фрагмента названия слоя.
Иконка - иконка, которая отображается в топодереве. *.bmp 16*16 32 цв. Это ресурс файла GeoniCS.dll
Можно добавить свои знаки в *.ttd файл. Можно сделать отдельно файл со своими знаками, потом его загрузить в нужную закладку с помощью команды gtload.
2;31320000 Глубины водоемов T; (dbznak "31320000" 0);
4;21 Рельеф, выраженный горизонталями;*21 Рельеф, выраженный горизонталями;21*;IDB_NODE_OPEN;
Действие: вставляет данные из указанного файла на текущий уровень. Не использовать после узла (узел превращается в пункт). Если не указан путь, то файл берется из каталога, где находится вызывающий файл.
Действие: вставляет данные из указанного файла как подуровень.
Комментарий – строки, начинающиеся с точки с запятой (;) – в начале могут быть пробелы.
У многих хоть раз возникала необходимость быстро нарисовать карту города или страны, нанеся на нее свои данные (точки, маршруты, тепловые карты и т.д.).
Как быстро решить такую задачу, откуда взять карту города или страны для отрисовки — в подробной инструкции под катом.
Недавно в работе возникла необходимость в отрисовке карты России на различных уровнях детальности (субъекты, города, городские районы) и подтягивании к ней ряда данных.
Грубо говоря, нужно было подготовить тепловую карту наподобие такой:
Источник
Задача осложнялась тем фактом, что у нас не было подходящего файла с картой для визуализации, а данные, которые мы планировали отобразить, хранятся в привязке к почтовому коду (то есть, у нас нет привязки к субъекту федерации / городу / району).
В этой статье я поделюсь своим опытом касательно поиска подходящего источника данных, использования формата .shp и библиотеки geopandas.
Формально, решение задачи сводится к трем шагам:
- Поиск данных — карты России на разных уровнях детализации
- Мэтчинг данных с картой из шага "1"
- Проверка результатов, празднование
Ниже я опишу процесс выполнения каждого из этих шагов, поделюсь релевантным кодом, а также приведу ссылки на полезные ресурсы, которые встретились на моем пути.
Установка и импорт библиотек
Для всей нашей работы понадобится библиотека Geopandas, а также всем известные Pandas, Matplotlib и Numpy.
При установке Geopandas через pip на Windows выскакивает ошибка, так что рекомендую воспользоваться conda install geopandas .
Рисуем тепловую карту
Результат:
Видно, что часть районов не отобразилась — к сожалению, в них не было ни одного здания с заполненным почтовым индексом
С точки зрения проверки качество результатов, основной риск заключался в том, что будет много почтовых индексов, разбросанных по разным районам города.
Ниже — распределение метрики share_in_main_area
Считаем долю индексов, у которых меньше половины зданий находятся в "основном" для них районе:
Такие результаты нас вполне устраивают.
Geopandas — крайне удобный инструмент. При наличие даже небольшого опыта работа с Matplotlib и Pandas разобраться в нем не составит труда.
OSM — кладезь информации для визуализации различных геоданных, которые можно использовать без необходимости серьезных преобразований.
Ну а я с вами прощаюсь и надеюсь, что статья оказалась полезной!
Если возникнут вопросы или конструктивная критика — буду ждать вас в комментариях.
Предлагаем вашему вниманию первый из цикла материалов, посвященных приемам работы в популярной программе GeoniCS Топоплан-Рельеф-Генплан. Эти материалы помогут пользователям самостоятельно освоить продукт, а также узнать о его новых возможностях, которые будут появляться в приложении к AutoCAD 2004.
Предлагаем вашему вниманию первый из цикла материалов, посвященных приемам работы в популярной программе GeoniCS Топоплан-Рельеф-Генплан. Эти материалы помогут пользователям самостоятельно освоить продукт, а также узнать о его новых возможностях, которые будут появляться в приложении к AutoCAD 2004.
Тема этой статьи — создание цифровой модели рельефа из тех исходных данных, которые обычно имеются у проектировщиков генплана или изыскателей. Перечислим три наиболее распространенных варианта:
- Топоплан только на твердом носителе (бумага, планшет).
- Топоплан в виде DWG-файла, примитивы которого имеют нулевую отметку по оси Z.
- Текстовый файл с координатами и отметками точек съемки, полученный в результате обработки полевых наблюдений.
Рассмотрение вариантов начнем с самого трудоемкого.
Создание модели рельефа по растровой подложке
Напомню, что создание корректной модели рельефа потребует качественной растровой подложки. Следовательно, в программе RasterDesk (или Spotlight, если удобнее задействовать машину без AutoCAD) вам понадобится выполнить минимальный набор операций:
- сканирование исходного материала с разрешением 300−400 dpi;
- автоматическая чистка полученного файла, удаление «мусора» (эта операция значительно улучшает вид выводимых на печать документов и сокращает размер файлов);
- редактирование растрового изображения: удаление, добавление или перенос частей растра;
- калибровка растра: корректировка геометрических искажений по координатной сетке или любому набору опорных точек;
- сшивка отсканированных фрагментов в один файл.
Рис. 1. Фрагмент растрового изображения до и после чистки
Итак, мы получили растровый файл с изображением топоосновы — без «мусора» и геометрических искажений. Запускаем GeoniCS.
Рис. 2
- Задаем масштаб итогового чертежа (рис. 2).
Указанный масштаб повлияет только на размер отображаемых внемасштабных условных знаков, текстов, ширину полилиний. Все координаты и размеры в пространстве модели чертежа должны соответствовать реальным числам, выраженным в метрах (одна единица AutoCAD равна одному метру). Чертеж указанного масштаба программа сформирует в пространстве листа (layout). - Создаем проект, то есть папку с файлами и подпапками, в которых GeoniCS сохраняет модели поверхностей, созданных по данному объекту, базу точек съемки Создать модель поверхности, не указав имя проекта, невозможно!
Рис. 3
Рис. 4
Рис. 5
Программа предлагает вариант разбиения модели на планшеты (голубые линии на рис. 5). Выбрав по правой клавише режим «Переместить», можно редактировать положение планшетов — например, введя координаты угла планшета с клавиатуры. Планшет заданного масштаба формируется в пространстве листа (рис. 6), сама же модель не засоряется элементами зарамочного оформления.
Рис. 6
Если в дальнейшем вы собираетесь передавать чертеж соисполнителю, не забудьте передать и файл растрового изображения: чертеж DWG содержит только ссылку на файл растра и параметры его вставки. Кстати, в выпадающем меню Файл AutoCAD есть очень хорошая команда Сформировать комплект, как раз и предназначенная для компактной передачи данных. Она формирует файл самораспаковывающегося архива, в котором содержатся и сам DWG, и необходимые файлы растров, и даже файлы использованных шрифтов…
Вернемся теперь в пространство модели и приступим наконец к созданию модели рельефа.
Рис. 7
Мы дали имя модели поверхности, но для ее построения нам понадобится создать ряд объектов, имеющих не только соответствующие координаты (X, Y), но и высотные отметки (Z).
Рис. 8
Завершив оцифровку горизонтали, можно по правой клавише выбрать команду Замкни или Enter, а затем «+» или «-» (в этом случае отметка следующей горизонтали изменится на заданный интервал) либо ввести любую отметку с клавиатуры и выполнить оцифровку следующей горизонтали. Цифровать все горизонтали не обязательно: если мы работаем с фрагментом, где горизонтали расположены параллельно и на одинаковом расстоянии, достаточно оцифровать первую и последнюю из них.
Рис. 9
Добавленная информация отображается в окне Проводника проекта (рис. 10).
Рис. 10
Рис. 11
Оцифрованные точки попадают в базу данных проекта, где их можно просматривать, сортировать, редактировать и объединять в группы.
Рис. 12
Рис. 13
Рис. 14
Имейте в виду, что отметки вершин границы поверхности участвуют в построении модели, поэтому следует использовать объектную привязку к вершинам горизонталей и узлам геоточек. Для контроля программа выводит отметку каждой вершины в командной строке — ее нужно или подтвердить щелчком по правой клавише мыши, или ввести с клавиатуры другое значение. Не забудьте замкнуть отрисованную границу.
Рис. 15
Отрисованные 3D-грани представляют собой адекватное графическое отображение математической модели поверхности, которая хранится в соответствующих файлах проекта независимо от чертежа DWG. Мы отрисовали 3D-грани только для того, чтобы отобразить на экране результат построения (рис. 16).
Трехмерные грани можно просматривать с помощью 3D-орбиты и тонировать (рис. 17).
Рис. 17
Рис. 18
Редактируя модель, мы можем применять следующие операции: флип (переброска ребер треугольников), изменение отметки вершины (при этом меняются отметки вершины всех сопряженных треугольников), перемещение вершины, вставка вершины, вставка грани (ее часто называют треугольником), удаление грани. На рис. 19 можно видеть, как выгодно отличается вид горизонтали слева от отметки 87.35 после выполнения операции Флип; теперь нужно выполнить флип справа…
Рис. 19
Работа над моделью завершается ее тщательным просмотром и редактированием. После этого можно передавать чертеж и папку проекта проектировщикам — именно там, в папке, а не в чертеже хранится модель рельефа.
Открываем Shapefile
Карты наши поставляются в виде zip архива.
При его открытии в папке data можно найти множество файлов с разными расширениями. Это различные слои, для каждого из которых есть основной файл (расширение .shp) и вспомогательные (расширения .cpg, .dbf, .prj, .shx).
Несколько моментов, на которые следует обратить внимание при начале работы с geopandas:
- Архив крайне эффективно ужимает карту. Например, архив с картой всей России весит 1.2GB, а при распаковке он занимает уже 22.8GB. Таким образом, не стоит распаковывать архив — лучше выгрузить из него нужные нам слои (благо geopandas позволяет это делать без использования дополнительных библиотек)
- Разные поля могут быть в разных кодировках. Например, в нашем примере административные границы были в кодировке 'cp1251', а остальные поля — в 'utf-8'
- При работе с несколькими слоями, взятыми из разных источников, могут возникнуть проблемы с их отображением из-за разных проекций карт. Подробнее об этой проблеме и способах ее решения можно почитать тут.
Результат:
В результате мы имеем шесть переменных GeoDataFrame, в каждой из которых находятся разные варианты отображения карты Москвы. Отрисовать их можно очень просто:
Результат:
Чтобы разобраться, что именно мы видим на каждом уровне отрисовки, советую взглянуть на соответствующую страницу на сайте OSM. Это будет особенно важно при отрисовке карты всей России — слои в Москве и Питере могут хранить отличные от остальной России уровни детализации.
Аналогичным образом можем отрисовать слой со зданиями. Из-за большого количества объектов отрисовка займет чуть больше времени, зато и картинка получится красивая.
Также можно наложить несколько слоев карты один на другой:
Тут можно почитать про разные варианты отрисовки слоев в gpd.
Приятно удивило, что в Geopandas работают привычные команды из Pandas. Можно посмотреть все атрибуты слоя в виде таблицы, где каждая строка будет описывать отдельный объект (точку, линию или полигон), изменение и создание атрибутов также можно выполнять, как при работе с обычным Датафреймом.
Среди всех атрибутов нам наиболее важны 2:
- OSM_ID — уникальный идентификатор объекта OpenStreetMap
- geometry — координаты для отрисовки полигона или точки
Читайте также: