https://github.com/thunderstruct/pybng
An Ordinance-Survey National Grid (BNG) coordinates converter for Python 3
https://github.com/thunderstruct/pybng
bng converter coordinates gis ordinance-survey python python3
Last synced: about 1 year ago
JSON representation
An Ordinance-Survey National Grid (BNG) coordinates converter for Python 3
- Host: GitHub
- URL: https://github.com/thunderstruct/pybng
- Owner: ThunderStruct
- Created: 2020-02-01T12:44:28.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-10T15:22:40.000Z (about 6 years ago)
- Last Synced: 2025-01-21T13:07:25.558Z (about 1 year ago)
- Topics: bng, converter, coordinates, gis, ordinance-survey, python, python3
- Language: Python
- Homepage:
- Size: 80.1 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PyBNG
[](https://travis-ci.org/ThunderStruct/PyBNG) [](https://pypi.org/project/PyBNG/0.1.8/) [](https://github.com/ThunderStruct/PyBNG) [](https://github.com/ThunderStruct/PyBNG/blob/master/LICENSE)
An Ordinance-Survey National Grid coordinates converter
------------------------
## Getting Started
PyBNG is built on top of [OSGridConverter](https://github.com/jdstmporter/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.
### Installation
#### PIP (recommended)
```sh
pip install PyBNG
```
#### Manual Installation
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
##### GIT
- `cd` into your project directory
- Use `sparse-checkout` to pull the library files only into your project directory
```sh
git 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
##### SVN
- `cd` into your project directory
- `checkout` the library files
```sh
svn checkout https://github.com/ThunderStruct/PyBNG/trunk/PyBNG
```
- Import the newly checked out files into your project folder
### Usage
#### Initialization
A `PyBNG` object can be instantiated as follows:
```python
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
### Methods
- `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:
```python
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:
```python
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*
### Acknowledgment
I would like to thank [Dr. Lakshmi Babu-Saheer](mailto:lakshmi.babu-saheer@anglia.ac.uk) for her unwavering support, encouragement, and advice.
## License
This project is licensed under the MIT License - see the [LICENSE](https://github.com/ThunderStruct/PyBNG/blob/master/LICENSE) file for details