An Ordinance-Survey National Grid coordinates converter
PyBNG is built on top of OSGridConverter and is used to convert coordinates from the Ordnance Survey National Grid system (often called the British National Grid -- BNG) to latitude and longitude using WGS84 (other geodetic reference systems available).
While OSGridConverter can convert BNG to latitude and longitude, it does not support all-numeric grid references, which is the primary feature in this library.
pip install PyBNGSimply clone the entire repo and extract the files in the PyBNG folder, then copy all the content to your project folder
Or use one of the shorthand methods below
cdinto your project directory- Use
sparse-checkoutto pull the library files only into your project directorygit init PyBNG cd PyBNG git remote add -f origin https://github.com/ThunderStruct/PyBNG.git git config core.sparseCheckout true echo "PyBNG/*" >> .git/info/sparse-checkout git pull --depth=1 origin master
- Import the newly pulled files into your project folder
cdinto your project directorycheckoutthe library filessvn checkout https://github.com/ThunderStruct/PyBNG/trunk/PyBNG
- Import the newly checked out files into your project folder
A PyBNG object can be instantiated as follows:
from PyBNG import PyBNG
bng = PyBNG(easting=519080, northing=185050)
latlon = PyBNG(lat=51.55178424773851, lon= -0.2835125528796557)The initializer expects easting and northing OR lat and lon parameters, depending on the required conversion
get_latlon(datum='WGS84'):- Description: calculates the latitude and logitude based on the given BNG coordinates
- Parameters: none (passed to constructor)
- Return Value: tuple -- (latitude, longitude)
- Usage:
from PyBNG import PyBNG bng = PyBNG(easting=519080, northing=185050) bng.get_latlon() # (51.55178424773851, -0.2835125528796557)
get_bng(datum='WGS84'):- Description: calculates the BNG coordinates given a latitude and a longitude
- Parameters: none (passed to constructor)
- Return Value: typle -- (easting, northing)
- Usage:
from PyBNG import PyBNG latlon = PyBNG(lat=51.55178424773851, lon= -0.2835125528796557) latlon.get_bng() # (519107, 185051)
Please note that converting BNG coordinates to latitude/longitude and back to BNG will yield different results due to internal float rounding
I would like to thank Dr. Lakshmi Babu-Saheer for her unwavering support, encouragement, and advice.
This project is licensed under the MIT License - see the LICENSE file for details