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 PyBNG
Simply 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
cd
into your project directory- Use
sparse-checkout
to 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
cd
into your project directorycheckout
the 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