openworld_radio_twin.providers.surfaces#

Functions

apply_water_surface_model(terrain, features, ...)

Replace water-tagged terrain with one horizontal RF interface per water body.

classify_surface_cells(terrain, features)

Classes

LinearRule(start, stop, value)

OvertureSurfaceProvider(settings)

Normalize Overture semantic layers into one non-overlapping surface grid.

SurfaceDecision(surface_class, basis, precedence)

SurfaceQueryResult(features, cells, release, ...)

Exceptions

class openworld_radio_twin.providers.surfaces.SurfaceQueryResult(features, cells, release, provenance, warnings)[source]#

Bases: object

features: tuple[SurfaceFeature, ...]#
cells: ndarray#
release: str#
provenance: dict[str, object]#
warnings: list[str]#
exception openworld_radio_twin.providers.surfaces.SurfaceProviderError[source]#

Bases: RuntimeError

class openworld_radio_twin.providers.surfaces.SurfaceDecision(surface_class, basis, precedence)[source]#

Bases: object

surface_class: SurfaceClass#
basis: str#
precedence: int#
class openworld_radio_twin.providers.surfaces.LinearRule(start, stop, value)[source]#

Bases: object

start: float#
stop: float#
value: str | float#
class openworld_radio_twin.providers.surfaces.OvertureSurfaceProvider(settings)[source]#

Bases: object

Normalize Overture semantic layers into one non-overlapping surface grid.

themes = ('land_cover', 'land_use', 'water', 'segment')#
async surfaces(longitude, latitude, radius_m, terrain)[source]#
Return type:

SurfaceQueryResult

openworld_radio_twin.providers.surfaces.classify_surface_cells(terrain, features)[source]#
Return type:

ndarray

openworld_radio_twin.providers.surfaces.apply_water_surface_model(terrain, features, surface_cells)[source]#

Replace water-tagged terrain with one horizontal RF interface per water body.

Return type:

TerrainGrid