Nano Hash - криптовалюты, майнинг, программирование

Определите штат США по координатам GPS без использования онлайн-сервиса

Я анализирую твиты, и мне нужно определить, в каком штате (в США) находился пользователь, по его координатам GPS. У меня не будет доступа к Интернету, поэтому я не могу использовать онлайн-сервис, такой как Google Maps API, для обратного геокодирования.

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


  • Используйте алгоритм точки в многоугольнике, чтобы определить, находится ли координата внутри состояния (представленного многоугольником с координатами GSP в виде точек). С практической точки зрения не похоже, что вам удастся это слишком сильно улучшить. 07.07.2014
  • @Nuclearman Спасибо, что указали мне правильное направление; это именно то, что я искал. Вы можете написать свой комментарий в качестве ответа, и я его приму. 07.07.2014
  • Я обычно публикую такие короткие ответы в виде комментариев, поскольку это своего рода подбрасывание вопроса о том, находится ли плакат в той же ситуации, что и вы, или он действительно ищет что-то более подробное. Полагаю, легче удалить неточный комментарий, чем отредактировать / удалить неточный (с точки зрения спрашивающего) ответ. 07.07.2014

Ответы:


1

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

Однако части Аляски находятся по обе стороны 180-го меридиана, что создает проблемы. Одним из решений было бы немного сместить координаты, добавив 30 градусов по модулю 180 к долготе для каждой координаты GPS (координаты пользователя и координаты состояния). Это приводит к перемещению 180-го меридиана примерно на 30 градусов к западу, и должно быть достаточно, чтобы все США находились на одной стороне 180-го меридиана.

07.07.2014
  • Насчет Аляски. Будет ли ошибка при отображении координат GPS, скажем, во Флориде, в отличие от Аляски. 07.07.2014
  • Очень мало шансов перепутать местоположения Аляски и Флориды, они хорошо разделены по широте и долготе. Немного осторожности требуется с Аляской, у которой есть местоположения по обе стороны от +/- 180 долготы. 07.07.2014
  • @HighPerformanceMark: Должно быть, я это пропустил, глядя на свой глобус, иначе острова крошечные. Отредактировал свой ответ. 07.07.2014

  • 2

    Глядя на форму состояний на карте логики / широты, становится очевидным, что, вероятно, 70% границ выровнены по осям долгота / широта. Другие следуют по очень линейным или близким к линейным путям. Похоже, что "хорошо продуманное" дерево bsp должно быть самым быстрым способом решить, в каком состоянии находится местоположение. в.

    Определение «хорошо продуманный» сложно установить, но я бы посоветовал вам попытаться сбалансировать устраняющие государства (весь штат находится на стороне A или B этой линии) с быстрой изоляцией крупных населенных пунктов. В идеале, если вам нужно разделить штат линией, постарайтесь сделать это так, чтобы крупные населенные пункты находились по одну сторону линии.

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

    07.07.2014
    Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..