Äcdocutils.nodes
document
q)Åq}q(U	nametypesq}q(X���using geohashes for plottingqNX���using geohashes for searchingqNX���introductionqNX���geohash algorithmq	NX���searchmetadata.htmlq
àX+���spatial search and plotting using geohashesqNX"���dataone search index and geohashesqNuUsubstitution_defsq
}qUparse_messagesq]qUcurrent_sourceqNU
decorationqNUautofootnote_startqKUnameidsq}q(hUusing-geohashes-for-plottingqhUusing-geohashes-for-searchingqhUintroductionqh	Ugeohash-algorithmqh
Usearchmetadata-htmlqhU+spatial-search-and-plotting-using-geohashesqhU"dataone-search-index-and-geohashesquUchildrenq]qcdocutils.nodes
section
q)Åq }q!(U	rawsourceq"U�Uparentq#hUsourceq$Xc���/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/geohash.txtq%Utagnameq&Usectionq'U
attributesq(}q)(Udupnamesq*]Uclassesq+]Ubackrefsq,]Uidsq-]q.haUnamesq/]q0hauUlineq1KUdocumentq2hh]q3(cdocutils.nodes
title
q4)Åq5}q6(h"X+���Spatial Search and Plotting Using Geohashesq7h#h h$h%h&Utitleq8h(}q9(h*]h+]h,]h-]h/]uh1Kh2hh]q:cdocutils.nodes
Text
q;X+���Spatial Search and Plotting Using Geohashesq<ÖÅq=}q>(h"h7h#h5ubaubh)Åq?}q@(h"U�h#h h$h%h&h'h(}qA(h*]h+]h,]h-]qBhah/]qChauh1Kh2hh]qD(h4)ÅqE}qF(h"X���IntroductionqGh#h?h$h%h&h8h(}qH(h*]h+]h,]h-]h/]uh1Kh2hh]qIh;X���IntroductionqJÖÅqK}qL(h"hGh#hEubaubcdocutils.nodes
paragraph
qM)ÅqN}qO(h"X™��A geohash is an encoded character string that is computed from geographic
coordinates. For example the approximate latitude and longitude of The National
Center For Ecological Analysis and Synthesis is 34.419279, -119.698472 from
which the geohash of *9q4gu1y4z* can be derived. The geohash algorithm is
bidirectional, so geographic coordinates can be encoded into geohashes and
geohashes can be decoded to obtain coordinates.h#h?h$h%h&U	paragraphqPh(}qQ(h*]h+]h,]h-]h/]uh1Kh2hh]qR(h;X˚���A geohash is an encoded character string that is computed from geographic
coordinates. For example the approximate latitude and longitude of The National
Center For Ecological Analysis and Synthesis is 34.419279, -119.698472 from
which the geohash of qSÖÅqT}qU(h"X˚���A geohash is an encoded character string that is computed from geographic
coordinates. For example the approximate latitude and longitude of The National
Center For Ecological Analysis and Synthesis is 34.419279, -119.698472 from
which the geohash of h#hNubcdocutils.nodes
emphasis
qV)ÅqW}qX(h"X���*9q4gu1y4z*h(}qY(h*]h+]h,]h-]h/]uh#hNh]qZh;X	���9q4gu1y4zq[ÖÅq\}q](h"U�h#hWubah&Uemphasisq^ubh;X§��� can be derived. The geohash algorithm is
bidirectional, so geographic coordinates can be encoded into geohashes and
geohashes can be decoded to obtain coordinates.q_ÖÅq`}qa(h"X§��� can be derived. The geohash algorithm is
bidirectional, so geographic coordinates can be encoded into geohashes and
geohashes can be decoded to obtain coordinates.h#hNubeubhM)Åqb}qc(h"X]��Geohashes have the property that characters can be incrementally removed from
the right side of the geohash to represent a geographic location less
precisely. A geohash is an approximation of a point, where each length of the
geohash corresponds to a rectangle (a geohash tile) that is an approximation of
the original encoded geographic coordinate.qdh#h?h$h%h&hPh(}qe(h*]h+]h,]h-]h/]uh1Kh2hh]qfh;X]��Geohashes have the property that characters can be incrementally removed from
the right side of the geohash to represent a geographic location less
precisely. A geohash is an approximation of a point, where each length of the
geohash corresponds to a rectangle (a geohash tile) that is an approximation of
the original encoded geographic coordinate.qgÖÅqh}qi(h"hdh#hbubaubhM)Åqj}qk(h"X\���This feature of geohashes can be useful for searching and plotting at different
resolutions.qlh#h?h$h%h&hPh(}qm(h*]h+]h,]h-]h/]uh1Kh2hh]qnh;X\���This feature of geohashes can be useful for searching and plotting at different
resolutions.qoÖÅqp}qq(h"hlh#hjubaubhM)Åqr}qs(h"X���Table 1 shows the relationship between geohash length and the size of the
rectangle represented by that geohash at the equator.qth#h?h$h%h&hPh(}qu(h*]h+]h,]h-]h/]uh1Kh2hh]qvh;X���Table 1 shows the relationship between geohash length and the size of the
rectangle represented by that geohash at the equator.qwÖÅqx}qy(h"hth#hrubaubcdocutils.nodes
table
qz)Åq{}q|(h"U�h#h?h$h%h&Utableq}h(}q~(h*]h+]h,]h-]qUid1qÄah/]uh1Nh2hh]qÅ(h4)ÅqÇ}qÉ(h"X���**Table 1** Geohash Tile SizesqÑh(}qÖ(h*]h+]h,]h-]h/]uh#h{h]qÜ(cdocutils.nodes
strong
qá)Åqà}qâ(h"X���**Table 1**qäh(}qã(h*]h+]h,]h-]h/]uh#hÇh]qåh;X���Table 1qçÖÅqé}qè(h"U�h#hàubah&Ustrongqêubh;X��� Geohash Tile SizesqëÖÅqí}qì(h"X��� Geohash Tile Sizesqîh#hÇubeh&h8ubcdocutils.nodes
tgroup
qï)Åqñ}qó(h"U�h(}qò(h-]h,]h*]h+]h/]UcolsKuh#h{h]qô(cdocutils.nodes
colspec
qö)Åqõ}qú(h"U�h(}qù(h-]h,]h*]h+]h/]UcolwidthKuh#hñh]h&Ucolspecqûubhö)Åqü}q†(h"U�h(}q°(h-]h,]h*]h+]h/]UcolwidthKuh#hñh]h&hûubcdocutils.nodes
thead
q¢)Åq£}q§(h"U�h(}q•(h*]h+]h,]h-]h/]uh#hñh]q¶cdocutils.nodes
row
qß)Åq®}q©(h"U�h(}q™(h*]h+]h,]h-]h/]uh#h£h]q´(cdocutils.nodes
entry
q¨)Åq≠}qÆ(h"U�h(}qØ(h*]h+]h,]h-]h/]uh#h®h]q∞hM)Åq±}q≤(h"X���Lengthq≥h#h≠h$h%h&hPh(}q¥(h*]h+]h,]h-]h/]uh1Kh]qµh;X���Lengthq∂ÖÅq∑}q∏(h"h≥h#h±ubaubah&Uentryqπubh¨)Åq∫}qª(h"U�h(}qº(h*]h+]h,]h-]h/]uh#h®h]qΩhM)Åqæ}qø(h"X	���Tile Sizeq¿h#h∫h$h%h&hPh(}q¡(h*]h+]h,]h-]h/]uh1Kh]q¬h;X	���Tile Sizeq√ÖÅqƒ}q≈(h"h¿h#hæubaubah&hπubeh&Urowq∆ubah&Utheadq«ubcdocutils.nodes
tbody
q»)Åq…}q (h"U�h(}qÀ(h*]h+]h,]h-]h/]uh#hñh]qÃ(hß)ÅqÕ}qŒ(h"U�h(}qœ(h*]h+]h,]h-]h/]uh#h…h]q–(h¨)Åq—}q“(h"U�h(}q”(h*]h+]h,]h-]h/]uh#hÕh]q‘hM)Åq’}q÷(h"X���1h#h—h$h%h&hPh(}q◊(h*]h+]h,]h-]h/]uh1K h]qÿh;X���1ÖÅqŸ}q⁄(h"X���1h#h’ubaubah&hπubh¨)Åq€}q‹(h"U�h(}q›(h*]h+]h,]h-]h/]uh#hÕh]qfihM)Åqfl}q‡(h"X���5,009.4km x 4,992.6kmq·h#h€h$h%h&hPh(}q‚(h*]h+]h,]h-]h/]uh1K h]q„h;X���5,009.4km x 4,992.6kmq‰ÖÅqÂ}qÊ(h"h·h#hflubaubah&hπubeh&h∆ubhß)ÅqÁ}qË(h"U�h(}qÈ(h*]h+]h,]h-]h/]uh#h…h]qÍ(h¨)ÅqÎ}qÏ(h"U�h(}qÌ(h*]h+]h,]h-]h/]uh#hÁh]qÓhM)ÅqÔ}q(h"X���2h#hÎh$h%h&hPh(}qÒ(h*]h+]h,]h-]h/]uh1K!h]qÚh;X���2ÖÅqÛ}qÙ(h"X���2h#hÔubaubah&hπubh¨)Åqı}qˆ(h"U�h(}q˜(h*]h+]h,]h-]h/]uh#hÁh]q¯hM)Åq˘}q˙(h"X���1,252.3km x 624.1kmq˚h#hıh$h%h&hPh(}q¸(h*]h+]h,]h-]h/]uh1K!h]q˝h;X���1,252.3km x 624.1kmq˛ÖÅqˇ}r���(h"h˚h#h˘ubaubah&hπubeh&h∆ubhß)År��}r��(h"U�h(}r��(h*]h+]h,]h-]h/]uh#h…h]r��(h¨)År��}r��(h"U�h(}r��(h*]h+]h,]h-]h/]uh#j��h]r��hM)År	��}r
��(h"X���3h#j��h$h%h&hPh(}r��(h*]h+]h,]h-]h/]uh1K"h]r��h;X���3ÖÅr
��}r��(h"X���3h#j	��ubaubah&hπubh¨)År��}r��(h"U�h(}r��(h*]h+]h,]h-]h/]uh#j��h]r��hM)År��}r��(h"X���156.5km x 156kmr��h#j��h$h%h&hPh(}r��(h*]h+]h,]h-]h/]uh1K"h]r��h;X���156.5km x 156kmr��ÖÅr��}r��(h"j��h#j��ubaubah&hπubeh&h∆ubhß)År��}r��(h"U�h(}r��(h*]h+]h,]h-]h/]uh#h…h]r��(h¨)År��}r ��(h"U�h(}r!��(h*]h+]h,]h-]h/]uh#j��h]r"��hM)År#��}r$��(h"X���4h#j��h$h%h&hPh(}r%��(h*]h+]h,]h-]h/]uh1K#h]r&��h;X���4ÖÅr'��}r(��(h"X���4h#j#��ubaubah&hπubh¨)År)��}r*��(h"U�h(}r+��(h*]h+]h,]h-]h/]uh#j��h]r,��hM)År-��}r.��(h"X���39.1km x 19.5kmr/��h#j)��h$h%h&hPh(}r0��(h*]h+]h,]h-]h/]uh1K#h]r1��h;X���39.1km x 19.5kmr2��ÖÅr3��}r4��(h"j/��h#j-��ubaubah&hπubeh&h∆ubhß)År5��}r6��(h"U�h(}r7��(h*]h+]h,]h-]h/]uh#h…h]r8��(h¨)År9��}r:��(h"U�h(}r;��(h*]h+]h,]h-]h/]uh#j5��h]r<��hM)År=��}r>��(h"X���5h#j9��h$h%h&hPh(}r?��(h*]h+]h,]h-]h/]uh1K$h]r@��h;X���5ÖÅrA��}rB��(h"X���5h#j=��ubaubah&hπubh¨)ÅrC��}rD��(h"U�h(}rE��(h*]h+]h,]h-]h/]uh#j5��h]rF��hM)ÅrG��}rH��(h"X
���4.9km x 4.9kmrI��h#jC��h$h%h&hPh(}rJ��(h*]h+]h,]h-]h/]uh1K$h]rK��h;X
���4.9km x 4.9kmrL��ÖÅrM��}rN��(h"jI��h#jG��ubaubah&hπubeh&h∆ubhß)ÅrO��}rP��(h"U�h(}rQ��(h*]h+]h,]h-]h/]uh#h…h]rR��(h¨)ÅrS��}rT��(h"U�h(}rU��(h*]h+]h,]h-]h/]uh#jO��h]rV��hM)ÅrW��}rX��(h"X���6h#jS��h$h%h&hPh(}rY��(h*]h+]h,]h-]h/]uh1K%h]rZ��h;X���6ÖÅr[��}r\��(h"X���6h#jW��ubaubah&hπubh¨)År]��}r^��(h"U�h(}r_��(h*]h+]h,]h-]h/]uh#jO��h]r`��hM)Åra��}rb��(h"X���1.2km x 609.4mrc��h#j]��h$h%h&hPh(}rd��(h*]h+]h,]h-]h/]uh1K%h]re��h;X���1.2km x 609.4mrf��ÖÅrg��}rh��(h"jc��h#ja��ubaubah&hπubeh&h∆ubhß)Åri��}rj��(h"U�h(}rk��(h*]h+]h,]h-]h/]uh#h…h]rl��(h¨)Årm��}rn��(h"U�h(}ro��(h*]h+]h,]h-]h/]uh#ji��h]rp��hM)Årq��}rr��(h"X���7h#jm��h$h%h&hPh(}rs��(h*]h+]h,]h-]h/]uh1K&h]rt��h;X���7ÖÅru��}rv��(h"X���7h#jq��ubaubah&hπubh¨)Årw��}rx��(h"U�h(}ry��(h*]h+]h,]h-]h/]uh#ji��h]rz��hM)År{��}r|��(h"X���152.9m  x 152.4mr}��h#jw��h$h%h&hPh(}r~��(h*]h+]h,]h-]h/]uh1K&h]r��h;X���152.9m  x 152.4mrÄ��ÖÅrÅ��}rÇ��(h"j}��h#j{��ubaubah&hπubeh&h∆ubhß)ÅrÉ��}rÑ��(h"U�h(}rÖ��(h*]h+]h,]h-]h/]uh#h…h]rÜ��(h¨)Årá��}rà��(h"U�h(}râ��(h*]h+]h,]h-]h/]uh#jÉ��h]rä��hM)Årã��}rå��(h"X���8h#já��h$h%h&hPh(}rç��(h*]h+]h,]h-]h/]uh1K'h]ré��h;X���8ÖÅrè��}rê��(h"X���8h#jã��ubaubah&hπubh¨)Årë��}rí��(h"U�h(}rì��(h*]h+]h,]h-]h/]uh#jÉ��h]rî��hM)Årï��}rñ��(h"X���38.2m x 19mró��h#jë��h$h%h&hPh(}rò��(h*]h+]h,]h-]h/]uh1K'h]rô��h;X���38.2m x 19mrö��ÖÅrõ��}rú��(h"jó��h#jï��ubaubah&hπubeh&h∆ubhß)Årù��}rû��(h"U�h(}rü��(h*]h+]h,]h-]h/]uh#h…h]r†��(h¨)År°��}r¢��(h"U�h(}r£��(h*]h+]h,]h-]h/]uh#jù��h]r§��hM)År•��}r¶��(h"X���9h#j°��h$h%h&hPh(}rß��(h*]h+]h,]h-]h/]uh1K(h]r®��h;X���9ÖÅr©��}r™��(h"X���9h#j•��ubaubah&hπubh¨)År´��}r¨��(h"U�h(}r≠��(h*]h+]h,]h-]h/]uh#jù��h]rÆ��hM)ÅrØ��}r∞��(h"X���4.8m x 4.8mr±��h#j´��h$h%h&hPh(}r≤��(h*]h+]h,]h-]h/]uh1K(h]r≥��h;X���4.8m x 4.8mr¥��ÖÅrµ��}r∂��(h"j±��h#jØ��ubaubah&hπubeh&h∆ubhß)År∑��}r∏��(h"U�h(}rπ��(h*]h+]h,]h-]h/]uh#h…h]r∫��(h¨)Årª��}rº��(h"U�h(}rΩ��(h*]h+]h,]h-]h/]uh#j∑��h]ræ��hM)Årø��}r¿��(h"X���10r¡��h#jª��h$h%h&hPh(}r¬��(h*]h+]h,]h-]h/]uh1K)h]r√��h;X���10rƒ��ÖÅr≈��}r∆��(h"j¡��h#jø��ubaubah&hπubh¨)År«��}r»��(h"U�h(}r…��(h*]h+]h,]h-]h/]uh#j∑��h]r ��hM)ÅrÀ��}rÃ��(h"X
���1.2m x 59.5cmrÕ��h#j«��h$h%h&hPh(}rŒ��(h*]h+]h,]h-]h/]uh1K)h]rœ��h;X
���1.2m x 59.5cmr–��ÖÅr—��}r“��(h"jÕ��h#jÀ��ubaubah&hπubeh&h∆ubhß)År”��}r‘��(h"U�h(}r’��(h*]h+]h,]h-]h/]uh#h…h]r÷��(h¨)År◊��}rÿ��(h"U�h(}rŸ��(h*]h+]h,]h-]h/]uh#j”��h]r⁄��hM)År€��}r‹��(h"X���11r›��h#j◊��h$h%h&hPh(}rfi��(h*]h+]h,]h-]h/]uh1K*h]rfl��h;X���11r‡��ÖÅr·��}r‚��(h"j›��h#j€��ubaubah&hπubh¨)År„��}r‰��(h"U�h(}rÂ��(h*]h+]h,]h-]h/]uh#j”��h]rÊ��hM)ÅrÁ��}rË��(h"X���14.9cm x 14.9cmrÈ��h#j„��h$h%h&hPh(}rÍ��(h*]h+]h,]h-]h/]uh1K*h]rÎ��h;X���14.9cm x 14.9cmrÏ��ÖÅrÌ��}rÓ��(h"jÈ��h#jÁ��ubaubah&hπubeh&h∆ubhß)ÅrÔ��}r��(h"U�h(}rÒ��(h*]h+]h,]h-]h/]uh#h…h]rÚ��(h¨)ÅrÛ��}rÙ��(h"U�h(}rı��(h*]h+]h,]h-]h/]uh#jÔ��h]rˆ��hM)År˜��}r¯��(h"X���12r˘��h#jÛ��h$h%h&hPh(}r˙��(h*]h+]h,]h-]h/]uh1K+h]r˚��h;X���12r¸��ÖÅr˝��}r˛��(h"j˘��h#j˜��ubaubah&hπubh¨)Årˇ��}r���(h"U�h(}r��(h*]h+]h,]h-]h/]uh#jÔ��h]r��hM)År��}r��(h"X
���3.7cm x 1.9cmr��h#jˇ��h$h%h&hPh(}r��(h*]h+]h,]h-]h/]uh1K+h]r��h;X
���3.7cm x 1.9cmr��ÖÅr	��}r
��(h"j��h#j��ubaubah&hπubeh&h∆ubeh&Utbodyr��ubeh&Utgroupr��ubeubhM)År
��}r��(h"Xf��Table 2 shows the relationship between a geohash and the resulting latitude and
longitude decoded from the different length geohashes. As characters are
removed from the original geohash '9q4gu1y4z' the bounding rectangle and the
accuracy of the decoded geohash becomes less precise. The decoded geohash
corresponds to the centroid of the bounding rectangle.r��h#h?h$h%h&hPh(}r��(h*]h+]h,]h-]h/]uh1K/h2hh]r��h;Xf��Table 2 shows the relationship between a geohash and the resulting latitude and
longitude decoded from the different length geohashes. As characters are
removed from the original geohash '9q4gu1y4z' the bounding rectangle and the
accuracy of the decoded geohash becomes less precise. The decoded geohash
corresponds to the centroid of the bounding rectangle.r��ÖÅr��}r��(h"j��h#j
��ubaubhz)År��}r��(h"U�h#h?h$h%h&h}h(}r��(h*]h+]h,]h-]r��Uid2r��ah/]uh1Nh2hh]r��(h4)År��}r��(h"X'���**Table 2.** Geohash length vs Accuracyr��h(}r��(h*]h+]h,]h-]h/]uh#j��h]r��(há)År ��}r!��(h"X���**Table 2.**r"��h(}r#��(h*]h+]h,]h-]h/]uh#j��h]r$��h;X���Table 2.r%��ÖÅr&��}r'��(h"U�h#j ��ubah&hêubh;X��� Geohash length vs Accuracyr(��ÖÅr)��}r*��(h"X��� Geohash length vs Accuracyr+��h#j��ubeh&h8ubhï)År,��}r-��(h"U�h(}r.��(h-]h,]h*]h+]h/]UcolsKuh#j��h]r/��(hö)År0��}r1��(h"U�h(}r2��(h-]h,]h*]h+]h/]UcolwidthK
uh#j,��h]h&hûubhö)År3��}r4��(h"U�h(}r5��(h-]h,]h*]h+]h/]UcolwidthKuh#j,��h]h&hûubhö)År6��}r7��(h"U�h(}r8��(h-]h,]h*]h+]h/]UcolwidthK-uh#j,��h]h&hûubh¢)År9��}r:��(h"U�h(}r;��(h*]h+]h,]h-]h/]uh#j,��h]r<��hß)År=��}r>��(h"U�h(}r?��(h*]h+]h,]h-]h/]uh#j9��h]r@��(h¨)ÅrA��}rB��(h"U�h(}rC��(h*]h+]h,]h-]h/]uh#j=��h]rD��hM)ÅrE��}rF��(h"X���GeohashrG��h#jA��h$h%h&hPh(}rH��(h*]h+]h,]h-]h/]uh1K8h]rI��h;X���GeohashrJ��ÖÅrK��}rL��(h"jG��h#jE��ubaubah&hπubh¨)ÅrM��}rN��(h"U�h(}rO��(h*]h+]h,]h-]h/]uh#j=��h]rP��hM)ÅrQ��}rR��(h"X���Tile Center lat, longrS��h#jM��h$h%h&hPh(}rT��(h*]h+]h,]h-]h/]uh1K8h]rU��h;X���Tile Center lat, longrV��ÖÅrW��}rX��(h"jS��h#jQ��ubaubah&hπubh¨)ÅrY��}rZ��(h"U�h(}r[��(h*]h+]h,]h-]h/]uh#j=��h]r\��hM)År]��}r^��(h"X%���Tile minlat, minlong, maxlat, maxLongr_��h#jY��h$h%h&hPh(}r`��(h*]h+]h,]h-]h/]uh1K8h]ra��h;X%���Tile minlat, minlong, maxlat, maxLongrb��ÖÅrc��}rd��(h"j_��h#j]��ubaubah&hπubeh&h∆ubah&h«ubh»)Åre��}rf��(h"U�h(}rg��(h*]h+]h,]h-]h/]uh#j,��h]rh��(hß)Åri��}rj��(h"U�h(}rk��(h*]h+]h,]h-]h/]uh#je��h]rl��(h¨)Årm��}rn��(h"U�h(}ro��(h*]h+]h,]h-]h/]uh#ji��h]rp��hM)Årq��}rr��(h"X���9h#jm��h$h%h&hPh(}rs��(h*]h+]h,]h-]h/]uh1K:h]rt��h;X���9ÖÅru��}rv��(h"X���9h#jq��ubaubah&hπubh¨)Årw��}rx��(h"U�h(}ry��(h*]h+]h,]h-]h/]uh#ji��h]rz��hM)År{��}r|��(h"X���22.5, -112.5r}��h#jw��h$h%h&hPh(}r~��(h*]h+]h,]h-]h/]uh1K:h]r��h;X���22.5, -112.5rÄ��ÖÅrÅ��}rÇ��(h"j}��h#j{��ubaubah&hπubh¨)ÅrÉ��}rÑ��(h"U�h(}rÖ��(h*]h+]h,]h-]h/]uh#ji��h]rÜ��hM)Årá��}rà��(h"X���0, -135, 45, -90râ��h#jÉ��h$h%h&hPh(}rä��(h*]h+]h,]h-]h/]uh1K:h]rã��h;X���0, -135, 45, -90rå��ÖÅrç��}ré��(h"jâ��h#já��ubaubah&hπubeh&h∆ubhß)Årè��}rê��(h"U�h(}rë��(h*]h+]h,]h-]h/]uh#je��h]rí��(h¨)Årì��}rî��(h"U�h(}rï��(h*]h+]h,]h-]h/]uh#jè��h]rñ��hM)Åró��}rò��(h"X���9qrô��h#jì��h$h%h&hPh(}rö��(h*]h+]h,]h-]h/]uh1K;h]rõ��h;X���9qrú��ÖÅrù��}rû��(h"jô��h#jó��ubaubah&hπubh¨)Årü��}r†��(h"U�h(}r°��(h*]h+]h,]h-]h/]uh#jè��h]r¢��hM)År£��}r§��(h"X���36.5625, -118.125r•��h#jü��h$h%h&hPh(}r¶��(h*]h+]h,]h-]h/]uh1K;h]rß��h;X���36.5625, -118.125r®��ÖÅr©��}r™��(h"j•��h#j£��ubaubah&hπubh¨)År´��}r¨��(h"U�h(}r≠��(h*]h+]h,]h-]h/]uh#jè��h]rÆ��hM)ÅrØ��}r∞��(h"X���33.75, -123.75, 39.375, -112.5r±��h#j´��h$h%h&hPh(}r≤��(h*]h+]h,]h-]h/]uh1K;h]r≥��h;X���33.75, -123.75, 39.375, -112.5r¥��ÖÅrµ��}r∂��(h"j±��h#jØ��ubaubah&hπubeh&h∆ubhß)År∑��}r∏��(h"U�h(}rπ��(h*]h+]h,]h-]h/]uh#je��h]r∫��(h¨)Årª��}rº��(h"U�h(}rΩ��(h*]h+]h,]h-]h/]uh#j∑��h]ræ��hM)Årø��}r¿��(h"X���9q4r¡��h#jª��h$h%h&hPh(}r¬��(h*]h+]h,]h-]h/]uh1K<h]r√��h;X���9q4rƒ��ÖÅr≈��}r∆��(h"j¡��h#jø��ubaubah&hπubh¨)År«��}r»��(h"U�h(}r…��(h*]h+]h,]h-]h/]uh#j∑��h]r ��hM)ÅrÀ��}rÃ��(h"X���34.45312, -120.23437rÕ��h#j«��h$h%h&hPh(}rŒ��(h*]h+]h,]h-]h/]uh1K<h]rœ��h;X���34.45312, -120.23437r–��ÖÅr—��}r“��(h"jÕ��h#jÀ��ubaubah&hπubh¨)År”��}r‘��(h"U�h(}r’��(h*]h+]h,]h-]h/]uh#j∑��h]r÷��hM)År◊��}rÿ��(h"X&���33.75, -120.9375, 35.15625, -119.53125rŸ��h#j”��h$h%h&hPh(}r⁄��(h*]h+]h,]h-]h/]uh1K<h]r€��h;X&���33.75, -120.9375, 35.15625, -119.53125r‹��ÖÅr›��}rfi��(h"jŸ��h#j◊��ubaubah&hπubeh&h∆ubhß)Årfl��}r‡��(h"U�h(}r·��(h*]h+]h,]h-]h/]uh#je��h]r‚��(h¨)År„��}r‰��(h"U�h(}rÂ��(h*]h+]h,]h-]h/]uh#jfl��h]rÊ��hM)ÅrÁ��}rË��(h"X���9q4grÈ��h#j„��h$h%h&hPh(}rÍ��(h*]h+]h,]h-]h/]uh1K=h]rÎ��h;X���9q4grÏ��ÖÅrÌ��}rÓ��(h"jÈ��h#jÁ��ubaubah&hπubh¨)ÅrÔ��}r��(h"U�h(}rÒ��(h*]h+]h,]h-]h/]uh#jfl��h]rÚ��hM)ÅrÛ��}rÙ��(h"X���34.36523, -119.70703rı��h#jÔ��h$h%h&hPh(}rˆ��(h*]h+]h,]h-]h/]uh1K=h]r˜��h;X���34.36523, -119.70703r¯��ÖÅr˘��}r˙��(h"jı��h#jÛ��ubaubah&hπubh¨)År˚��}r¸��(h"U�h(}r˝��(h*]h+]h,]h-]h/]uh#jfl��h]r˛��hM)Årˇ��}r���(h"X*���34.27734, -119.88281, 34.45312, -119.53125r��h#j˚��h$h%h&hPh(}r��(h*]h+]h,]h-]h/]uh1K=h]r��h;X*���34.27734, -119.88281, 34.45312, -119.53125r��ÖÅr��}r��(h"j��h#jˇ��ubaubah&hπubeh&h∆ubhß)År��}r��(h"U�h(}r	��(h*]h+]h,]h-]h/]uh#je��h]r
��(h¨)År��}r��(h"U�h(}r
��(h*]h+]h,]h-]h/]uh#j��h]r��hM)År��}r��(h"X���9q4gur��h#j��h$h%h&hPh(}r��(h*]h+]h,]h-]h/]uh1K>h]r��h;X���9q4gur��ÖÅr��}r��(h"j��h#j��ubaubah&hπubh¨)År��}r��(h"U�h(}r��(h*]h+]h,]h-]h/]uh#j��h]r��hM)År��}r��(h"X���34.43115, -119.68505r��h#j��h$h%h&hPh(}r��(h*]h+]h,]h-]h/]uh1K>h]r��h;X���34.43115, -119.68505r ��ÖÅr!��}r"��(h"j��h#j��ubaubah&hπubh¨)År#��}r$��(h"U�h(}r%��(h*]h+]h,]h-]h/]uh#j��h]r&��hM)År'��}r(��(h"X*���34.40917, -119.70703, 34.45312, -119.66308r)��h#j#��h$h%h&hPh(}r*��(h*]h+]h,]h-]h/]uh1K>h]r+��h;X*���34.40917, -119.70703, 34.45312, -119.66308r,��ÖÅr-��}r.��(h"j)��h#j'��ubaubah&hπubeh&h∆ubhß)År/��}r0��(h"U�h(}r1��(h*]h+]h,]h-]h/]uh#je��h]r2��(h¨)År3��}r4��(h"U�h(}r5��(h*]h+]h,]h-]h/]uh#j/��h]r6��hM)År7��}r8��(h"X���9q4gu1r9��h#j3��h$h%h&hPh(}r:��(h*]h+]h,]h-]h/]uh1K?h]r;��h;X���9q4gu1r<��ÖÅr=��}r>��(h"j9��h#j7��ubaubah&hπubh¨)År?��}r@��(h"U�h(}rA��(h*]h+]h,]h-]h/]uh#j/��h]rB��hM)ÅrC��}rD��(h"X���34.41741, -119.70153rE��h#j?��h$h%h&hPh(}rF��(h*]h+]h,]h-]h/]uh1K?h]rG��h;X���34.41741, -119.70153rH��ÖÅrI��}rJ��(h"jE��h#jC��ubaubah&hπubh¨)ÅrK��}rL��(h"U�h(}rM��(h*]h+]h,]h-]h/]uh#j/��h]rN��hM)ÅrO��}rP��(h"X*���34.41467, -119.70703, 34.42016, -119.69604rQ��h#jK��h$h%h&hPh(}rR��(h*]h+]h,]h-]h/]uh1K?h]rS��h;X*���34.41467, -119.70703, 34.42016, -119.69604rT��ÖÅrU��}rV��(h"jQ��h#jO��ubaubah&hπubeh&h∆ubhß)ÅrW��}rX��(h"U�h(}rY��(h*]h+]h,]h-]h/]uh#je��h]rZ��(h¨)År[��}r\��(h"U�h(}r]��(h*]h+]h,]h-]h/]uh#jW��h]r^��hM)År_��}r`��(h"X���9q4gu1yra��h#j[��h$h%h&hPh(}rb��(h*]h+]h,]h-]h/]uh1K@h]rc��h;X���9q4gu1yrd��ÖÅre��}rf��(h"ja��h#j_��ubaubah&hπubh¨)Årg��}rh��(h"U�h(}ri��(h*]h+]h,]h-]h/]uh#jW��h]rj��hM)Årk��}rl��(h"X���34.41947, -119.69810rm��h#jg��h$h%h&hPh(}rn��(h*]h+]h,]h-]h/]uh1K@h]ro��h;X���34.41947, -119.69810rp��ÖÅrq��}rr��(h"jm��h#jk��ubaubah&hπubh¨)Års��}rt��(h"U�h(}ru��(h*]h+]h,]h-]h/]uh#jW��h]rv��hM)Årw��}rx��(h"X*���34.41879, -119.69879, 34.42016, -119.69741ry��h#js��h$h%h&hPh(}rz��(h*]h+]h,]h-]h/]uh1K@h]r{��h;X*���34.41879, -119.69879, 34.42016, -119.69741r|��ÖÅr}��}r~��(h"jy��h#jw��ubaubah&hπubeh&h∆ubhß)År��}rÄ��(h"U�h(}rÅ��(h*]h+]h,]h-]h/]uh#je��h]rÇ��(h¨)ÅrÉ��}rÑ��(h"U�h(}rÖ��(h*]h+]h,]h-]h/]uh#j��h]rÜ��hM)Årá��}rà��(h"X���9q4gu1y4râ��h#jÉ��h$h%h&hPh(}rä��(h*]h+]h,]h-]h/]uh1KAh]rã��h;X���9q4gu1y4rå��ÖÅrç��}ré��(h"jâ��h#já��ubaubah&hπubh¨)Årè��}rê��(h"U�h(}rë��(h*]h+]h,]h-]h/]uh#j��h]rí��hM)Årì��}rî��(h"X���34.41922, -119.69861rï��h#jè��h$h%h&hPh(}rñ��(h*]h+]h,]h-]h/]uh1KAh]ró��h;X���34.41922, -119.69861rò��ÖÅrô��}rö��(h"jï��h#jì��ubaubah&hπubh¨)Årõ��}rú��(h"U�h(}rù��(h*]h+]h,]h-]h/]uh#j��h]rû��hM)Årü��}r†��(h"X*���34.41913, -119.69879, 34.41930, -119.69844r°��h#jõ��h$h%h&hPh(}r¢��(h*]h+]h,]h-]h/]uh1KAh]r£��h;X*���34.41913, -119.69879, 34.41930, -119.69844r§��ÖÅr•��}r¶��(h"j°��h#jü��ubaubah&hπubeh&h∆ubhß)Årß��}r®��(h"U�h(}r©��(h*]h+]h,]h-]h/]uh#je��h]r™��(h¨)År´��}r¨��(h"U�h(}r≠��(h*]h+]h,]h-]h/]uh#jß��h]rÆ��hM)ÅrØ��}r∞��(h"X	���9q4gu1y4zr±��h#j´��h$h%h&hPh(}r≤��(h*]h+]h,]h-]h/]uh1KBh]r≥��h;X	���9q4gu1y4zr¥��ÖÅrµ��}r∂��(h"j±��h#jØ��ubaubah&hπubh¨)År∑��}r∏��(h"U�h(}rπ��(h*]h+]h,]h-]h/]uh#jß��h]r∫��hM)Årª��}rº��(h"X���34.41928, -119.69846rΩ��h#j∑��h$h%h&hPh(}ræ��(h*]h+]h,]h-]h/]uh1KBh]rø��h;X���34.41928, -119.69846r¿��ÖÅr¡��}r¬��(h"jΩ��h#jª��ubaubah&hπubh¨)År√��}rƒ��(h"U�h(}r≈��(h*]h+]h,]h-]h/]uh#jß��h]r∆��hM)År«��}r»��(h"X*���34.41926, -119.69849, 34.41930, -119.69844r…��h#j√��h$h%h&hPh(}r ��(h*]h+]h,]h-]h/]uh1KBh]rÀ��h;X*���34.41926, -119.69849, 34.41930, -119.69844rÃ��ÖÅrÕ��}rŒ��(h"j…��h#j«��ubaubah&hπubeh&h∆ubeh&j��ubeh&j��ubeubhM)Årœ��}r–��(h"X��Geohashes comprise a nested spatial indexing system with each level of
geohashes tile containing 32 tiles of the next smaller tile size. The level one
geohashes (length=1) divide the earth into 32 tiles. Each of these 32 tiles is
then subdivided into 32 level 2 tiles and so on.r—��h#h?h$h%h&hPh(}r“��(h*]h+]h,]h-]h/]uh1KEh2hh]r”��h;X��Geohashes comprise a nested spatial indexing system with each level of
geohashes tile containing 32 tiles of the next smaller tile size. The level one
geohashes (length=1) divide the earth into 32 tiles. Each of these 32 tiles is
then subdivided into 32 level 2 tiles and so on.r‘��ÖÅr’��}r÷��(h"j—��h#jœ��ubaubhM)År◊��}rÿ��(h"XÊ���Geohashes also have the property that all smaller tiles within the enclosing
geohash tile begin with the same leading characters, therefor for the level 1
tile '9', all level 2 sub-tiles begin with '9': '90', '91', '93',..., '9z'.rŸ��h#h?h$h%h&hPh(}r⁄��(h*]h+]h,]h-]h/]uh1KJh2hh]r€��h;XÊ���Geohashes also have the property that all smaller tiles within the enclosing
geohash tile begin with the same leading characters, therefor for the level 1
tile '9', all level 2 sub-tiles begin with '9': '90', '91', '93',..., '9z'.r‹��ÖÅr›��}rfi��(h"jŸ��h#j◊��ubaubhM)Årfl��}r‡��(h"X∏��For example the level 3 geohash tile that encloses much of Santa Barbara County
is '9q4'. Also contained in this bounding rectangle is the city center of Santa
Maria (geohash 9q4qg7j2hmdz), Goleta (geohash 9q4gckb5jxu7) and Santa Barbara
(geohash 9q4gu4n7y5b7) all of which begin with the characters '9q4' and fall
within the '9q4' geohash rectangle. This property is very useful for searching
and sorting datastores that contain geohashes.r·��h#h?h$h%h&hPh(}r‚��(h*]h+]h,]h-]h/]uh1KNh2hh]r„��h;X∏��For example the level 3 geohash tile that encloses much of Santa Barbara County
is '9q4'. Also contained in this bounding rectangle is the city center of Santa
Maria (geohash 9q4qg7j2hmdz), Goleta (geohash 9q4gckb5jxu7) and Santa Barbara
(geohash 9q4gu4n7y5b7) all of which begin with the characters '9q4' and fall
within the '9q4' geohash rectangle. This property is very useful for searching
and sorting datastores that contain geohashes.r‰��ÖÅrÂ��}rÊ��(h"j·��h#jfl��ubaubeubh)ÅrÁ��}rË��(h"U�h#h h$h%h&h'h(}rÈ��(h*]h+]h,]h-]rÍ��hah/]rÎ��hauh1KWh2hh]rÏ��(h4)ÅrÌ��}rÓ��(h"X"���DataONE Search Index and GeohashesrÔ��h#jÁ��h$h%h&h8h(}r��(h*]h+]h,]h-]h/]uh1KWh2hh]rÒ��h;X"���DataONE Search Index and GeohashesrÚ��ÖÅrÛ��}rÙ��(h"jÔ��h#jÌ��ubaubhM)Årı��}rˆ��(h"X‘��The DataONE search index contains geohashes that have been computed for each
geographic coverage associated with a PID containing geographic coverage
information, which currently includes metadata objects in EML and FGDC formats.
The search index is described here: `<SearchMetadata.html>`_. Each PID in the
search index has a geohash computed at nine different resolutions,
corresponding to the geohash lengths shown *Table 3*. The field names are
appended with the geohash length, so for example the field *geohash_1* has a
string length of one and corresponds to the largest tile size in *Table 1*.
Geohashes are added to the search index at different lengths to allow for
searching and plotting at different resolutions.h#jÁ��h$h%h&hPh(}r˜��(h*]h+]h,]h-]h/]uh1KYh2hh]r¯��(h;X
��The DataONE search index contains geohashes that have been computed for each
geographic coverage associated with a PID containing geographic coverage
information, which currently includes metadata objects in EML and FGDC formats.
The search index is described here: r˘��ÖÅr˙��}r˚��(h"X
��The DataONE search index contains geohashes that have been computed for each
geographic coverage associated with a PID containing geographic coverage
information, which currently includes metadata objects in EML and FGDC formats.
The search index is described here: h#jı��ubcdocutils.nodes
reference
r¸��)År˝��}r˛��(h"X���`<SearchMetadata.html>`_h(}rˇ��(UnameX���SearchMetadata.htmlr���Urefurir��j���h-]h,]h*]h+]h/]uh#jı��h]r��h;X���SearchMetadata.htmlr��ÖÅr��}r��(h"U�h#j˝��ubah&U	referencer��ubcdocutils.nodes
target
r��)År��}r	��(h"X���<SearchMetadata.html>U
referencedr
��Kh#jı��h&Utargetr��h(}r��(Urefurij���h-]r
��hah,]h*]h+]h/]r��h
auh]ubh;X���. Each PID in the
search index has a geohash computed at nine different resolutions,
corresponding to the geohash lengths shown r��ÖÅr��}r��(h"XÄ���. Each PID in the
search index has a geohash computed at nine different resolutions,
corresponding to the geohash lengths shown h#jı��ubhV)År��}r��(h"X	���*Table 3*h(}r��(h*]h+]h,]h-]h/]uh#jı��h]r��h;X���Table 3r��ÖÅr��}r��(h"U�h#j��ubah&h^ubh;XQ���. The field names are
appended with the geohash length, so for example the field r��ÖÅr��}r��(h"XQ���. The field names are
appended with the geohash length, so for example the field h#jı��ubhV)År��}r��(h"X���*geohash_1*h(}r��(h*]h+]h,]h-]h/]uh#jı��h]r��h;X	���geohash_1r ��ÖÅr!��}r"��(h"U�h#j��ubah&h^ubh;XH��� has a
string length of one and corresponds to the largest tile size in r#��ÖÅr$��}r%��(h"XH��� has a
string length of one and corresponds to the largest tile size in h#jı��ubhV)År&��}r'��(h"X	���*Table 1*h(}r(��(h*]h+]h,]h-]h/]uh#jı��h]r)��h;X���Table 1r*��ÖÅr+��}r,��(h"U�h#j&��ubah&h^ubh;X|���.
Geohashes are added to the search index at different lengths to allow for
searching and plotting at different resolutions.r-��ÖÅr.��}r/��(h"X|���.
Geohashes are added to the search index at different lengths to allow for
searching and plotting at different resolutions.h#jı��ubeubhM)År0��}r1��(h"Xó��For EML documents, the geohashes are computed by determining the centroid of
the XML elements *northBoundingCoordinate, southBoundingCoordinatem,
eastBoundingCoordinate, westBoundingCoordinate* which are child element of
*//dataset/coverage/geographicCoverage/boundingCoordinates*. Because any number
of coverages may be defined with the EML format, the geohashes for these
coverages are stored in a Solr multi-valued field. EML allows for the four
bounding coordinates to specify a single coordinate (i.e.
westBoudingCoordinate=eastBoundingCoordinate and
northBoundingCoordinate=southBoundingCoordinate), in which case this location
is used to compute a geohash.h#jÁ��h$h%h&hPh(}r2��(h*]h+]h,]h-]h/]uh1Kdh2hh]r3��(h;X^���For EML documents, the geohashes are computed by determining the centroid of
the XML elements r4��ÖÅr5��}r6��(h"X^���For EML documents, the geohashes are computed by determining the centroid of
the XML elements h#j0��ubhV)År7��}r8��(h"Xc���*northBoundingCoordinate, southBoundingCoordinatem,
eastBoundingCoordinate, westBoundingCoordinate*h(}r9��(h*]h+]h,]h-]h/]uh#j0��h]r:��h;Xa���northBoundingCoordinate, southBoundingCoordinatem,
eastBoundingCoordinate, westBoundingCoordinater;��ÖÅr<��}r=��(h"U�h#j7��ubah&h^ubh;X��� which are child element of
r>��ÖÅr?��}r@��(h"X��� which are child element of
h#j0��ubhV)ÅrA��}rB��(h"X;���*//dataset/coverage/geographicCoverage/boundingCoordinates*h(}rC��(h*]h+]h,]h-]h/]uh#j0��h]rD��h;X9���//dataset/coverage/geographicCoverage/boundingCoordinatesrE��ÖÅrF��}rG��(h"U�h#jA��ubah&h^ubh;X��. Because any number
of coverages may be defined with the EML format, the geohashes for these
coverages are stored in a Solr multi-valued field. EML allows for the four
bounding coordinates to specify a single coordinate (i.e.
westBoudingCoordinate=eastBoundingCoordinate and
northBoundingCoordinate=southBoundingCoordinate), in which case this location
is used to compute a geohash.rH��ÖÅrI��}rJ��(h"X��. Because any number
of coverages may be defined with the EML format, the geohashes for these
coverages are stored in a Solr multi-valued field. EML allows for the four
bounding coordinates to specify a single coordinate (i.e.
westBoudingCoordinate=eastBoundingCoordinate and
northBoundingCoordinate=southBoundingCoordinate), in which case this location
is used to compute a geohash.h#j0��ubeubhM)ÅrK��}rL��(h"X˚���For FGDC documents, the XML elements *northBoundingCoordinate,
southBoundingCoordinate, eastBoundingCoordinate, westBoundingCoordinate*
(parent element //metadata/idinfo/spdom/bounding) are used to compute the
geohash using the same method as for EML.h#jÁ��h$h%h&hPh(}rM��(h*]h+]h,]h-]h/]uh1Koh2hh]rN��(h;X%���For FGDC documents, the XML elements rO��ÖÅrP��}rQ��(h"X%���For FGDC documents, the XML elements h#jK��ubhV)ÅrR��}rS��(h"Xb���*northBoundingCoordinate,
southBoundingCoordinate, eastBoundingCoordinate, westBoundingCoordinate*h(}rT��(h*]h+]h,]h-]h/]uh#jK��h]rU��h;X`���northBoundingCoordinate,
southBoundingCoordinate, eastBoundingCoordinate, westBoundingCoordinaterV��ÖÅrW��}rX��(h"U�h#jR��ubah&h^ubh;Xt���
(parent element //metadata/idinfo/spdom/bounding) are used to compute the
geohash using the same method as for EML.rY��ÖÅrZ��}r[��(h"Xt���
(parent element //metadata/idinfo/spdom/bounding) are used to compute the
geohash using the same method as for EML.h#jK��ubeubeubh)År\��}r]��(h"U�h#h h$h%h&h'h(}r^��(h*]h+]h,]h-]r_��hah/]r`��hauh1Kvh2hh]ra��(h4)Årb��}rc��(h"X���Using Geohashes for plottingrd��h#j\��h$h%h&h8h(}re��(h*]h+]h,]h-]h/]uh1Kvh2hh]rf��h;X���Using Geohashes for plottingrg��ÖÅrh��}ri��(h"jd��h#jb��ubaubhM)Årj��}rk��(h"X@��Geohashes can be used to efficiently plot the location of the geographic
coverages. The following examples show different search and plotting strategies
that are possible using geohashes. Several public domain Javascript libraries
are available for assisting in developing web clients that could use geohashes.
For example, the Javascript library *node-geohash* (available at
https://github.com/sunng87/node-geohash) contains routines to encode and decode
geohashs in addition to other spatial operators using geohashes. This library
will be used for the examples that follow.h#j\��h$h%h&hPh(}rl��(h*]h+]h,]h-]h/]uh1Kxh2hh]rm��(h;X[��Geohashes can be used to efficiently plot the location of the geographic
coverages. The following examples show different search and plotting strategies
that are possible using geohashes. Several public domain Javascript libraries
are available for assisting in developing web clients that could use geohashes.
For example, the Javascript library rn��ÖÅro��}rp��(h"X[��Geohashes can be used to efficiently plot the location of the geographic
coverages. The following examples show different search and plotting strategies
that are possible using geohashes. Several public domain Javascript libraries
are available for assisting in developing web clients that could use geohashes.
For example, the Javascript library h#jj��ubhV)Årq��}rr��(h"X���*node-geohash*h(}rs��(h*]h+]h,]h-]h/]uh#jj��h]rt��h;X���node-geohashru��ÖÅrv��}rw��(h"U�h#jq��ubah&h^ubh;X��� (available at
rx��ÖÅry��}rz��(h"X��� (available at
h#jj��ubj¸��)År{��}r|��(h"X'���https://github.com/sunng87/node-geohashr}��h(}r~��(Urefurij}��h-]h,]h*]h+]h/]uh#jj��h]r��h;X'���https://github.com/sunng87/node-geohashrÄ��ÖÅrÅ��}rÇ��(h"U�h#j{��ubah&j��ubh;X°���) contains routines to encode and decode
geohashs in addition to other spatial operators using geohashes. This library
will be used for the examples that follow.rÉ��ÖÅrÑ��}rÖ��(h"X°���) contains routines to encode and decode
geohashs in addition to other spatial operators using geohashes. This library
will be used for the examples that follow.h#jj��ubeubhM)ÅrÜ��}rá��(h"X8���**Example: Retrieve geohashes as facets in Solr search**rà��h#j\��h$h%h&hPh(}râ��(h*]h+]h,]h-]h/]uh1KÅh2hh]rä��há)Årã��}rå��(h"jà��h(}rç��(h*]h+]h,]h-]h/]uh#jÜ��h]ré��h;X4���Example: Retrieve geohashes as facets in Solr searchrè��ÖÅrê��}rë��(h"U�h#jã��ubah&hêubaubhM)Årí��}rì��(h"XL��In this example the Solr search index is queried for a particular field of
interest, with the associated geohash counts being returned as a field facet.
Used in this way, the facet field of geohashes becomes a spatial bin, with the
size of the geographic area and the spatial resolution of the binning selected
by the geohash level.rî��h#j\��h$h%h&hPh(}rï��(h*]h+]h,]h-]h/]uh1KÉh2hh]rñ��h;XL��In this example the Solr search index is queried for a particular field of
interest, with the associated geohash counts being returned as a field facet.
Used in this way, the facet field of geohashes becomes a spatial bin, with the
size of the geographic area and the spatial resolution of the binning selected
by the geohash level.ró��ÖÅrò��}rô��(h"jî��h#jí��ubaubhM)Årö��}rõ��(h"Xú���For example, if we are interested in plotting the location of PIDs that have
some associated with kelp, we could query the search index with the Solr query:rú��h#j\��h$h%h&hPh(}rù��(h*]h+]h,]h-]h/]uh1Kâh2hh]rû��h;Xú���For example, if we are interested in plotting the location of PIDs that have
some associated with kelp, we could query the search index with the Solr query:rü��ÖÅr†��}r°��(h"jú��h#jö��ubaubcdocutils.nodes
comment
r¢��)År£��}r§��(h"U�h#j\��h$h%h&Ucommentr•��h(}r¶��(U	xml:spacerß��Upreserver®��h-]h,]h*]h+]h/]uh1Kåh2hh]ubcdocutils.nodes
block_quote
r©��)År™��}r´��(h"U�h#j\��h$h%h&Ublock_quoter¨��h(}r≠��(h*]h+]h,]h-]h/]uh1Nh2hh]rÆ��hM)ÅrØ��}r∞��(h"Xg���https://cn.dataone.org/cn/v1/query/solr?q=kelp&facet=true&facet.field=geohash_5&facet.mincount=1&rows=0r±��h#j™��h$h%h&hPh(}r≤��(h*]h+]h,]h-]h/]uh1Kéh]r≥��j¸��)År¥��}rµ��(h"j±��h(}r∂��(Urefurij±��h-]h,]h*]h+]h/]uh#jØ��h]r∑��h;Xg���https://cn.dataone.org/cn/v1/query/solr?q=kelp&facet=true&facet.field=geohash_5&facet.mincount=1&rows=0r∏��ÖÅrπ��}r∫��(h"U�h#j¥��ubah&j��ubaubaubhM)Årª��}rº��(h"XK���The portion of the response that we are interested in are the facet counts:rΩ��h#j\��h$h%h&hPh(}ræ��(h*]h+]h,]h-]h/]uh1Kêh2hh]rø��h;XK���The portion of the response that we are interested in are the facet counts:r¿��ÖÅr¡��}r¬��(h"jΩ��h#jª��ubaubcdocutils.nodes
literal_block
r√��)Årƒ��}r≈��(h"X"��<lst name="facet_counts">
  <lst name="facet_queries"/>
  <lst name="facet_fields">
    <lst name="geohash_5">
      <int name="9q4qx">5</int>
      <int name="9q4ce">4</int>
      <int name="9q4cf">4</int>
      <int name="9q4ey">4</int>
      <int name="9q4ge">4</int>
      <int name="9q4gx">4</int>
      <int name="9q4kj">4</int>
      <int name="9q4s4">4</int>
      <int name="9q4ez">3</int>
      <int name="9q4g8">3</int>
      <int name="9q4gb">1</int>
    </lst>
  </lst>
  <lst name="facet_dates"/>
  <lst name="facet_ranges"/>
</lst>h#j\��h$h%h&U
literal_blockr∆��h(}r«��(jß��j®��h-]h,]h*]h+]h/]uh1Kîh2hh]r»��h;X"��<lst name="facet_counts">
  <lst name="facet_queries"/>
  <lst name="facet_fields">
    <lst name="geohash_5">
      <int name="9q4qx">5</int>
      <int name="9q4ce">4</int>
      <int name="9q4cf">4</int>
      <int name="9q4ey">4</int>
      <int name="9q4ge">4</int>
      <int name="9q4gx">4</int>
      <int name="9q4kj">4</int>
      <int name="9q4s4">4</int>
      <int name="9q4ez">3</int>
      <int name="9q4g8">3</int>
      <int name="9q4gb">1</int>
    </lst>
  </lst>
  <lst name="facet_dates"/>
  <lst name="facet_ranges"/>
</lst>r…��ÖÅr ��}rÀ��(h"U�h#jƒ��ubaubhM)ÅrÃ��}rÕ��(h"XÔ���To display these search results each geohash can be decoded to obtain the
latitude, longitude of the geohash. For example, we can obtain the coordinates
of the first geohash returned from the search as shown in the following code
fragment:rŒ��h#j\��h$h%h&hPh(}rœ��(h*]h+]h,]h-]h/]uh1K©h2hh]r–��h;XÔ���To display these search results each geohash can be decoded to obtain the
latitude, longitude of the geohash. For example, we can obtain the coordinates
of the first geohash returned from the search as shown in the following code
fragment:r—��ÖÅr“��}r”��(h"jŒ��h#jÃ��ubaubj√��)År‘��}r’��(h"X¥���// Use the node-geohash Javascript library
var geohashLib= require('ngeohash');

// Return [minlat, minlon, maxlat, maxlon] of geohash tile
var coords = geohashLib.decode("9q4qx");h#j\��h$h%h&j∆��h(}r÷��(jß��j®��h-]h,]h*]h+]h/]uh1K∞h2hh]r◊��h;X¥���// Use the node-geohash Javascript library
var geohashLib= require('ngeohash');

// Return [minlat, minlon, maxlat, maxlon] of geohash tile
var coords = geohashLib.decode("9q4qx");rÿ��ÖÅrŸ��}r⁄��(h"U�h#j‘��ubaubhM)År€��}r‹��(h"X>��The variable *coords* now contains the latitude, longitude (coords.latitude,
coords.logitude) of the decoded geohash, which is center point of the geohash
tile, in this case for level 5 geohash tiles. We could then place a marker with
counts at these coordinates to indicate how many hits occured in this geohash
tile.h#j\��h$h%h&hPh(}r›��(h*]h+]h,]h-]h/]uh1K∂h2hh]rfi��(h;X
���The variable rfl��ÖÅr‡��}r·��(h"X
���The variable h#j€��ubhV)År‚��}r„��(h"X���*coords*h(}r‰��(h*]h+]h,]h-]h/]uh#j€��h]rÂ��h;X���coordsrÊ��ÖÅrÁ��}rË��(h"U�h#j‚��ubah&h^ubh;X)�� now contains the latitude, longitude (coords.latitude,
coords.logitude) of the decoded geohash, which is center point of the geohash
tile, in this case for level 5 geohash tiles. We could then place a marker with
counts at these coordinates to indicate how many hits occured in this geohash
tile.rÈ��ÖÅrÍ��}rÎ��(h"X)�� now contains the latitude, longitude (coords.latitude,
coords.logitude) of the decoded geohash, which is center point of the geohash
tile, in this case for level 5 geohash tiles. We could then place a marker with
counts at these coordinates to indicate how many hits occured in this geohash
tile.h#j€��ubeubhM)ÅrÏ��}rÌ��(h"X��Care must be taken in selecting the right geohash tile level for the Solr
query, with the consideration of smaller geohash tiles providing more accurate
spatial results, but returning a greater number of facet results as each
greater resolution tile covers a smaller geographic area.rÓ��h#j\��h$h%h&hPh(}rÔ��(h*]h+]h,]h-]h/]uh1Kºh2hh]r��h;X��Care must be taken in selecting the right geohash tile level for the Solr
query, with the consideration of smaller geohash tiles providing more accurate
spatial results, but returning a greater number of facet results as each
greater resolution tile covers a smaller geographic area.rÒ��ÖÅrÚ��}rÛ��(h"jÓ��h#jÏ��ubaubeubh)ÅrÙ��}rı��(h"U�h#h h$h%h&h'h(}rˆ��(h*]h+]h,]h-]r˜��hah/]r¯��hauh1K√h2hh]r˘��(h4)År˙��}r˚��(h"X���Using Geohashes for searchingr¸��h#jÙ��h$h%h&h8h(}r˝��(h*]h+]h,]h-]h/]uh1K√h2hh]r˛��h;X���Using Geohashes for searchingrˇ��ÖÅr���}r��(h"j¸��h#j˙��ubaubhM)År��}r��(h"Xı���Geohashes in the search index are multi-valued, so that geohashes have been
computed for each geographic coverage for a PID. Since the geohashes are
indexed at different resolutions, you can search all coverages at different
spatial resolutions.r��h#jÙ��h$h%h&hPh(}r��(h*]h+]h,]h-]h/]uh1K≈h2hh]r��h;Xı���Geohashes in the search index are multi-valued, so that geohashes have been
computed for each geographic coverage for a PID. Since the geohashes are
indexed at different resolutions, you can search all coverages at different
spatial resolutions.r��ÖÅr��}r	��(h"j��h#j��ubaubhM)År
��}r��(h"X(���**Example: Search using a bounding box**r��h#j��h$h%h&hPh(}r
��(h*]h+]h,]h-]h/]uh1K h2hh]r��há)År��}r��(h"j��h(}r��(h*]h+]h,]h-]h/]uh#j
��h]r��h;X$���Example: Search using a bounding boxr��ÖÅr��}r��(h"U�h#j��ubah&hêubaubhM)År��}r��(h"X��One appraach to using geohashes for search is to retrieve all PIDs with
geohashes that overlap a search box. First determine which geohashes overlap a
bounding rectangle, in this case the bounding rectangle that encompasses Santa
Cruz Island in the Santa Barbara Channel:r��h#jÙ��h$h%h&hPh(}r��(h*]h+]h,]h-]h/]uh1KÃh2hh]r��h;X��One appraach to using geohashes for search is to retrieve all PIDs with
geohashes that overlap a search box. First determine which geohashes overlap a
bounding rectangle, in this case the bounding rectangle that encompasses Santa
Cruz Island in the Santa Barbara Channel:r��ÖÅr��}r��(h"j��h#j��ubaubj√��)År��}r��(h"X"��// Use the node-geohash Javascript library
var geohashLib= require('ngeohash');

// Search for all geohashes within a geographic bounding box
// which might be the current browser viewport or alternatively a
// region of interest

// Santa Cruz Island bounding coordinates (approximate)
// lower left

minlat = 33.959878;
minlon = -119.914398;

// upper right
maxlat = 34.075341;
maxlon = -119.520264;

// Find all geohashes that overlap the specified bounding box.
var geohashes = geohashLib.bboxes (minlat, minlon, maxlat, maxlon, precision=4);h#jÙ��h$h%h&j∆��h(}r ��(jß��j®��h-]h,]h*]h+]h/]uh1K”h2hh]r!��h;X"��// Use the node-geohash Javascript library
var geohashLib= require('ngeohash');

// Search for all geohashes within a geographic bounding box
// which might be the current browser viewport or alternatively a
// region of interest

// Santa Cruz Island bounding coordinates (approximate)
// lower left

minlat = 33.959878;
minlon = -119.914398;

// upper right
maxlat = 34.075341;
maxlon = -119.520264;

// Find all geohashes that overlap the specified bounding box.
var geohashes = geohashLib.bboxes (minlat, minlon, maxlat, maxlon, precision=4);r"��ÖÅr#��}r$��(h"U�h#j��ubaubhM)År%��}r&��(h"Xß���The geohashes that overlap the search bounding box are returned. These
geohashes can then be used to find PIDs that have a coverage that is within
these geohash tiles:r'��h#jÙ��h$h%h&hPh(}r(��(h*]h+]h,]h-]h/]uh1KËh2hh]r)��h;Xß���The geohashes that overlap the search bounding box are returned. These
geohashes can then be used to find PIDs that have a coverage that is within
these geohash tiles:r*��ÖÅr+��}r,��(h"j'��h#j%��ubaubj√��)År-��}r.��(h"XY���https://cn.dataone.org/cn/v1/query/solr?q=*:*&q.op=OR&fq=geohash_4:(9q4c 9q49 9q51)&fl=idh#jÙ��h$h%h&j∆��h(}r/��(jß��j®��h-]h,]h*]h+]h/]uh1KÓh2hh]r0��h;XY���https://cn.dataone.org/cn/v1/query/solr?q=*:*&q.op=OR&fq=geohash_4:(9q4c 9q49 9q51)&fl=idr1��ÖÅr2��}r3��(h"U�h#j-��ubaubhM)År4��}r5��(h"X˚���This Solr filter query will find all entries for which one of the level 4
geohashes matches any of the specified geohashes. Because the geohash_* fields
are indexed as Solr multivalued fields, all coverages for a PID are compared to
see if they match.r6��h#jÙ��h$h%h&hPh(}r7��(h*]h+]h,]h-]h/]uh1Kh2hh]r8��h;X˚���This Solr filter query will find all entries for which one of the level 4
geohashes matches any of the specified geohashes. Because the geohash_* fields
are indexed as Solr multivalued fields, all coverages for a PID are compared to
see if they match.r9��ÖÅr:��}r;��(h"j6��h#j4��ubaubeubh)År<��}r=��(h"U�h#h h$h%h&h'h(}r>��(h*]h+]h,]h-]r?��hah/]r@��h	auh1K˜h2hh]rA��(h4)ÅrB��}rC��(h"X���Geohash algorithmrD��h#j<��h$h%h&h8h(}rE��(h*]h+]h,]h-]h/]uh1K˜h2hh]rF��h;X���Geohash algorithmrG��ÖÅrH��}rI��(h"jD��h#jB��ubaubhM)ÅrJ��}rK��(h"X¶���A description of the geohash algorith is outside the scope of this document,
but an excellent description of the can be found at
http://en.wikipedia.org/wiki/Geohash.h#j<��h$h%h&hPh(}rL��(h*]h+]h,]h-]h/]uh1K˘h2hh]rM��(h;XÅ���A description of the geohash algorith is outside the scope of this document,
but an excellent description of the can be found at
rN��ÖÅrO��}rP��(h"XÅ���A description of the geohash algorith is outside the scope of this document,
but an excellent description of the can be found at
h#jJ��ubj¸��)ÅrQ��}rR��(h"X$���http://en.wikipedia.org/wiki/GeohashrS��h(}rT��(UrefurijS��h-]h,]h*]h+]h/]uh#jJ��h]rU��h;X$���http://en.wikipedia.org/wiki/GeohashrV��ÖÅrW��}rX��(h"U�h#jQ��ubah&j��ubh;X���.ÖÅrY��}rZ��(h"X���.h#jJ��ubeubhM)År[��}r\��(h"X≠��One caveat of the geohash algorith that may be of interest to end users
however, is that because of the tile ordering ("Z" ordering) where tile
geohashes are incremented in a "Z" pattern and not strictly by row, column, it
is not gauranteed that adjancent tiles have similar geohashes, for example, the
level 1 geohashes at the equator, starting from the International Date Line,
are named "8", "9", "d", "e", "s", "t" and so on.r]��h#j<��h$h%h&hPh(}r^��(h*]h+]h,]h-]h/]uh1K˝h2hh]r_��h;X≠��One caveat of the geohash algorith that may be of interest to end users
however, is that because of the tile ordering ("Z" ordering) where tile
geohashes are incremented in a "Z" pattern and not strictly by row, column, it
is not gauranteed that adjancent tiles have similar geohashes, for example, the
level 1 geohashes at the equator, starting from the International Date Line,
are named "8", "9", "d", "e", "s", "t" and so on.r`��ÖÅra��}rb��(h"j]��h#j[��ubaubeubeubah"U�Utransformerrc��NU
footnote_refsrd��}re��Urefnamesrf��}rg��Usymbol_footnotesrh��]ri��Uautofootnote_refsrj��]rk��Usymbol_footnote_refsrl��]rm��U	citationsrn��]ro��h2hUcurrent_linerp��NUtransform_messagesrq��]rr��Ureporterrs��NUid_startrt��KU
autofootnotesru��]rv��U
citation_refsrw��}rx��Uindirect_targetsry��]rz��Usettingsr{��(cdocutils.frontend
Values
r|��or}��}r~��(Ufootnote_backlinksr��KUrecord_dependenciesrÄ��NUrfc_base_urlrÅ��Uhttps://tools.ietf.org/html/rÇ��U	tracebackrÉ��àUpep_referencesrÑ��NUstrip_commentsrÖ��NU
toc_backlinksrÜ��hπU
language_coder�Uenr�U	datestampr�NUreport_levelr�KU_destinationr�NU
halt_levelr�KU
strip_classesrç��Nh8NUerror_encoding_error_handlerré��Ubackslashreplacerè��Udebugrê��NUembed_stylesheetrë��âUoutput_encoding_error_handlerrí��Ustrictrì��U
sectnum_xformr�KUdump_transformsr�NU
docinfo_xformrñ��KUwarning_streamró��NUpep_file_url_templaterò��Upep-%04drô��Uexit_status_levelrö��KUconfigrõ��NUstrict_visitorrú��NUcloak_email_addressesrù��àUtrim_footnote_reference_spacerû��âUenvrü��NUdump_pseudo_xmlr†��NUexpose_internalsr°��NUsectsubtitle_xformr¢��âUsource_linkr£��NUrfc_referencesr§��NUoutput_encodingr•��Uutf-8r¶��U
source_urlrß��NUinput_encodingr®��U	utf-8-sigr©��U_disable_configr™��NU	id_prefixr´��U�U	tab_widthr¨��KUerror_encodingr≠��UUTF-8rÆ��U_sourcerØ��h%Ugettext_compactr∞��àU	generatorr±��NUdump_internalsr≤��NUsmart_quotesr≥��âUpep_base_urlr¥��U https://www.python.org/dev/peps/rµ��Usyntax_highlightr∂��Ulongr∑��Uinput_encoding_error_handlerr∏��jì��Uauto_id_prefixrπ��Uidr∫��Udoctitle_xformrª��âUstrip_elements_with_classesrº��NU
_config_filesrΩ��]ræ��Ufile_insertion_enabledrø��àUraw_enabledr¿��KU
dump_settingsr¡��NubUsymbol_footnote_startr¬��K�Uidsr√��}rƒ��(hj<��hh?j��j��hÄh{hj��hjÙ��hjÁ��hj\��hh uUsubstitution_namesr≈��}r∆��h&h2h(}r«��(h*]h-]h,]Usourceh%h+]h/]uU	footnotesr»��]r…��Urefidsr ��}rÀ��ub.