Найти тему

Размышления об аналитике или как вычислить адрес по фотографии из окна

Оглавление

Вступление

Анали́тика — часть искусства рассуждения — логики, рассматривающая учение об анализе — операции мысленного или реального расчленения целого (вещи, свойства, процесса или отношения между предметами) на составные части, выполняемая в процессе познания или предметно-практической деятельности человека.

Именно такое определение можно встретить первым результатом по запросу «аналитика» в поисковике.

По роду же своей профессиональной деятельности (разработка прикладного программного обеспечения) часто приходится сталкиваться с дебатами про бизнес-аналитиков, системных аналитиков и т.д. Слушать дискуссии кто есть кто, что должен уметь каждый.

Как по мне, так любой аналитик - это человек, который может собрать массив информации в одном формате, отбросить лишнее, выделить важное, найти общие закономерности и сделать какие-то выводы уже в другом нужном формате. А остальные слова рядом с «аналитик» принципиально влияют только на виды информации, которую получают в начале и которую должны предоставить в конце. Кто-то собирает «хотелки» и формирует продукты компании, кто-то преобразовывает эти продукты в нужное формализованное поведение, которое уже может быть реализовано различными алгоритмами и появиться в виде того самого прикладного программного обеспечения.

Давайте попробуем немного побыть «фото-гео-аналитиком».

Предыстория

В одном из чатов на шутку про Останкинскую башню, была прислана фотография с сообщением «Вот башня», которая только что была сделана из окна.

Исходное изображение
Исходное изображение

Достаточно ли у нас исходных данных, чтобы определить адрес здания из которого была сделана фотография в первой половине дня? И второй немаловажный аспект: разумно ли время, которое придется потратить на решение такой задачи?

Большинство людей почему-то отвечают на данные вопросы отрицательно. Ну и еще удивляются, если озвучить, что решение потребовало примерно 15 минут и пару общедоступных интернет-сервисов.

Тоже не согласны? Ну давайте поработаем аналитиком.

Отбросить лишнее

В данной задаче менее важная часть процесса, с учетом поставленной цели. Если задача будет решена в разумные сроки, то не столь критично, если мы «что-то проигнорируем». Если, конечно, это не GPS координаты в метаинформации файла или табличка с адресом здания напротив, которые позволят найти решение за одну минуту, вместо двух дней.

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

Выделить важное

Останкинская башня. Основной участник событий. Она одна и она в Москве. Город - это уже хорошо, говорят "Москва не резиновая", но и не маленькая. Интернет сообщает, что высота башни порядка 540 метров или 120 «эквивалентных» этажей. Лично я не знаю способ определить удаленность в таких условиях точнее, чем «ну пара-тройка километров по прямой». Хотя позже встречал методы относительно точных расчетов, если известно фокусное расстояние, разрешение, физические размеры матрицы фотоаппарата.

Здания. На переднем плане у нас их два. Слева что-то из советского времени и выглядит этажей на 9. Справа кирпич, четырехскатная крыша, выходы с чердака, металлические ограждения, жестяные внешние водоотводы по углам здания, «карнизы перед крышей»(не уверен, что корректное название). Суммарно тоже создает впечатление советского времени постройки только в виде пятиэтажного здания.

На заднем плане есть высотки. Справа три «близнеца», слева высотка поменьше, но где-то в том же комплексе. С какими-то «числами» ситуация похуже Останкинской башни. Тут понятно, что они будут ниже её ну и где-то поближе относительно точки съемки.

Автомобили. Я заметил четыре и достаточно близко. Может быть и проезжей частью в три/четыре полосы, и запаркованной дворовой территорией, стоянкой. Но справа можно увидеть какой-то логотип, намек на спецсигнал и стрелу манипулятора. Если в поисковике набрать «москва эвакуатор минтранс», то фотографии таких зеленых MAN с надписью «Московский паркинг» будет очень много. Вероятно, что это проезжая часть. Расстояние до «пятиэтажки» тоже достаточное, чтоб допускать вариант с улицей.

«Мало ли улиц в Москве?» - хороший повод усомниться в важности этих данных. Но у нас есть еще фонарь уличного освещения и значительное расстояние между «пятиэтажкой» и «девятиэтажкой». И суммарно это дает повод допустить, что есть перекресток. Да, их тоже не мало в Москве, но явно меньше, чем улиц (ведь один перекресток - это минимум две улицы).

Найти общие закономерности

Что общего между советской пятиэтажкой, эвакуатором, Останкинской башней, четыремя высотками и дорожным фонарем? Звучит, как типичный вопрос из интернет-теста «Какой ты шизофреник?».

Но если попробовать применить накопленный жизненный опыт, то можно вспомнить о триангуляции. И её частный случай использования в мобильной связи. «У меня отключен GPS, как телефон знает местоположение?» - это как раз оно. Грубо говоря, чтобы определить местоположение телефона нужны данные по удаленности от трех сотовых вышек.

Сотовые вышки мы, конечно же, искать не будем, но «применимость» - это и не про прямое использование какой-то теории. Давайте возьмем только основу алгоритма: три точки отсчета и расстояние до них.

Три точки отсчета. Главный претендент - это Останкинская башня, осталось найти еще две. Пара высоток на дальнем плане образует некий «створ» для Останкинской башни, но для выполнения роли точек отсчета нам не известно их местоположение.

-3

«…в первой половине дня?» важная информация, которую мы еще не использовали. Пока солнце стабильно продолжает восходить на востоке, мы можем поискать на картах группу подходящих высоток в сторону юго-запада от башни, ограничив удаленность парой километров. И достаточно быстро можно обнаружить ЖК «Савеловский Сити», который как раз включает в себя башни Whiteman, Ellington, Coltrane, Armstrong.

Точки отсчета есть, но что делать с удаленностью от них все еще вопрос. А ничего, смириться, обнять колени руками и начинать плакать… скорректировать алгоритм под наши потребности.

Есть три точки и отношение между ними, значит можно построить достаточно точный вектор в сторону искомого объекта. Банально приложив линейку к монитору можно посчитать, что Останкинская башня располагается «ближе к левой высотке» процентов на 10. Включаем уже линейку на карте, находим расстояние между высотками на максимальном приближении, потом определяем точку позиционирования примерно в 55% от башни Whiteman. И тем же инструментом «линейка» откладываем прямую от Останкинской башни, через рассчитанную нами точку позиционирования, километров на 6-7. У меня получилось примерно так.

-4

Финишная прямая. Включаем панорамы улиц и просматриваем места где построенная нами прямая либо пересекает перекрестки, либо проходит к ним достаточно близко. При этом нас интересуют не особо широкие улицы.

Итог

Через 15 минут я в чат написал шутку про вид на останкинскую башню с расстояния *.** км и выбор здания, где есть **********. Автор фотографии и участник чата, который в курсе адреса, отреагировали удивленными смайликами. Кто-то уточнял смысл данных фраз уже на созвоне следующего дня, а я написал эту статью, как способ отвлечься от рутины трудовых будней нового проекта.

P.S. А вы вычислили адрес? Или может быть знаете способ оптимизации описанного решения? Буду рад увидеть ответы в комментариях, как и любую конструктивную обратную связь.