оптимизация рабочего процесса по выгрузке векторных данных

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
Аватара пользователя
Miklide
Новоприбывший
Сообщения: 2
Зарегистрирован: 30 окт 2016, 10:27
Репутация: 0

оптимизация рабочего процесса по выгрузке векторных данных

Сообщение Miklide » 02 ноя 2016, 00:15

Привет, я графический дизайнер, делаю инфографику для новостного сайта. Недавно пришло понимание, что отрисовывать векторные карты вручную дело контрпродуктивное. Поэтому задался вопросом добычи векторных данных города и последующей их выгрузки в иллюстратор.

Типичная задача: создать карту отключения воды в городе
Необходимые данные: Районы города, улицы и дороги, отдельные здания и зоны.

Текущий рабочий процесс:
1. Загружаю данные региона OSM в QGIS
2. С помощью плагина "OSM place search" нахожу нужные объекты.
3. Через фильтр атрибутов выделяю объекты (занимает больше всего времени)
4. Копирую данные в новый слой через "paste features as..."
4. Дорисовываю границы объектов которые в OSM обозначены точками, рисую нестандартные шейпы.
5. Задаю стили отдельных объектов, применяю их к другим подобным через плагин "MultiQML"
6. Экспортирую SVG для доработки и аннотации в иллюстраторе

Вопросы:
1. Можно ли в таблице атрибутов фильтром выделять диапазон объектов? Например нужно выбрать дома с 12 по 32 на улице Ленина. Сейчас фильтрую по A_STRT и вручную кликаю на номера домов выбрав "Coloumn preview A_HSNMBR". Про регулярные выражения знаю, но не до конца логику их понимаю. Не писать же для каждого нового номера здания "... OR ("A_HSNMBR" ILIKE '%12%') OR ("A_HSNMBR" ILIKE '%13%')" и т.д.
2.Может предложите более оптимальный процесс поиска и выделения объектов? По хорошему, чтобы был полнотекстовый поиск по загруженным в QGIS данным. (OSM place search ищет в онлайне, насколько я понял)
3. Еще очень странная проблема - в различных полях ввода раз в три-четыре буквы появляются случайные символы. Что с этим можно поделать?
Изображение

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: оптимизация рабочего процесса по выгрузке векторных данн

Сообщение trir » 02 ноя 2016, 04:58

python osm overpass
и вообще один ваш коллега придумал такую вещь как d3.js

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: оптимизация рабочего процесса по выгрузке векторных данн

Сообщение Максим Дубинин » 02 ноя 2016, 08:17

а что не так с

Код: Выделить всё

 "A_HSNMBR" > 10 AND  "A_HSNMBR" <35
А про полнотекстовый поиск вопрос не понятен, вы разницу между структурированной информацией и поиском по ней и неструктурированной чувствуете? Или вы хотите "найди мне все дома номер которых меньше такого и больше такого" вводить?

trir, да отвечайте вы давно уже про вот так: google
Ей богу - полезнее будет. Вам конкретный вопрос, а вы набор абстрактных технологий. SQL и Excel еще забыли добавить в список, тоже могу помочь.
пристегивайтесь, турбулентность прямо по курсу

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: оптимизация рабочего процесса по выгрузке векторных данн

Сообщение trir » 02 ноя 2016, 08:40

http://bl.ocks.org/ninjaPixel/7f244063ca7171fc9a67
"A_HSNMBR" > 10 AND "A_HSNMBR" <35
там ведь строка в номере дома
да отвечайте вы давно уже про вот так: google
надо ведь подсказать, что гуглить

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: оптимизация рабочего процесса по выгрузке векторных данн

Сообщение freeExec » 02 ноя 2016, 08:50

Максим Дубинин писал(а):а что не так с

Код: Выделить всё

 "A_HSNMBR" > 10 AND  "A_HSNMBR" <35
Надо только учесть, что номера домов это текст, и дом "5" будет больше "10", с другой стороны это помогает когда идут буквы в номере и "10А" попадёт в выборку. Ну и про угловые дома не стоит забывать, они могут быть по другой улице.

А какая может быть оптимизацию запросов: ведь подавляющее большинство ищется только по имени?

П.С. Так же интересно, а указывается копирайт источника геоданных на инфографике?

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: оптимизация рабочего процесса по выгрузке векторных данн

Сообщение trir » 02 ноя 2016, 09:28

"A_HSNMBR" > 10 AND "A_HSNMBR" <35

Код: Выделить всё

"A_HSNMBR" LIKE '[1-3][0-9]' and Not ("A_HSNMBR" LIKE '1[0-2]' or "A_HSNMBR" LIKE '3[3-9]')

Аватара пользователя
Miklide
Новоприбывший
Сообщения: 2
Зарегистрирован: 30 окт 2016, 10:27
Репутация: 0

Re: оптимизация рабочего процесса по выгрузке векторных данн

Сообщение Miklide » 02 ноя 2016, 20:37

Спасибо за ответы
trir писал(а):python osm overpass
и вообще один ваш коллега придумал такую вещь как d3.js
D3 слишком низкоуровневое и интерактивное решение для моей ситуации. На выходе мне нужно получать статичный джпег, с аннотациями, расширенной типографикой и другими графическими элементами. В данном случае получение векторных слоев это лишь часть рабочего процесса. В этом смысле у QGIS порог вхождения в разы ниже.
trir писал(а):

Код: Выделить всё

 "A_HSNMBR" LIKE '[1-3][0-9]' and Not ("A_HSNMBR" LIKE '1[0-2]' or "A_HSNMBR" LIKE '3[3-9]')
Поясните пожалуйста синтаксис выражения, что здесь является номерами домов, и чему служат диапазоны цифр в квадратных скобках?
Максим Дубинин писал(а):а что не так с

Код: Выделить всё

 "A_HSNMBR" > 10 AND  "A_HSNMBR" <35
Спасибо, это то что нужно. Может подскажете, где можно доступно почитать про различные операторы с точки зрения цели использования (а не полного перечисления возможностей). Можно на английском
Максим Дубинин писал(а): А про полнотекстовый поиск вопрос не понятен, вы разницу между структурированной информацией и поиском по ней и неструктурированной чувствуете? Или вы хотите "найди мне все дома номер которых меньше такого и больше такого" вводить?
Получается различные слои из проекта GisLab это не структурированные данные и поиск по ним возможен только по атрибутам в отдельных слоях?

Принципиально чем пользоваться мне не важно, главное – это максимально сократить время поиска и выбора данных. Вот например как выглядит набор входящих запросов:
мкр. Лоскутово, мкр. Апрель, пос. Геологов {границы}
ул. Радиоцентр {все дома в рамках улицы}
ул. Водяная, 18 {отдельные дома на отдельных улицах}
ул. Белозерская, 8, 8а, 8б {диапазоны домов}
пр. Комсомольский, 6а, 11, 13б; {Дома вне диапазона на одной улице}
ул. Ново-Ачинская от дома № 14б до пр. Комсомольского {визуальные границы выбора}
freeExec писал(а):П.С. Так же интересно, а указывается копирайт источника геоданных на инфографике?
Конечно, наравне с другими источниками

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: оптимизация рабочего процесса по выгрузке векторных данн

Сообщение trir » 02 ноя 2016, 21:20

[1-3][0-9] это 10 - 39
1[0-2] это 10 - 12
3[3-9] это 33 - 39
про RegEx полно материалов в инете, в принципе статьи в Википедии мне было достаточно

Ваши "запросы" весьма туманны - нужно понимать структуру данных OSM и структурировать запрос под них. Для прямого доступа к данным OSM - служит Overpass API
Запросы можно делать прямо в браузере

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: оптимизация рабочего процесса по выгрузке векторных данн

Сообщение Ariki » 03 ноя 2016, 00:51

А с каких пор LIKE работает с регулярными выражениями? Для регулярок в QGIS есть функция regexp_match().

Чтобы легче было сортировать по номерам домов, лучше отделить номер дома от литеры и выделить его в отдельное числовое поле (QGIS даже позволяет создавать вре́менные поля). Сделать это можно в калькуляторе полей выражением

Код: Выделить всё

to_int(regexp_substr(A_HSNMBR, '(\\d+)'))
И затем можно смело выбирать диапазон выражением

Код: Выделить всё

15 <= temp_field AND temp_field <= 30
Выбрать все дома по списку значений можно так:

Код: Выделить всё

A_HSNMBR IN ('6а', '11', '13б')

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость