Vgrid - All in One Global Geocoding Systems
Project description
Vgrid - All in One Global Geocoding Systems
Installation:
-
Using pip:
pip install vgrid --upgrade
-
Visit vgrid on PyPI
Usage - Python:
Import vgrid, initialize Latitude and Longitude for testing:
from vgrid.geocode import geohash, georef, maidenhead, mgrs, olc
import h3
from vgrid.geocode.gars import GARSGrid
from vgrid.geocode.s2 import LatLng, CellId
from vgrid.geocode.geocode2geojson import *
latitude, longitude = 10.775275567242561, 106.70679737574993
print(f'Latitude, Longitude: ({latitude}, {longitude})')
GARS
print('\nGARS:')
gars_precision = 1 # 1, 5, 15, 30 minutes
gars_grid = GARSGrid.from_latlon(latitude, longitude, gars_precision)
gars_code = gars_grid.gars_id
print(gars_code)
data = gars2geojson(gars_code)
output_file = f'gars_{gars_precision}.geojson'
with open(output_file, 'w') as f:
geojson.dump(data, f, indent=2)
print(f'GeoJSON written to {output_file}')
Geohash
print('\Geohsash:')
geohash_precision = 9 # [1-->30]
geohash_code = geohash.encode(latitude, longitude, geohash_precision)
geohash_decode = geohash.decode(geohash_code, True)
print(f'Geohash Code at precision = {geohash_precision}: {geohash_code}')
print(f'Decode {geohash_code} to WGS84 = {geohash_decode}')
data = geohash2geojson(geohash_code)
output_file = 'geohash.geojson'
with open(output_file, 'w') as f:
geojson.dump(data, f, indent=2)
print(f'GeoJSON written to {output_file}')
GEOREF
print('\GEOREF:')
georef_precision = 4 # [0 -->10]
georef_code = georef.encode(latitude, longitude, georef_precision)
georef_decode = georef.decode(georef_code, True)
print(f'latitude, longitude = {latitude},{longitude}')
print(f'GEOREF Code at precision = {georef_precision}: {georef_code}')
print(f'Decode {georef_code} to WGS84 = {georef_decode}')
data = georef2geojson(georef_code)
output_file = f'georef{georef_precision}.geojson'
with open(output_file, 'w') as f:
geojson.dump(data, f, indent=2) # 'indent' makes the JSON output more readable
print(f'GeoJSON written to {output_file}')
H3
print('\H3:')
h3_precision = 13 #[0-->15]
h3_code = h3.latlng_to_cell(latitude, longitude, h3_precision)
h3_decode = h3.cell_to_latlng(h3_code)
print(f'latitude, longitude = {latitude},{longitude}')
print(f'H3 code at precision = {h3_precision}: {h3_code}')
print(f'Decode {h3_code} to WGS84 = {h3_decode}')
data = h32geojson(h3_code)
output_file = f'h3_{h3_precision}.geojson'
with open(output_file, 'w') as f:
geojson.dump(data, f, indent=2) # 'indent' makes the JSON output more readable
print(f'GeoJSON written to {output_file}')
Maidenhead
print('\nMaidenhead:')
maidenhead_precision = 4 #[1-->4]
maidenhead_code = maidenhead.toMaiden(latitude, longitude, maidenhead_precision)
maidenGrid = maidenhead.maidenGrid(maidenhead_code)
print(f'Maidenhead Code at precision = {maidenhead_precision}: {maidenhead_code}')
print(f'Convert {maidenhead_code} to center and cell in WGS84 = {maidenGrid}')
data = maidenhead2geojson(maidenhead_code)
output_file = 'maidenhead.geojson'
with open(output_file, 'w') as f:
geojson.dump(data, f, indent=2) # 'indent' makes the JSON output more readable
print(f'GeoJSON written to {output_file}')
MGRS
print('\nMGRS:')
mgrs_precision = 4 # [0 -->5]
mgrs_code = mgrs.toMgrs(latitude, longitude, mgrs_precision)
mgrs_code_to_wgs = mgrs.toWgs(mgrs_code)
print(f'MGRS Code at precision = {mgrs_precision}: {mgrs_code}')
print(f'Convert {mgrs_code} to WGS84 = {mgrs_code_to_wgs}')
data = mgrs2geojson(mgrs_code)
output_file = f'mgrs{mgrs_precision}.geojson'
with open(output_file, 'w') as f:
geojson.dump(data, f, indent=2) # 'indent' makes the JSON output more readable
print(f'GeoJSON written to {output_file}')
OLC
print('\OLC:')
olc_precision = 11 #[10-->15]
olc_code = olc.encode(latitude, longitude, olc_precision)
olc_decode = olc.decode(olc_code)
print(f'OLC at precision = {olc_precision}: {olc_code}')
print(f'Decode {olc_code} to center and cell in WGS84 = {olc_decode}')
data = olc2geojson(olc_code)
output_file = f'olc{olc_precision}.geojson'
with open(output_file, 'w') as f:
geojson.dump(data, f, indent=2) # 'indent' makes the JSON output more readable
print(f'GeoJSON written to {output_file}')
S2
print('\S2:')
s2_precision = 21 #[0 -->30]
lat_lng = LatLng.from_degrees(latitude, longitude)
cell_id = CellId.from_lat_lng(lat_lng)
cell_id = cell_id.parent(s2_precision)
cell_id_token= CellId.to_token(cell_id)
print(cell_id_token)
data = s22geojson(cell_id_token)
output_file = f's2_{s2_precision}.geojson'
with open(output_file, 'w') as f:
geojson.dump(data, f, indent=2) # 'indent' makes the JSON output more readable
print(f'GeoJSON written to {output_file}')
Usage - CLI:
GARS
> gars2geojson 574JK1918
Geohash
> geohash2geojson w3gvk1td8
GEOREF
> georef2geojson VGBL42404651
H3
> h32geojson 8d65b56628e46bf
Maidenhead
> maidenhead2geojson OK30is46
MGRS
> mgrs2geojson 34TGK56063228
OLC
> olc2geojson 7P28QPG4+4P7
S2
> s22geojson 31752f45cc94
Command line for creating geocoding grids in shapefile format
> geohashgrid -p 1 -o geohash_1.shp (p = [1..12])
> maidenheadgrid -p 1 -o maidenhead_1.shp (p = [1, 2, 3, 4])
> olcgrid -p 1 -o olc_1.shp (p = [2,4,8])
> gzd -o gzd.shp (Create Grid Zone Designators - used by MGRS)
> mgrsgrid -o mgrs_32648.shp -cellsize 100000 -epsg 32648 (Create MGRS Grid with cell size 100km x 100km at UTM zone 48N)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
vgrid-1.1.3.tar.gz
(116.4 kB
view details)
Built Distribution
vgrid-1.1.3-py3-none-any.whl
(129.8 kB
view details)
File details
Details for the file vgrid-1.1.3.tar.gz
.
File metadata
- Download URL: vgrid-1.1.3.tar.gz
- Upload date:
- Size: 116.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 169819013b2447be0db7bb4077cd8eb2350b2706f7b55a638922f2e73d1054f7 |
|
MD5 | 151b2d0c65c7a7e288b8c35222148340 |
|
BLAKE2b-256 | 0ad962d48f7f1a7f40378d809c80d2d2f0acd9a970f4ecd58afe75aca4f97c67 |
File details
Details for the file vgrid-1.1.3-py3-none-any.whl
.
File metadata
- Download URL: vgrid-1.1.3-py3-none-any.whl
- Upload date:
- Size: 129.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55cbdfea36463f36c1f56628043c673e6b5a2813716db80da430401d2f5e55a5 |
|
MD5 | 5ffa756019aca902bfb67c91f805757a |
|
BLAKE2b-256 | ea2953457f6828bb4584615f05d5e348118740e3301943ee740dc0a29b15ec6c |