
Interactive Plan viewer.
plan_view.RdRenders a Plan as an interactive DAG (an htmlwidget, via the
suggested visNetwork package): one node per stage, laid out
left to right in execution order on explicit topological levels.
Stages are labelled by what they compute, not just their scheduler
kind: a compute stage is classified by the IR nodes fused into it
(focal, scan, patch, stack, map, most informative first,
the same vocabulary as draw()), and reduce stages carry their
reducer (reduce\u00b7median). When a LazyDataset is passed, derived
bands (ds[["ndvi"]] <- ...) are recovered from the dataset's step
record and the stage computing one is labelled with the band name
(derive\u00b7ndvi); the derivation is bounded structurally at the first
non-elementwise node, so it survives subsetting (ds["ndvi"]).
Hovering a stage shows its full op composition and any recoverable
metadata: acquisition dates on slice sources and t-spans on
composites (from stack ordering and grid labels), the band a stage
computes, source file and band, and op parameters (reducer and
axis, focal radius, scan direction): plus members, halo, device,
and output grid; clicking
highlights its neighbours; the sink stage is drawn with a heavy
border. Where plan_dot() emits static Graphviz
text, plan_view() is the exploratory sibling: watch the plan
change shape as a pipeline is composed.
Arguments
- x
A
Planfromplan_lazy(), aLazyRaster, aLazyDataset(its bands are assembled along the band axis first, as incollect()), or a named list ofLazyRasters.- level_separation
Horizontal distance between topological levels, in pixels.
NULL(default) adapts to the graph's shape: wide plans (many sources, few levels) get a landscape aspect so the left-to-right flow stays legible, floored by label clearance and capped for deep plans. Pass a number to override.- node_spacing
Distance between nodes within a level, in pixels: vertical, since levels run left to right. The tall stretch of a wide plan (e.g. one source per time slice) is this times the widest level's node count; lower it to compress.
- height, width
Widget size, as CSS units.
See also
plan_dot() for DOT text, draw() for pixels.
Examples
if (FALSE) { # \dontrun{
lr <- lazy_source("cube.tif")
plan_view(focal(lr * 2, radius = 1L, fn = g_mean))
} # }