osbng.bng_reference.BNGReference.bng_kring#

BNGReference.bng_kring(k: int, *, return_relations: bool = False) list[BNGReference][source]#

Returns a hollow ring of BNGReference objects around this BNGReference.

Returns all BNGReference objects at a grid distance k.

Notes

Returned BNGReference objects are ordered North to South then West to East, therefore not in ring order.

Parameters:

k (int) – Grid distance in units of grid squares.

Keyword Arguments:

return_relations (bool, optional) – If True, returns a list of (BNGReference, dx, dy) tuples where dx, dy are integer offsets in grid units. If False (default), returns a list of BNGReference objects.

Returns:

All BNGReference objects representing squares in a square ring of radius k.

Return type:

list[BNGReference]

Examples

>>> BNGReference("SU1234").bng_kring(1)
[
BNGReference(bng_ref_formatted=SU 11 35, resolution_label=1km),
BNGReference(bng_ref_formatted=SU 12 35, resolution_label=1km),
BNGReference(bng_ref_formatted=SU 13 35, resolution_label=1km),
BNGReference(bng_ref_formatted=SU 11 34, resolution_label=1km),
BNGReference(bng_ref_formatted=SU 13 34, resolution_label=1km),
BNGReference(bng_ref_formatted=SU 11 33, resolution_label=1km),
BNGReference(bng_ref_formatted=SU 12 33, resolution_label=1km),
BNGReference(bng_ref_formatted=SU 13 33, resolution_label=1km)
]
>>> BNGReference("SU1234").bng_kring(1, return_relations=True)
[
(BNGReference(bng_ref_formatted=SU 11 35, resolution_label=1km), -1, 1),
(BNGReference(bng_ref_formatted=SU 12 35, resolution_label=1km), 0, 1),
(BNGReference(bng_ref_formatted=SU 13 35, resolution_label=1km), 1, 1),
(BNGReference(bng_ref_formatted=SU 11 34, resolution_label=1km), -1, 0),
(BNGReference(bng_ref_formatted=SU 13 34, resolution_label=1km), 1, 0),
(BNGReference(bng_ref_formatted=SU 11 33, resolution_label=1km), -1, -1),
(BNGReference(bng_ref_formatted=SU 12 33, resolution_label=1km), 0, -1),
(BNGReference(bng_ref_formatted=SU 13 33, resolution_label=1km), 1, -1)
]
>>> BNGReference("SU1234").bng_kring(3)
[list of 24 BNGReference objects]

See also

The equivalent osbng.traversal.bng_kring() function.