Skip to contents

The ready-made layout for the two-panel 16 x 16 (256 sensor) capacitive saddle mat exported by Novel/Pliance systems. All 256 sensors are active.

Usage

pr_layout_saddle_novel(
  pressure_range = c(0, 63.75),
  sensor_area_cm2 = NA_real_,
  ...
)

Arguments

pressure_range

Numeric vector of length 2. Default c(0, 63.75) kPa, the hardware ceiling (255 x 0.25 kPa).

sensor_area_cm2

Numeric. Cell area in cm²; NA_real_ by default because the manufacturer never published one.

...

Further arguments passed to pr_layout_from_index_map(), e.g. name, spacing_mm, description, regions.

Value

A pr_layout with 256 active sensors and a channel_map field.

Details

The mat is built from two 16 x 8 panels. Device channel 1 sits at grid (row 1, column 9) — the first cell of the right panel — and channel 9 at (row 1, column 8), with each grid row advancing the channel number by 16 and the left panel running right-to-left. Applying pressure[, pr_channel_order(layout)] to a raw export therefore places every channel at its true anatomical position, which is what makes pr_mask_saddle_6(), pr_mask_symmetry(), pr_calc_cop() and the heatmaps simultaneously correct. Without the permutation the aggregate statistics (mean, peak, total) are unchanged, so a wrong map is invisible in every summary and wrong in every map.

No sensor pitch or cell area is published for this mat, so both default to NA and the coordinates are grid indices — see the Missing physical scale section of pr_layout_from_index_map().

See also

Other channel map functions: pr_channel_order(), pr_layout_from_index_map()

Examples

layout <- pr_layout_saddle_novel()
layout$n_sensors
#> [1] 256
layout$channel_map[1, 1:10]
#>  [1] 16 15 14 13 12 11 10  9  1  2

# Device channel 1 lands at grid (row 1, col 9):
pos <- match(1L, pr_channel_order(layout))
layout$coords_mm[pos, c("row", "col")]
#> # A tibble: 1 × 2
#>     row   col
#>   <int> <int>
#> 1     1     9