# computeStats

Function

Source: https://github.com/playcanvas/splat-transform/blob/b6424a5b3b929695fbaafe738a995adb1240d675/src/lib/stats.ts#L28

```ts
computeStats(input: DataTable | ChunkSource, pool?: ChunkDataPool): Promise<SourceStats>
```

Compute per-LOD, per-column statistics for splat data in a single streaming
pass — exact min/max/mean/stdDev/NaN/Inf, an approximate median, and a
16-bin histogram per column, in columnar form (see [SourceStats](https://api.playcanvas.com/splat-transform/types/SourceStats.md)).

Accepts either a `ChunkSource` (read chunk-by-chunk, constant memory) or a
legacy `DataTable` (bridged transiently; yields a single LOD). Values are the
raw, unbaked values — any pending transform is not applied.

**Parameters**

- `input` ([`DataTable`](https://api.playcanvas.com/splat-transform/classes/DataTable.md) `|` [`ChunkSource`](https://api.playcanvas.com/splat-transform/interfaces/ChunkSource.md)): The source or table to analyze (left unchanged).
- `pool` ([`ChunkDataPool`](https://api.playcanvas.com/splat-transform/interfaces/ChunkDataPool.md), optional): Optional pool for the temporary read buffers; defaults to a fresh pool.

**Returns** `Promise<`[`SourceStats`](https://api.playcanvas.com/splat-transform/types/SourceStats.md)`>`: The per-LOD statistics.

**Example**

```ts
const stats = await computeStats(dataTable);
const { columns, mean } = stats.lods[0];
console.log(mean[columns.indexOf('opacity')]);
```
