Source code for raptorstats.node

from rasterio import windows as rio_windows
from shapely import Geometry


[docs] class Node: def __init__(self, _id, parent_id, level, _box, transform, stats, max_depth): self.id = _id self.parent_id = parent_id self.level = level self.box = _box sq = ( rio_windows.from_bounds(*self.box.bounds, transform=transform) .round_offsets() .round_lengths() ) r0 = int(sq.row_off) # top row (inclusive) r1 = r0 + int(sq.height) # bottom row (exclusive) c0 = int(sq.col_off) # left col (inclusive) c1 = c0 + int(sq.width) # right col (exclusive) self.pixel_bounds = (r0, r1, c0, c1) self.stats = stats self.max_depth = max_depth
[docs] def is_contained_in_geom(self, geom: Geometry) -> bool: return self.box.within(geom)
[docs] def is_leaf(self) -> bool: return self.level == self.max_depth
[docs] def is_root(self) -> bool: return self.level == 0