Převod souřadnic na geohash a zpět pomocí ArcPy

15. 6. 2018
  • Desktopový GIS
  • ArcGIS Pro 1.2
  • ArcGIS Pro 1.3
  • ArcGIS Pro 1.4
  • ArcGIS Pro 2.0
  • ArcGIS Pro 2.1

Čím dál častěji se můžeme setkat s geografickými souřadnicemi ve formátu geohash.
Jak jej ale používat v ArcGIS Desktop? Do tohoto formátu (a také z něj) lze souřadnice jednoduše převádět pomocí funkcí ArcPy.

Před samotným převodem je však nejprve nutné si uvědomit, že geohash souřadnice definuje určitou oblast postupným hierarchickým členěním celého rozsahu území na poloviny a velikost tohoto rozsahu je dána přesností, resp. počtem znaků geohash souřadnice. Čím delší tato souřadnice je, tím více dělení proběhlo, a tím je tedy i rozsah (extent), který souřadnice zastupuje, menší. Chceme-li z geohash získat bodovou souřadnici, vypočítáme střed rozsahu souřadnic, které tato oblast pokrývá. V ArcPy na to použijeme funkci arcpy.FromGeohash.

Příklad uvedeme pro souřadnici dp1k05:

import arcpy
extent=arcpy.FromGeohash('dp1k05')
lon=(extent.XMax+extent.XMin)/2
lat=(extent.YMax+extent.YMin)/2
print(lon)
print(lat)

Pro převod geometrie bodu v klasických souřadnicích (délka, šířka) do souřadnice geohash je v ArcPy možné využít funkci getGeohash objektu PointGeometry vracející řetězec souřadnice. Zde je nutné definovat kromě geografického systému souřadnic (např. WGS 84 či ETRS89) i přesnost (resp. velikost extentu), se kterou bude souřadnice geohash
zadaný bod reprezentovat. Přesnost definujeme počtem znaků pro výslednou geohash souřadnici.

import arcpy
spatial_reference = arcpy.SpatialReference(4326) 
#srid wgs84
pnt = arcpy.Point(-88.236, 40.096)
pnt_geometry = arcpy.PointGeometry(pnt, spatial_reference)
geohash=pnt_geometry.getGeohash(6) 
#presnost
print(geohash)

Autor: Martin Král