interp_poly op• 数据种类:points × signal × points → table
• 调用: import fullseye as fs; fs.ledger.interp_scattered(points, values, query, method='linear', fill_value=nan, rescale=False, neighbors=None)(要直接调用实现,import mathops; mathops.interp_scattered(points, values, query, method='linear', fill_value=nan, rescale=False, neighbors=None);从台账取用则 opsmath.get("interp_scattered"))
> 该算子的说明尚无译文,以下照原文给出。
Values at *query* from scattered samples — sensor nets, boreholes, weather.
interp_linear and interp_cubic need samples on a sorted 1-D axis. A great deal of measurement does not arrive that way: temperature sensors bolted wherever a rack allowed, boreholes drilled where access permitted, weather stations placed by history. This is the N-D scattered entry point (scipy.interpolate), and it returns how much of the answer was not interpolation at all.
*method*:
"nearest"
the value of the closest sample. Defined everywhere, and never
overshoots, but it is a staircase: on a smooth field the step itself
becomes a false feature. Measured on a smooth 3-D field sampled at 0.60,
the nearest-neighbour reconstruction leaves a residual of 0.975 units
where the sensor noise is only 0.15 — 6.5 times the noise, and none of
it is noise.
"linear"
barycentric interpolation on a Delaunay triangulation. Never exceeds the
surrounding samples, and is undefined outside their convex hull.
"rbf"
a thin-plate radial basis function through every sample. Smooth and
defined everywhere, but it overshoots its own nodes: measured on the
same field it returns peaks 1.372 times the sampled height, which is a
37 % over-statement of a hot spot that no interpolation of the data can
justify.
The point of the outside return value. Sensors sit inside a room, a site, a country; the corners are always outside their hull. Ask a linear interpolator there and it returns fill_value, or, if a caller quietly falls back to nearest, it returns a different method's answer under the first method's name. Measured on a 12 x 8.4 x 3.0 m room sampled at 1.20 m spacing, 71.2 % of the evaluation grid lay outside the hull. A number that large has to be visible, so it is returned rather than logged.
points : (n, d) array_like
Sample coordinates. 1-D input is accepted and treated as (n, 1).
values : (n,) array_like
query : (m, d) or (..., d) array_like
Where to evaluate. The leading shape is preserved in the result.
method : {"linear", "nearest", "rbf"}
fill_value : float
Returned outside the convex hull for "linear". "nearest" and
"rbf" are defined everywhere and ignore it.
rescale : bool
Normalise each axis before triangulating. Needed when the axes have very
different units (metres against millimetres); ignored by "rbf".
neighbors : int or None
"rbf" only: solve against the *k* nearest samples instead of all of
them. The global solve is O(n^3); measured on 5000 query points in 3-D,
it costs 0.55 / 1.76 / 7.53 s at 1400 / 4000 / 8000 samples, while
neighbors=48 costs 0.38 / 0.55 / 0.81 s. Below a few thousand
samples the global solve is fine and exact — the knob earns its place
above that. None keeps the exact global solution.
dict
value (query shape), outside (bool mask, query shape, of query
points beyond the convex hull of the samples), outside_fraction,
method, n_points.
Fail-closed: fewer samples than d + 1 cannot define a simplex, and raises ValueError rather than returning a field made of fill_value.
interp_linear : the sorted 1-D case, which is cheaper and needs no hull.
mathops 的每个算子都先校验输入再计算(不让任何东西无声通过):
• complex 输入一律 ValueError —— 强制转成 float64 会无声丢掉虚部(numpy 只发一个 ComplexWarning,然后返回一个「看着合理却是错的」实数)。请显式写出 .real/.imag/abs(),或改用支持复数的 complexops。
• 含被掩元素的 masked array 一律 ValueError —— 拒绝「剥掉掩码直接使用下面原值」的隐式转换。请显式选择填充还是丢弃。
• 所有输入中的 NaN/Inf 一律 ValueError(明确给出个数后拒绝 —— 它会污染整个结果)。
• 形状严格:不对 1-D 与 2-D 做隐式提升或广播(向量槽位收到矩阵、矩阵槽位收到向量都是 ValueError;请显式 reshape)。
• 尺寸上限:接受矩阵的算子与 stat_histogram 的 bins,超过 mathops.MAX_ELEMENTS(2^26 ≈ 6700 万个元素)即 ValueError。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• poc_datacenter_thermal_field — py -3.11 examples/poc_datacenter_thermal_field.py
• poc_multibeam_bathymetry — py -3.11 examples/poc_multibeam_bathymetry.py
• poc_stockpile_volume — py -3.11 examples/poc_stockpile_volume.py
table 作为输入)dynsys_poincare_section · dwt_inverse · chebyshev_eval_nd
interp_poly)interp_linear · interp_cubic · poly_fit · poly_eval · poly_roots
*Provenance: mathops.py — MATH 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.