После долгого перерыва мы возобновили разработку YourMaps и добавили сразу ряд новых функций. О проекте, для которых мы их добавили, расскажем подробнее в отдельном посте, а пока краткое описание нововведений.
Загрузка CSV файлов
Теперь можно загрузить файл с таблицей, в которой два столбца задают широту и долготу. В CSV должен быть заголовок, задающий названия столбцов.
Каждая строка в файле будет превращена в объект с точечной геометрией, все остальные столбцы станут тегами объекта.
В итоге из вот такого вот CSV файла:
Будет получена вот такая карта:
Узлы, выдающие числа
Появился новый вид связей между узлами - числовой. Появились узлы, которые по потоку объектов выдают число: например, среднее значение указанного тега. Далее такой числовой выход можно подключить к числовому входу другого узла.
Вот так можно это использовать, чтобы получить выборку всех зданий, имеющих высоту выше средней. Узел tag_stats вычисляет среднее значение тега building:levels, а затем оно используется в узле filter_by_tag_value:
Статистические методы
Помимо узлов, позволяющих считать квартили и прочие статистические значения, мы добавили еще операцию фильтрации выбросов. Узел filter_outlier использует стандартный алгоритм, основанный на межквартильном расстоянии, для удаления объектов со слишком "выдающимися" значениями указанного тега.
Объекты без геометрии
Некоторые узлы теперь могут выдавать объекты, не имеющие геометрии. Например, узел Group By группирует объекты по значениям определенного тега и выдает по сути таблицу, содержащую значения тега и количество объектов с этим значением. Но эта таблица внутри себя является тем же набором геообъектов, просто геометрия у них пустая.
Это некий костыль, чтобы изначально ориентированная на геообъекты система YourMaps могла работать с таблицами в Pandas-like стиле. Если сохранить такие объекты в результат работы пайплайна, их нельзя будет увидеть на карте, но можно будет скачать в виде GeoJSON и увидеть глазами в текстовом редакторе.