wolfhece.assets.curve.zones_asset

Curve asset factory producing native Zones for mapviewer rendering.

Module Contents

class wolfhece.assets.curve.zones_asset.CurveZonesAsset(curves: Sequence[Sequence[tuple[float, float]]], *, labels: Sequence[str] | None = None, x_bounds: tuple[float, float] | None = None, y_bounds: tuple[float, float] | None = None, clamp_projected_points: bool = True, sort_by_x: bool = True, colors: Sequence[tuple[int, int, int] | tuple[int, int, int, int]] | None = None, curve_styles: Sequence[dict] | None = None, canvas_origin: tuple[float, float] = (0.0, 0.0), canvas_size: tuple[float, float] = (100.0, 100.0), area_fraction: tuple[float, float, float, float] = (0.1, 0.1, 0.8, 0.3), line_width: float = 1.5, line_alpha: int = 255, show_area_frame: bool = True, frame_color: tuple[int, int, int] = (40, 40, 40), show_axes: bool = False, axes_color: tuple[int, int, int] = (25, 25, 25), axes_line_width: float = 1.2, show_grid: bool = False, grid_color: tuple[int, int, int] = (120, 120, 120), grid_line_width: float = 0.8, grid_dx: float = 1.0, grid_dy: float = 1.0, show_x_ticks: bool = False, show_y_ticks: bool = False, show_x_tick_labels: bool = False, show_y_tick_labels: bool = False, x_tick_position: str = 'inside', y_tick_position: str = 'inside', x_tick_format: str = '', y_tick_format: str = '', legend_visible: bool = False, legend_text_color: tuple[int, int, int] = (0, 0, 0), idx: str = 'curve_plot', parent=None, mapviewer=None)[source]

Build polyline curves in a rectangular sub-area of a canvas.

DEFAULT_COLORS: tuple[tuple[int, int, int, int], Ellipsis] = ((41, 98, 255, 255), (0, 166, 118, 255), (255, 122, 69, 255), (138, 79, 255, 255), (255, 178, 0, 255))[source]
_source_curves_cache = ()[source]
x_bounds[source]
y_bounds[source]
clamp_projected_points = True[source]
sort_by_x = True[source]
projection_matrix[source]
model[source]
canvas_x[source]
canvas_y[source]
canvas_width[source]
canvas_height[source]
area_fraction[source]
line_width[source]
line_alpha[source]
show_area_frame = True[source]
frame_color = (40, 40, 40)[source]
show_axes = False[source]
axes_color = (25, 25, 25)[source]
axes_line_width[source]
show_grid = False[source]
grid_color = (120, 120, 120)[source]
grid_line_width[source]
grid_dx[source]
grid_dy[source]
show_x_ticks = False[source]
show_y_ticks = False[source]
show_x_tick_labels = False[source]
show_y_tick_labels = False[source]
x_tick_position = ''[source]
y_tick_position = ''[source]
x_tick_format = ''[source]
y_tick_format = ''[source]
legend_visible = False[source]
legend_text_color[source]
idx = ''[source]
parent = None[source]
mapviewer = None[source]
_colors = [][source]
_curve_styles = [][source]
_normalize_curve_styles(styles: Sequence[dict] | None) list[dict][source]
static _freeze_source_curves(curves: Sequence[Sequence[tuple[float, float]]]) tuple[tuple[tuple[float, float], Ellipsis], Ellipsis][source]
static _infer_bounds_from_source(source_curves: tuple[tuple[tuple[float, float], Ellipsis], Ellipsis]) tuple[tuple[float, float], tuple[float, float]][source]
static _normalize_bounds(provided: tuple[float, float] | None, auto_bounds: tuple[float, float], *, axis_name: str) tuple[float, float][source]
static _compute_projection_matrix(x_bounds: tuple[float, float], y_bounds: tuple[float, float]) tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]][source]
_project_point(x: float, y: float) tuple[float, float][source]
_project_source_curves(source_curves: tuple[tuple[tuple[float, float], Ellipsis], Ellipsis]) list[list[tuple[float, float]]][source]
_project_point_unclamped(x: float, y: float) tuple[float, float][source]
_add_line(target_zone: wolfhece.PyVertexvectors.zone, name: str, p0: tuple[float, float], p1: tuple[float, float], *, color: tuple[int, int, int], width: float, z_value: float) None[source]
static _validate_area_fraction(area_fraction: tuple[float, float, float, float]) None[source]
_normalize_colors(colors: Sequence[tuple[int, int, int] | tuple[int, int, int, int]] | None) list[tuple[int, int, int, int]][source]
_area_rect() tuple[float, float, float, float][source]
static _grid_values(lo: float, hi: float, step: float) list[float][source]
static datetime_to_timestamp(dt: datetime.datetime) float[source]

Convert a datetime to a UTC POSIX timestamp (float seconds).

Naive datetimes are assumed to be in UTC.

static _format_tick_value(value: float, fmt: str = '') str[source]

Format a tick value.

If fmt is a strftime pattern (contains %), value is interpreted as a UTC POSIX timestamp and formatted with that pattern. Otherwise compact numeric :.6g formatting is used.

to_zones() wolfhece.PyVertexvectors.Zones[source]

Build and return a Zones object containing curve geometry.