Geohashing

~ 12 Nov 2010, 22:41

Рекох да напиша една статия за geohashing-а, тъй като това е нещо хубаво и интересно, а разпространенито му в БГ към момента е нулево...

1. Що е то GEOHASHING и има ли то почва у нас?
Всичко тръгва от един епизод на xkcd, в който Randall описва метод за генериране на (практически) случайна точка на картата в твоята област и те подканя да идеш да я посетиш (излетче из природата един вид). Алгоритъмът генерира нови координати всеки ден, навсякъде по земното кълбо, като хората от твоята област получават същите координати, както и ти - което е предпоставка да се съберете на едно място няколко geek-а, които едновременно обичат да скитосват из природата (с GPS в ръка :p ) и не се срамуват да abuse-ват възможностите на технологиите :). А, и са фенове на xkcd, това със сигурност.

Иначе казано, алгоритъмът генерира по едно потенциално приключение всеки ден, защото до geohash точката обикновено не е толкова лесно да отидеш, а изисква известна доза целеустременост, предварително планиране и малко гадаене дали точката е практически достижима - припомням, че координатите й са практически случайни, и като нищо може да се падне на склона на отвесна скала, или да е затънтена надълбоко в гората, или пък да се падне на територията на военно поделение, и пр.

2. Окей.. дай по-подробно.. какви са тия области? Как така са едни и същи координатите за всички?
Ами нали помните, че Земята е разделена условно на паралели и меридиани, които образуват една мрежа от пресичащи се линии? Е, ако вземете най-фините възможни целочислени деления на тази мрежа (през един градус), то образуваните клетки с размер 1°×1° се наричат гратикули. България се намира на ширини от 41.5 до 44 (С.Ш.) и на дължини от 23 до 28 (И.Д.) и на нейна територия се намират 13-15 гратикула (в зависимост дали включвате някои по границата). Всеки от тези гратикули представляват областите, за която става дума в geohashing-а, т.е. на geohash точката се събират хората от един и същ гратикул.
Гратикулите са достатъчно големи, че да включват средно по един голям град на гратикул - размерите им към нашите ширини са 111km (север-юг) на 82km (изток-запад). Например, София се намира на координати 42° 42' N, 23° 20' E, което я поставя в гратикул 42,23. Софийският гратикул се простира от Своге до Благоевград, и от Перник до Ихтиман:

Image.

Ако идем един градус на изток (42,24), попадаме в Пловдивския гратикул и т.н.

Алгоритъмът не си играе да раздава отделни геохъш¹ точки за всеки гратикул. Вместо това, той генерира двойка отмествания (дробни числа в [0..1)), които ползвате за дробна част към вашия гратикул - и това всъщност представлява геохъш точката. Самият метод ползва източник на ентропия - в случая - промишленият индекс Dow Jones на американския фондов пазар (със същия успех можеше да се ползва и курсът USD/EUR, естествено). Този индекс е достатъчно непредвидим за целите на geohashing-а, и се публикува всеки ден сутринта, щатско време. Та, този източник на ентропия се комбинира с текущата дата, и цялата тази информация се прекарва през MD5 хеш функция, с цел да се вземе едно равномерно "случайно число", което е базирано на този вход. Тъй като MD5 има много добри avalanche характеристики, дори минимално отклонение на Dow Jones стойността (например, промяна с ±1 на най-младшия разряд) оказва огромно значение за крайните координати и праща геохъш точката на съвсем друго място.
Поради споменатите особености на генериращия алгоритъм, и непредвидимостта на DJ индекса, нетния резултат е, че посещенията на геохъш точките са спонтанни: имате максимум ден-два да видите къде е точката и да планирате експедицията. Понеже, както казах, точките рядко са достъпни, става едно "дебнене" ден за ден - кога ще се "падне" удобна точка за посещение и прочее.

3. Къде и кога се публикуват тези точки?
Конкретно за България, геохъш точките се публикуват късно вечер и важат за следващия ден. Понеделник вечер излиза точката за Вторник, Вторник вечер - за Сряда и т.н.; Изключение е петък вечер - петъчния индекс определя точките за Събота, Неделя и Понеделник за българските дължини - т.е. за уикендите обикновено имате повече време за планиране.

Вие, естествено, няма нужда да смятате нищо — вижте по-долу.

4. Окей, искам да играя! Какви са правилата на играта?
1. Правите си регистрация в wiki-то (препоръчително).
2. Тук се намира днешната геохъш точка за Софийския гратикул (но можете да изберете някой друг град - просто цъкнете върху него, ще ви се покаже вашата област. Може и директно да смените числата в URL-то).
3. След като решите да правите геохъш експедиция, е желателно да документирате намеренията си, като създадете страница за събитието (името на страницата е от вида година-месец-ден_сев. ширина_изт. дължина). В страницата е хубаво да впишете към колко часа планирате да се докопате до геохъш точката, за да можете да се координирате с другите геохъшове и да си направите среща, ако има и други желаещи. Естествено, можете и да си направите експедицията инкогнито, но така стават още по-нищожни дори малките ви шансове да се засечете с други геохъшове. Изборът дали да социализирате си е ваш!
4. Естествено, следва самата експедиция. Ходите дотам, ако искате с кола, с градски транспорт, с колело, пеш, с парапланер... като се ориентирате по GPS, или само с компас и карта, или със секстант :)...
5. Като пристигнете на мястото, традицията е да оставите някакъв знак (купчинка камъни/символ от камъчета/лист с надпис като "The internet was here" например/ или друг неперманентен маркер). Правите снимки, опъвате си пикникче, играете игри, отивате да пиете бири с другите геохъшове - каквото си измислите - геохеширането е социална дейност.
6. Като се приберете вкъщи, не забравяйте да отбележите успеха от експедицията ви в wiki страничката, която сте направили, и я окичете с походящите постижения!. Ако пък ви е домързяло да правите страничка, поне драснете един ред в справочника на вашия гратикул - той е от вида http://wiki.xkcd.com/geohashing/<ширина>,<дължина> - ето например Софийския гратикул.


5. Малко факти и наблюдения
* Първата геохъш експедиция в България, за която аз знам, е на Иван и Стела, в Пловдивския гратикул, без употреба на GPS (или дори компас), и без кола (ако някой има информация за по-ранна експедиция - нека ми пише, да се коригирам!).
* Софийският гратикул не е от най-удобните, тъй като голяма част от него е планински и е труднодостъпен дори и през лятото.
* Напълно е възможно да се падне лесен geohash. Даже, ако стоите на едно място и просто дебнете, шансовете са във ваша полза в течение на 3 години да ви се падне геохъш точка във вашия квартал!
* На peeron картата горе София изглежда като значима част от гратикула си, но това е подвеждащо - нейната площ е едва 1.4% от тази на целия гратикул. В резултат на което, геохъш точка вътре в София се пада средно веднъж на 2-3 месеца. Например, една наскоро беше на бул. Вардар, кв. Красна Поляна - 8-ми Септември 2010.
* Имайте предвид, че google maps не е изключително прецизен в географските координати, т.е. не е задължително "точката", която той показва, при зададени прецизни координати, да съвпада с действителното място на точката по GPS. Отклонение от 50-100 метра е нормално.


Заключение: Ето - вече знаете всичко за geohashing-а! Сега остава и да направите дебютната си експедиция (хинт: на 15 Ноември има точка в Западен Парк, София :p)

----
¹ понеже джиохеш звучи грозно на български, предлагам "геохъш" като една доста по-благозвучна транслитерация



Коментари:

#1 от Иван, изпратено на 31 Jan 2013, 09:25


Ти работа нямаш ли си :)


#2 от Иван, изпратено на 30 Jan 2013, 09:18


Олеле от кога не съм пробвал геохъша :) Всъщност след онзи първи опит така и не дойде време за нов... Няколко пъти съм следил координатите, но все отиваха на майната си. Всъщност излезе като закон - ако 5% от гратикула е кофти планински терен, 95% от геохъшовете ще се паднат в него :)


#3 от anrieff, изпратено на 31 Jan 2013, 00:32


Оф, а да знаеш какъв ultimate coach potato туул си сковах миналата година. Тегли Dow Jones дата от peeron. Смята координатите и ги сравнява с 30-40 полигона, които съм надраскал - очертанията на по-големите градове в България. Когато се падне вътре в град, или поне близо ти печата инфо кой град е. Трябва да взема да го публикувам в github, но на yahoo finance нещо им се сбъгяса източника на исторически Dow Jones данни и сега туулката няма как да си направи първоначалното инициализиране на базата данни. Няколко тривиални геохъша в София съм изпуснал, че все се падаха в някакви много напечени дни...




Име:
За връзка: (Линк към вашия блог/сайт/e-mail; незадължително)
Вашият коментар:

Сметнете израза: корен квадратен от(тридecет и три минус тридeсет и двe) = (въведи с цифри)


<<

Valid XHTML 1.0 Strict