maidenhead
provides a simple, yet effective location hashing algorithm.
Maidenhead allows global location precision down to 750m
Maidenhead provides 4 levels of increasing accuracy
Level | Precision |
---|---|
1 | World |
2 | Regional |
3 | Metropolis |
4 | City |
5 | Street |
6 | 1m precision |
pip install maidenhead
or for development version
git clone https://github.com/space-physics/maidenhead
pip install -e maidenhead
Examples assume first doing
import maidenhead as mh
Lat, lon to Maidenhead locator:
mh.to_maiden(lat, lon, level)
returns a char (len = lvl*2)
Maidenhead locator to lat lon:
mh.to_location('AB01cd')
takes Maidenhead location string and returns top-left lat, lon of Maidenhead grid square.
The center=True
option outputs lat lon of the center of provided maidenhead grid square, instead of the default southwest corner.
Maidenhead locator to geoJSON (RFC 7946)
geo_obj = mh.to_geoJSONObject('AB01cd', center=True, nosquare=False)
geoJSON = json.dumps(geo_obj, indent=2)
The command line interface takes either decimal degrees for "latitude longitude" or the Maidenhead locator string:
python -m maidenhead 65.0 -148.0
BP65aa
python -m maidenhead BP65aa12
65.0083 -147.9917
The "python -m" CLI is also available:
python -m maidenhead 65.0 -148.0
The --center
option outputs lat lon of the center of provided maidenhead grid square, instead of the default southwest corner.
python -m maidenhead --center --geojson EN35ld
{"type": "FeatureCollection", "features": [{"type": "Feature", "properties": {"QTHLocator_Centerpoint": "EN35ld"}, "geometry": {"type": "Point", "coordinates": [-93.04166666666667, 45.145833333333336]}}, {"type": "Feature", "properties": {"QTHLocator": "EN35ld"}, "geometry": {"type": "Polygon", "coordinates": [[[-93.08333333333333, 45.125], [-93.08333333333333, 45.166666666666664], [-93.0, 45.166666666666664], [-93.0, 45.125], [-93.08333333333333, 45.125]]]}}]}
The --center
option enables adding center point of the grid square as Point feature.
The --nosquare
option disables adding Polygon feature for the requested grid square
Open Location Codes a.k.a Plus Codes are in Python code by Google.
Web convertor Earth Point - Tools for Google Earth.