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

Каковы некоторые эффективные алгоритмы покрытия ограничивающей рамки Geohash?

Мое требование:

Учитывая ограничивающую рамку широты и долготы, верните набор геохэшей таким образом, чтобы:

  • Количество геохэшей в наборе должно быть небольшим (от 1 до 5 прямоугольников геохеш
    ), если это возможно.
  • Покрытие должно быть как можно ближе к входной ограничивающей рамке широты и долготы. Допуск около +/- 10%. Можно немного прикрыть и/или немного прикрыть.
  • Он должен быть эффективным и может выполняться на мобильном устройстве.

Меня больше всего интересует алгоритм или концептуальный подход. Я планирую реализовать его на Java/Obj-C для Android и iOS, если не существует реализации с открытым исходным кодом.


Ответы:


1

В этом Java-проекте на github https://github.com/davidmoten/geo есть задокументированный алгоритм выполнения того, что ты хочешь. В частности, он также хорошо работает на границах области геохеша (а именно на полюсах и на линии долготы -180/180).

Боюсь, что небольшое количество геохешей (от 1 до 5), а также допуск около 10% не сработают. Всего с 5 геохешами многие прямоугольники будут покрыты геохешами на 600% площади целевого прямоугольника. На самом деле для приведенного ниже примера, чтобы попасть в 10% области, требуется 667 хэшей!

Вот таблица, взятая из ридми на сайте геопроекта:

В качестве быстрого примера, для ограничительной рамки, пропорции которой больше похожи на экран с Скенектади, штат Нью-Йорк, и Хартфорд, штат Коннектикут, США по углам:

Вот количество хэшей для разных длин хэшей:

m — размер в квадратных градусах общей области хеширования, а a — площадь ограничивающего прямоугольника.

length  numHashes m/a    
1       1         1694   
2       1         53     
3       4         6.6    
4       30        1.6    
5       667       1.08   
6       20227     1.02   

Используемый алгоритм эффективен, а соответствующий код не зависит от других артефактов, поэтому его не составит труда развернуть на мобильном устройстве, поддерживающем Java (например, Android).

19.09.2013
  • Спасибо за вашу библиотеку. 25.09.2013
  • Если у вас есть координата и вы хотите получить все геохэши с точностью до 3 символов, которые охватывают указанный радиус этой координаты, каков подход к получению этих геохэшей? 28.01.2019
  • Привет, Дэйв, для длины хеша 10 и радиуса 10,0 км (10 000 м) сколько геохэшей будет сгенерировано? Я пытаюсь найти алгоритм, который генерирует все возможные Geohash в пределах заданного радиуса от заданной точки (широта-долгота). 27.11.2019
  • Новые материалы

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

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

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

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

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

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

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