convertbng
Fast lon, lat to and from ETRS89 and BNG (OSGB36) using the OS OSTN15 transform via Rust FFI
Decision gist · record as of 2026-08-14
Yes, if you need accurate WGS84 to British National Grid or ETRS89 conversion. The package is actively maintained, has no known vulnerabilities, and offers fast Rust-backed performance with convenient Python APIs. The unclear license treatment warrants a quick verification, but the BlueOak-1.0.0 SPDX identifier suggests permissive licensing. Install friction is moderate due to compiled binaries, but pre-built wheels eliminate compilation for standard platforms.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Pre-built wheels available for Linux, macOS, and Windows 64-bit; other platforms require building from source with the lonlat_bng Rust library.
- Medium install friction due to compiled Rust binaries, but pre-built wheels are available for common platforms (Linux x86_64/aarch64, macOS x86_64/arm64, Windows 64-bit).
License · maintenance · safety
BlueOak-1.0.0 (unclear) — License treatment is marked unclear in the metadata; the SPDX identifier is BlueOak-1.0.0, which is a permissive open-source license, but you should verify the actual license terms before use.
last release 2026-06-08 (67 days) · last repo commit 2026-08-13 · 41 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 100,265 downloads/mo, #12,997 on PyPI
Alternatives
Verify before relying
pip install convertbng
from convertbng.util import convert_bng, convert_lonlat
import numpy as np
# Convert single coordinates
res = convert_bng(lon, lat)
# Convert arrays
lons = np.array([lon1, lon2])
lats = np.array([lat1, lat2])
res_list = convert_bng(lons, lats)- Whether BlueOak-1.0.0 license is compatible with your project's licensing requirements
- Performance characteristics on large coordinate arrays compared to alternatives
- Whether OSTN15 coverage is sufficient for your geographic region of interest
What it is and what it does
convertbng is a Python wrapper around a Rust library that performs fast, accurate coordinate system transformations between WGS84 (decimal longitude/latitude) and two British/European grid systems: OSGB36 (British National Grid) and ETRS89. It uses the OS OSTN15 transformation for high accuracy when converting to BNG, and offers a faster direct projection option for ETRS89. The package accepts flexible input formats—single values, lists, tuples, numpy arrays, or any iterable—and returns results as lists of two lists (eastings and northings, or vice versa).
The library is built as pre-compiled wheels for common platforms, so installation is straightforward and requires no compilation. It depends only on numpy and is designed for geospatial applications where accurate coordinate conversion between global WGS84 and UK/European grid systems is needed. The Rust backend ensures conversion speed even on large datasets, with optional Cython functions available for further performance gains on numpy arrays.
Use it for
- Convert GPS coordinates to British National Grid for UK mapping applications
- Transform survey data from WGS84 to ETRS89 for European geospatial analysis
- Batch-process coordinate lists to align with UK ordnance survey data
- Integrate coordinate transformation into GIS workflows mixing WGS84 and BNG systems
- Validate that coordinates fall within the BNG bounding box before mapping
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need accurate WGS84 to British National Grid or ETRS89 conversion.
The package is actively maintained, has no known vulnerabilities, and offers fast Rust-backed performance with convenient Python APIs. The unclear license treatment warrants a quick verification, but the BlueOak-1.0.0 SPDX identifier suggests permissive licensing. Install friction is moderate due to compiled binaries, but pre-built wheels eliminate compilation for standard platforms.
Install
convertbng on PyPI
Before you install
Medium install friction due to compiled Rust binaries, but pre-built wheels are available for common platforms (Linux x86_64/aarch64, macOS x86_64/arm64, Windows 64-bit). Requires Python 3.10+. Package is actively maintained with recent releases.
Requires Python 3.10 or later. Pre-built wheels available for Linux, macOS, and Windows 64-bit; other platforms require building from source with the lonlat_bng Rust library.
License in practice
License treatment is marked unclear in the metadata; the SPDX identifier is BlueOak-1.0.0, which is a permissive open-source license, but you should verify the actual license terms before use.
Quickstart
pip install convertbng
from convertbng.util import convert_bng, convert_lonlat
import numpy as np
# Convert single coordinates
res = convert_bng(lon, lat)
# Convert arrays
lons = np.array([lon1, lon2])
lats = np.array([lat1, lat2])
res_list = convert_bng(lons, lats)
Verify before relying
- Whether BlueOak-1.0.0 license is compatible with your project's licensing requirements
- Performance characteristics on large coordinate arrays compared to alternatives
- Whether OSTN15 coverage is sufficient for your geographic region of interest
Package facts
| License | BlueOak-1.0.0 unclear |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagenumpy |
| Maintenance | Actively maintained 67 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 100,265 / month, #12,997 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/Engineering :: GISTopic :: Software Development :: Libraries :: Python Modules |
Evidence: convertbng-1.0.0-cp310-cp310-macosx_11_0_arm64.whl; convertbng-1.0.0-cp310-cp310-macosx_11_0_x86_64.whl; convertbng-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl; convertbng-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl; convertbng-1.0.0-cp310-cp310-win_amd64.whl; convertbng-1.0.0-cp311-abi3-macosx_11_0_arm64.whl; convertbng-1.0.0-cp311-abi3-macosx_11_0_x86_64.whl; convertbng-1.0.0-cp311-abi3-manylinux_2_28_aarch64.whl; convertbng-1.0.0-cp311-abi3-manylinux_2_28_x86_64.whl; convertbng-1.0.0-cp311-abi3-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “WGS84 to BNG conversion”
- convertbngConverts decimal WGS84 longitude/latitude coordinates to and from…
- utmConverts between latitude/longitude coordinates and Universal…
- reprojReproject shapely geometries between coordinate reference systems…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also utm · mgrs · reverse_geocoder · lat-lon-parser · geohash2 · reverse-geocode · pyGeoTile · morecantile · timezonefinder · tzfpy