Skip to content

Index

subsurfaceio.graphics

SVG soil-pattern graphics composed from tiles.

Look up a graphic and render it:

from subsurfaceio.graphics import graphic_registry

svg = graphic_registry.graphics['ASPHALT'].generate_svg()

Classes:

Name Description
Graphic

Named soil-pattern graphic composed of tiled SVG fragments.

Graphics

Catalog of named Graphic records.

SVGDefinitions

Accumulated SVG <defs> fragments for a graphic.

TileConfiguration

How one tile is placed inside a graphic (span, borders, scale).

Attributes:

Name Type Description
graphic_registry Graphics

graphic_registry module-attribute

graphic_registry: Graphics = Graphics.model_validate(
    dict(graphics=graphics)
)

Graphic pydantic-model

Bases: BaseModel

Named soil-pattern graphic composed of tiled SVG fragments.

Config:

  • frozen: True

Fields:

category pydantic-field

category: str

description pydantic-field

description: str | None = None

model_config class-attribute instance-attribute

model_config = ConfigDict(frozen=True)

name pydantic-field

name: str

svg_definitions property

svg_definitions: SVGDefinitions

Cached SVG definitions accumulated while rendering tiles.

tiles_configuration pydantic-field

tiles_configuration: tuple[TileConfiguration, ...]

generate_svg

generate_svg(
    solid_fill_color: str = "#000",
    include_definitions: bool = True,
    svg_width: float | None = None,
    svg_height: float | None = None,
) -> str

Render the graphic to an SVG string.

Parameters:

Name Type Description Default
solid_fill_color str

CSS color used for SOLID tiles.

'#000'
include_definitions bool

Whether to embed <defs> in the output.

True
svg_width float | None

Actual pixel width; used to resolve 'Expand Horizontal' tiles.

None
svg_height float | None

Actual pixel height; used to resolve 'Expand Vertical' tiles.

None

Returns:

Type Description
str

Full SVG document fragment for this graphic.

Graphics pydantic-model

Bases: BaseModel

Catalog of named Graphic records.

Fields:

graphics pydantic-field

graphics: dict[str, Graphic]

SVGDefinitions pydantic-model

Bases: BaseModel

Accumulated SVG <defs> fragments for a graphic.

Fields:

definitions pydantic-field

definitions: dict[str, str]

render

render() -> str

Wrap registered definitions in a <defs> block.

Returns:

Type Description
str

Style plus <defs> markup, including an empty defs block when nothing is registered.

TileConfiguration pydantic-model

Bases: BaseModel

How one tile is placed inside a graphic (span, borders, scale).

Config:

  • frozen: True

Fields:

from_pct pydantic-field

from_pct: float = 0

model_config class-attribute instance-attribute

model_config = ConfigDict(frozen=True)

scale pydantic-field

scale: float | None = None

tile_symbol pydantic-field

tile_symbol: str | None

to_pct pydantic-field

to_pct: float = 100

vertical_borders pydantic-field

vertical_borders: (
    Literal["Left", "Right", "Both"] | None
) = None