# core/converters/finding.grid.converter.ts

> 19 lines of code and 3 definitions.

Tree: GovLab Patterns
Language: typescript
Layer: processing
Canonical: https://banes-lab.com/anatomy/patterns#file-patterns-core-converters-finding-grid-converter-ts
Source text: https://banes-lab.com/source/patterns/core/converters/finding.grid.converter.ts.txt

Listed in [core/converters](https://banes-lab.com/api/source/patterns/core/converters.md), after [core/converters/finding.graph.converter.ts](https://banes-lab.com/source/patterns/core/converters/finding.graph.converter.ts.md) and before [core/converters/finding.sequence.converter.ts](https://banes-lab.com/source/patterns/core/converters/finding.sequence.converter.ts.md).

## Definitions

- `gridFindings` (lexical_declaration, line 7, exported)
- `{ densestCell, densestCount, distinctCells, points }` (lexical_declaration, line 8, exported)
- `density` (lexical_declaration, line 9, exported)

## Contained in

- [core/converters](https://banes-lab.com/anatomy/patterns/folder-patterns-core-converters.md)

## Uses

- [core/converters/finding.converter.ts](https://banes-lab.com/source/patterns/core/converters/finding.converter.ts.md)

## Used by

- [core/plugins/representation.grid.plugin.ts](https://banes-lab.com/source/patterns/core/plugins/representation.grid.plugin.ts.md)

## Linked from

- [core/converters](https://banes-lab.com/anatomy/patterns/folder-patterns-core-converters.md)
- [core/plugins](https://banes-lab.com/anatomy/patterns/folder-patterns-core-plugins.md)

## Source

```typescript
import type { Finding } from "#types/finding.types";
import { GRID_STRINGS } from "#configuration/strings/representation.strings";
import type { GridSummary } from "#types/representation.types";
import { explanationFinding } from "#core/factories/finding.factory";
import { withSupport } from "#core/converters/finding.converter";

export const gridFindings = function gridFindings(field: string, summary: GridSummary): Finding[] {
    const { densestCell, densestCount, distinctCells, points } = summary;
    const density = explanationFinding({
        analysis: "space",
        explained: GRID_STRINGS.densityExplained(densestCell, String(densestCount)),
        field,
        name: "density",
        observation: { densestCell, densestCount, distinctCells, points },
        observed: GRID_STRINGS.densityObserved(String(points), String(distinctCells)),
        ontology: "space",
        representation: "geometry",
    });
    return withSupport([density], points);
};
```
