Существует несколько задач для решения этой проблемы. Возможно, вы захотите разделить обязанности между различными инструментами на разных этапах, скажем, с помощью Python или R, чтобы выполнить предварительную работу по подготовке и обогащению данных, после чего Tableau сделает некоторую интерактивную визуализацию в дальнейшем.
В дополнение к инструментам, о которых вы упомянули, я рекомендую потратить некоторое время на знакомство с пространственными базами данных, такими как PostGIS с открытым исходным кодом. Oracle и Microsoft также имеют пространственные расширения для своих баз данных. С пространственной базой данных вы можете хранить пространственные данные, такие как точки, многоугольники и пути, вместе с реляционными данными, и они также имеют встроенные пространственные функции.
Основные задачи для рассмотрения:
Геокодирование - преобразование адресов в пространственные координаты. Вы захотите использовать для этого веб-сервис геокодирования, возможно, позвонив ему по номеру Python или R. Это то, что вы хотели бы сделать один раз заранее при подготовке новых данных для анализа, а затем сохранить результат для повторного использования. на более поздних этапах.
Вычисление вороных многоугольников. Этот алгоритм разбивает плоскость на многоугольники так, чтобы все точки внутри многоугольника находились ближе всего к определенной точке. Поэтому, если вы хотите узнать, какие области находятся ближе всего к каждой из 5 больниц, диаграмма вороной разделит карту на непересекающиеся регионы, с одним полигоном для каждой больницы, содержащей области, которые находятся ближе к этой больнице, чем любая другая. Поэтому, если ваши больницы не перемещаются, вы должны один раз вычислить полигоны Вороного и сохранить результат для повторного использования. В Python и R есть библиотеки, которые могут это сделать. PostGIS также имеет функцию для вычисления вороного многоугольника.
Тестирование попаданий. Этот шаг проверяет, попадает ли точка в многоугольник. Вы можете выполнить проверку попадания, вызвав выделенные функции R или Python, но я рекомендую вместо этого использовать пространственную базу данных, такую как PostGIS. Затем вы можете выполнить проверку попадания, вызвав функцию или используя оператор пространственного соединения INTERSECTS. Вы можете оптимизировать производительность, создав пространственный индекс для своих полигонов после загрузки их в базу данных.
Презентация, суммирование. Вот где полезна таблица. Вы можете отображать пространственные данные, такие как точки и многоугольники, непосредственно из пространственной базы данных, если вы ее используете, а также легко вычислять сводную статистику, например, проценты, которые вы упомянули.
Более поздние версии Tableau имеет еще большую поддержку пространственных данных и может вычислять расстояния и буферы, хотя это может все же быть быстрее, чем pu sh, которые работают в пространственной базе данных.
Этот момент, вероятно, очевиден для многих людей, но только для быть ясным ... Описанный выше подход хорошо работает, когда точки, по которым вы измеряете, скажем, больницы, имеют стационарные местоположения c, поэтому стоит потратить время на предварительное вычисление полигонов Вороного и создание любых пространственных индексов, а также когда у вас есть много точек, которые вы sh должны проверить. В этих случаях предварительно вычисленные многоугольники и пространственные индексы могут окупиться приростом производительности.
Для небольших наборов данных вы, конечно, можете просто вычислить расстояние между каждым возможным источником и каждым возможным пунктом назначения, а затем выбрать соединение с наименьшее расстояние. Этот простой, но грубый метод становится менее осуществимым по мере роста числа точек данных, и в этом случае его больше стоит потратить на go, выполнив описанные выше шаги.