Страница 1 из 1
Построение "температурной" карты скоростей
Добавлено: 23 мар 2016, 10:57
amnesiac
Добрый день! Есть такая задача - построить карту распределения скоростей на участках дорог города с выделением областей концентрации высоких и низких скоростей с интерполяцией. Входные данные - участки дорог на перегонах между перекрестками, у каждого перегона определена скорость.
Посоветуйте, пожалуйста, инструмент, которым грамотно было бы это сделать. На выходе требуется карта визуально типа вот такой

- Пример.JPG (4.61 МБ) 6365 просмотров
Но там я использовала инструмент определения плотности точек, которые здесь не подойдет. Как сделать что-то похожее на этих входных данных? Может быть нужно изолинии построить или TIN?
Re: Построение "температурной" карты скоростей
Добавлено: 23 мар 2016, 11:42
rhot
Что мешает наставить точек на перегонах и использовать тот же инструмент?
Re: Построение "температурной" карты скоростей
Добавлено: 23 мар 2016, 12:12
amnesiac
По смыслу не подходит, не то получается. Перегоны в центре короче, чем на окраинах, соответственно и плотность точек будет больше, а скорость на окраинах наоборот больше, но перегоны длиннее, так что плотность точек меньше. Даже учитывая в поле генеральной совокупности скорость, картина недостоверная абсолютно
Re: Построение "температурной" карты скоростей
Добавлено: 23 мар 2016, 15:23
gamm
amnesiac писал(а):На выходе требуется карта визуально типа вот такой
затея странная (отчего бы просто сами дороги не раскрасить+толщину не менять, как это обычно градостроители делают), но осуществимая. Снести значения скорости на точки вдоль линий с частым шагом, и интерполировать с точек. Например, используя GDAL (растеризация) + какой-нибудь интерполятор. Наверняка, и в Арке есть что-то, позволяющее наставить точек вдоль линий, и снести на них значения. Потом интерполировать.
Re: Построение "температурной" карты скоростей
Добавлено: 23 мар 2016, 16:06
amnesiac
Не знаю как насчет странности, как в Яндекс пробках сделать легко, но руководству требуется вдобавок именно обозначенное. Чтобы были видны очагово районы, где заторы.
Пока что у меня на 1 перегон 1 точка, их я и интерполировала. Просто поскольку в статистике я не сильна, не очень понимаю, правильный ли я инструмент выбрала для этой задачи.
Re: Построение "температурной" карты скоростей
Добавлено: 23 мар 2016, 17:59
rhot
gamm писал(а):amnesiac писал(а):На выходе требуется карта визуально типа вот такой
затея странная (отчего бы просто сами дороги не раскрасить+толщину не менять, как это обычно градостроители делают), но осуществимая. Снести значения скорости на точки вдоль линий с частым шагом, и интерполировать с точек. Например, используя GDAL (растеризация) + какой-нибудь интерполятор. Наверняка, и в Арке есть что-то, позволяющее наставить точек вдоль линий, и снести на них значения. Потом интерполировать.
А я что предложил?
Re: Построение "температурной" карты скоростей
Добавлено: 23 мар 2016, 18:11
gamm
rhot писал(а):А я что предложил?
если я правильно понял, то наставить точек с густотой, пропорциональной скорости, что сложнее.
Сейчас у ТС одна точка на сегмент, и без переноса данных - это совсем плохо. Если перенести скорость на эту точку, и вместо подсчета густоты интерполировать, то будет лучше.
P.S. на том же R написать такой скриптик нужно полчаса, на Python внутри Арки не умею.
Re: Построение "температурной" карты скоростей
Добавлено: 23 мар 2016, 18:12
gamm
amnesiac писал(а):Чтобы были видны очагово районы, где заторы.
если районы заданы, то можно нашинковать ваши дороги по районам, и посчитать средневзвешенные скорости.
P.S. приближенное решение не выходя из Арки: делаем векторную сетку (вроде зовут fish net), ею режем на кусочки все дороги, сносим значения скорости на центры кусочков, интерполируем результат в грид (если в модуле геостатистики использовать кригинг с линейно вариограммой, то будет достаточно красиво). Эффект самородков (nugget) позволяет регулировать сглаживание.
Re: Построение "температурной" карты скоростей
Добавлено: 29 мар 2016, 16:40
amnesiac
Спасибо большое! Сделала так, как вы посоветовали - получилось красивенько) Но не точно, наверное инструмент надо лучше знать, какие параметры задавать. Красные пятна заторов получились там, где улиц даже нет. Поэтому пришлось переделать по-другому.
В конечном итоге я сделала точки на перегонах с интервалом 10м и интерполировала методом ОВР. Получилось довольно четко.
Re: Построение "температурной" карты скоростей
Добавлено: 29 мар 2016, 17:13
gamm
amnesiac писал(а):Красные пятна заторов получились там, где улиц даже нет.
это дело поправимое - сносите дороги на растр, делаете дистанционное преобразование (грид расстояния до дорог), и превращаете его во что нибудь типа exp(-0.5*dist*dist/(s*s)) - эта функция падает до примерно нуля на расстоянии примерно 2*s от дорог. И умножаете на это результат интерполяции - все, что далеко от дорог, обнулится. Будет красиво ...
Re: Построение "температурной" карты скоростей
Добавлено: 06 апр 2016, 15:13
amnesiac
Спасибо! Попробую разобраться, но пока не поняла, что значит "делаете дистанционное преобразование (грид расстояния до дорог)" и все, что за ним следует. То есть вообще плохо поняла)) Объясните, если не трудно!
Re: Построение "температурной" карты скоростей
Добавлено: 06 апр 2016, 17:27
gamm
amnesiac писал(а):Спасибо! Попробую разобраться, но пока не поняла, что значит "делаете дистанционное преобразование (грид расстояния до дорог)" и все, что за ним следует. То есть вообще плохо поняла)) Объясните, если не трудно!
просто считаете расстояние до (от) дорог, и все. Как эту кнопку в Арке зовут, не знаю, поскольку не пользуюсь. Считаете на сетку той же конструкции, что и "тепловая карта", и умножаете значения на exp(-0.5*dist*dist/(s*s)). На большом расстоянии от дорог умножится на ноль (и пятно исчезнет), на маленьком (в том числе на дороге и около нее) - на примерно 1, и пятно сохранится