> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Module: computations/rasters

> Raster contracts and operations for raster-aware computations.

Raster contracts and operations for raster-aware computations.

## References

### ComputationType

Re-exports [ComputationType](https://docs.bijection.com/api/modules/computations.md#computationtype)

## Type Aliases

### ValuePortType

Ƭ **ValuePortType**: `Extract`\<[`ComputationType`](https://docs.bijection.com/api/modules/computations#computationtype), \{ `kind`: `"value"`  }>

Not exported: an exported type refers to it.

***

### CapturedValue

Ƭ **CapturedValue**: `Readonly`\<\{ `type`: [`ValuePortType`](https://docs.bijection.com/api/modules/computations_rasters#valueporttype) ; `[capturedValue]`: `true`  }>

An authoring reference, never an in-memory raster or a storage handle.

***

### Arithmetic

Ƭ **Arithmetic**: `"add"` | `"subtract"` | `"multiply"` | `"divide"` | `"remainder"`

Not exported: an exported type refers to it.

***

### DatePart

Ƭ **DatePart**: `"year"` | `"month"` | `"day"`

Not exported: an exported type refers to it.

***

### TimeBucket

Ƭ **TimeBucket**: `"minute"` | `"hour"` | `"day"` | `"week"` | `"month"` | `"quarter"` | `"year"`

Not exported: an exported type refers to it.

***

### RasterReductionMeasure

Ƭ **RasterReductionMeasure**: `"sum"` | `"mean"` | `"minimum"` | `"maximum"`

Not exported: an exported type refers to it.

***

### RasterExtent

Ƭ **RasterExtent**: `Object`

#### Type declaration

| Name | Type |
| :- | :- |
| `column` | `string` |
| `row` | `string` |
| `width` | `number` |
| `height` | `number` |

***

### RasterGrid

Ƭ **RasterGrid**: `Object`

#### Type declaration

| Name | Type | Description |
| :- | :- | :- |
| `frame` | [`CoordinateFrame`](https://docs.bijection.com/api/modules/values#coordinateframe) | - |
| `transform` | \[[`Finite`](https://docs.bijection.com/api/modules/server#finite), [`Finite`](https://docs.bijection.com/api/modules/server#finite), [`Finite`](https://docs.bijection.com/api/modules/server#finite), [`Finite`](https://docs.bijection.com/api/modules/server#finite), [`Finite`](https://docs.bijection.com/api/modules/server#finite), [`Finite`](https://docs.bijection.com/api/modules/server#finite)] | The infinite pixel lattice, independent of its selected integer extent: x=a*column+b*row+c; y=d*column+e*row+f at pixel corners. |
| `extent` | [`RasterExtent`](https://docs.bijection.com/api/modules/computations_rasters#rasterextent) | - |

***

### RasterBand

Ƭ **RasterBand**: `Object`

#### Type declaration

| Name | Type | Description |
| :- | :- | :- |
| `name` | `string` | - |
| `unit` | `string` \| `null` | An explicit measurement label; absence carries no unit assertion. |

***

### RasterType

Ƭ **RasterType**: `Object`

#### Type declaration

| Name | Type |
| :- | :- |
| `frame` | [`CoordinateFrame`](https://docs.bijection.com/api/modules/values#coordinateframe) |
| `bands` | [`RasterBand`](https://docs.bijection.com/api/modules/computations_rasters#rasterband)\[] |

***

### RasterResampling

Ƭ **RasterResampling**: `"nearest"` | `"bilinear"` | `"cubic"` | `"average"`

***

### RasterMosaic

Ƭ **RasterMosaic**: `"first"` | `"last"` | `"mean"` | `"sum"`

***

### RasterInclusion

Ƭ **RasterInclusion**: `"center"` | `"all_touched"`

***

### RasterOperation

Ƭ **RasterOperation**: \{ `kind`: `"select_bands"` ; `bands`: `string`\[]  } | \{ `kind`: `"window"` ; `extent`: [`RasterExtent`](https://docs.bijection.com/api/modules/computations_rasters#rasterextent)  } | \{ `kind`: `"resample"` ; `grid`: [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid) ; `resampling`: [`RasterResampling`](https://docs.bijection.com/api/modules/computations_rasters#rasterresampling)  } | \{ `kind`: `"mosaic"` ; `precedence`: [`RasterMosaic`](https://docs.bijection.com/api/modules/computations_rasters#rastermosaic)  } | \{ `kind`: `"map"` ; `inputs`: `string`\[] ; `expression`: [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar) ; `band`: [`RasterBand`](https://docs.bijection.com/api/modules/computations_rasters#rasterband)  } | \{ `kind`: `"mask"` ; `inclusion`: [`RasterInclusion`](https://docs.bijection.com/api/modules/computations_rasters#rasterinclusion)  } | \{ `kind`: `"cells"`  } | \{ `kind`: `"zonal_statistics"` ; `inclusion`: [`RasterInclusion`](https://docs.bijection.com/api/modules/computations_rasters#rasterinclusion) ; `measures`: [`RasterReductionMeasure`](https://docs.bijection.com/api/modules/computations_rasters#rasterreductionmeasure)\[]  }

***

### RasterAnalysis

Ƭ **RasterAnalysis**: `Object`

#### Type declaration

| Name | Type | Description |
| :- | :- | :- |
| `operation` | [`RasterOperation`](https://docs.bijection.com/api/modules/computations_rasters#rasteroperation-2) | - |
| `inputs` | [`ComputationType`](https://docs.bijection.com/api/modules/computations#computationtype)\[] | - |
| `output` | [`ComputationType`](https://docs.bijection.com/api/modules/computations#computationtype) | - |
| `scalar` | [`AnalyzedRelation`](https://docs.bijection.com/api/modules/server#analyzedrelation) \| `null` | The ordinary analyzed row program for a pointwise map. Captured computation, binding and attempt owners retain all identities. |

***

### RasterBinding

Ƭ **RasterBinding**: `Object`

#### Type declaration

| Name | Type |
| :- | :- |
| `analysis` | [`RasterAnalysis`](https://docs.bijection.com/api/modules/computations_rasters#rasteranalysis) |
| `input_grids` | ([`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid) \| `null`)\[] |
| `output_grid` | [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid) \| `null` |

***

### NativeOperation

Ƭ **NativeOperation**: \{ `kind`: `"compare"` ; `operation`: [`ScalarOperation`](https://docs.bijection.com/api/modules/computations_rasters#scalaroperation)  } | \{ `kind`: `"arithmetic"` ; `operation`: [`Arithmetic`](https://docs.bijection.com/api/modules/computations_rasters#arithmetic)  } | \{ `kind`: `"negate"`  } | \{ `kind`: `"membership"`  } | \{ `kind`: `"require_boolean"`  } | \{ `kind`: `"require_present"`  } | \{ `kind`: `"is_true"`  } | \{ `kind`: `"like"` ; `pattern`: `string`  } | \{ `kind`: `"date_part"` ; `part`: [`DatePart`](https://docs.bijection.com/api/modules/computations_rasters#datepart)  } | \{ `kind`: `"bucket"` ; `unit`: [`TimeBucket`](https://docs.bijection.com/api/modules/computations_rasters#timebucket)  } | \{ `kind`: `"mean_change"`  } | \{ `kind`: `"array_contains"`  } | \{ `kind`: `"array_length"`  } | \{ `kind`: `"geometry"` ; `operation`: [`GeometryOperation`](https://docs.bijection.com/api/modules/server#geometryoperation) ; `space`: [`GeometrySpace`](https://docs.bijection.com/api/modules/apps#geometryspace)  } | \{ `kind`: `"spatial"` ; `operation`: [`SpatialOperation`](https://docs.bijection.com/api/modules/server#spatialoperation) ; `space`: [`GeometrySpace`](https://docs.bijection.com/api/modules/apps#geometryspace)  }

Not exported: an exported type refers to it.

***

### NormalizedScalar

Ƭ **NormalizedScalar**: \{ `kind`: `"clock"` ; `every_ms`: `number`  } | \{ `kind`: `"array"` ; `operation`: [`ArrayOperation`](https://docs.bijection.com/api/modules/computations_rasters#arrayoperation) ; `input`: [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar) ; `body`: [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar) ; `initial`: [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar) | `null`  } | \{ `kind`: `"array_binding"` ; `depth`: `number` ; `binding`: [`ArrayBinding`](https://docs.bijection.com/api/modules/computations_rasters#arraybinding) ; `path`: `string`\[]  } | \{ `kind`: `"field"` ; `path`: `string`\[]  } | \{ `kind`: `"outer_field"` ; `depth`: `number` ; `path`: `string`\[]  } | \{ `kind`: `"local"` ; `name`: `string`  } | \{ `kind`: `"outer_local"` ; `depth`: `number` ; `name`: `string`  } | \{ `kind`: `"argument"` ; `name`: `string`  } | \{ `kind`: `"literal"` ; `value`: [`LiteralValue`](https://docs.bijection.com/api/modules/computations_rasters#literalvalue)  } | \{ `kind`: `"apply"` ; `operation`: [`ScalarOperation`](https://docs.bijection.com/api/modules/computations_rasters#scalaroperation) ; `arguments`: [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar)\[]  } | \{ `kind`: `"native"` ; `operation`: [`NativeOperation`](https://docs.bijection.com/api/modules/computations_rasters#nativeoperation) ; `arguments`: [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar)\[]  } | \{ `kind`: `"case"` ; `branches`: [`NormalizedBranch`](https://docs.bijection.com/api/modules/computations_rasters#normalizedbranch)\[] ; `otherwise`: [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar)  } | \{ `kind`: `"membership"` ; `value`: [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar) ; `members`: [`LiteralValue`](https://docs.bijection.com/api/modules/computations_rasters#literalvalue)\[]  } | \{ `kind`: `"timestamp"` ; `operation`: [`TimestampOperation`](https://docs.bijection.com/api/modules/computations_rasters#timestampoperation) ; `value`: [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar)  } | \{ `kind`: `"read"` ; `port`: `string` ; `arguments`: \{ \[key in string]?: NormalizedScalar }  }

Not exported: an exported type refers to it.

***

### NormalizedBranch

Ƭ **NormalizedBranch**: `Object`

Not exported: an exported type refers to it.

#### Type declaration

| Name | Type |
| :- | :- |
| `condition` | [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar) |
| `value` | [`NormalizedScalar`](https://docs.bijection.com/api/modules/computations_rasters#normalizedscalar) |

***

### DecimalDomain

Ƭ **DecimalDomain**: `Object`

Not exported: an exported type refers to it.

#### Type declaration

| Name | Type |
| :- | :- |
| `precision` | `number` |
| `scale` | `number` |

***

### LiteralValue

Ƭ **LiteralValue**: \{ `kind`: `"missing"`  } | \{ `kind`: `"null"`  } | \{ `kind`: `"integer"` ; `value`: `string`  } | \{ `kind`: `"float"` ; `value`: `string`  } | \{ `kind`: `"boolean"` ; `value`: `boolean`  } | \{ `kind`: `"text"` ; `value`: `string`  } | \{ `kind`: `"reference"` ; `value`: \{ `table`: `string` ; `id`: `string`  }  } | \{ `kind`: `"bytes"` ; `value`: `string`  } | \{ `kind`: `"geometry"` ; `value`: \{ `space`: [`GeometrySpace`](https://docs.bijection.com/api/modules/apps#geometryspace) ; `wkb`: `string`  }  } | \{ `kind`: `"position"` ; `value`: \{ `space`: [`GeometrySpace`](https://docs.bijection.com/api/modules/apps#geometryspace) ; `point_wkb`: `string` ; `accuracy_m`: `string` | `null`  }  } | \{ `kind`: `"list"` ; `value`: [`LiteralValue`](https://docs.bijection.com/api/modules/computations_rasters#literalvalue)\[]  } | \{ `kind`: `"object"` ; `value`: \{ \[key in string]?: LiteralValue }  } | \{ `kind`: `"decimal"` ; `value`: \{ `text`: `string` ; `domain`: [`DecimalDomain`](https://docs.bijection.com/api/modules/computations_rasters#decimaldomain)  }  } | \{ `kind`: `"date"` ; `value`: `string`  } | \{ `kind`: `"timestamp"` ; `value`: `string`  }

Not exported: an exported type refers to it.

***

### ScalarOperation

Ƭ **ScalarOperation**: `"struct"` | `"struct_update"` | `"split"` | `"parse_json"` | `"try_parse_json"` | `"regex_matches"` | `"regex_extract"` | `"regex_replace"` | `"json_at"` | `"try_json_at"` | `"json_keys"` | `"json_array_length"` | \{ `cast`: \{ `target`: [`CastTarget`](https://docs.bijection.com/api/modules/server#casttarget) ; `on_invalid`: [`InvalidValue`](https://docs.bijection.com/api/modules/computations_rasters#invalidvalue)  }  } | `"equal"` | `"not_equal"` | `"less"` | `"less_equal"` | `"greater"` | `"greater_equal"` | `"add"` | `"subtract"` | `"multiply"` | `"divide"` | `"remainder"` | `"negate"` | `"and"` | `"or"` | `"not"` | `"coalesce"` | `"is_null"` | `"is_missing"` | `"least"` | `"greatest"` | `"trim"` | `"trim_left"` | `"trim_right"` | `"lower"` | `"upper"` | `"length"` | `"concat"` | `"substring"` | `"replace"` | `"array"` | `"array_length"` | `"array_at"` | `"array_contains"` | `"array_concat"` | `"array_slice"` | `"array_reverse"` | `"year"` | `"month"` | `"day"` | `"add_days"` | `"add_micros"` | `"difference_days"`

Not exported: an exported type refers to it.

***

### ArrayOperation

Ƭ **ArrayOperation**: `"map"` | `"filter"` | `"reduce"`

Not exported: an exported type refers to it.

***

### ArrayBinding

Ƭ **ArrayBinding**: `"element"` | `"index"` | `"accumulator"`

Not exported: an exported type refers to it.

***

### TimestampToken

Ƭ **TimestampToken**: \{ `kind`: `"literal"` ; `text`: `string`  } | \{ `kind`: `"year"`  } | \{ `kind`: `"month"`  } | \{ `kind`: `"day"`  } | \{ `kind`: `"hour"`  } | \{ `kind`: `"minute"`  } | \{ `kind`: `"second"`  } | \{ `kind`: `"fraction"` ; `digits`: [`FractionDigits`](https://docs.bijection.com/api/modules/computations_rasters#fractiondigits)  } | \{ `kind`: `"offset"` ; `precision`: [`OffsetPrecision`](https://docs.bijection.com/api/modules/server#offsetprecision)  }

Not exported: an exported type refers to it.

***

### FractionDigits

Ƭ **FractionDigits**: `number`

Not exported: an exported type refers to it.

***

### TimestampFidelity

Ƭ **TimestampFidelity**: `"exact"` | `"display"`

Not exported: an exported type refers to it.

***

### TimestampOperation

Ƭ **TimestampOperation**: \{ `kind`: `"parse"` ; `tokens`: [`TimestampToken`](https://docs.bijection.com/api/modules/computations_rasters#timestamptoken)\[] ; `timezone`: `string` | `null` ; `on_invalid`: [`InvalidValue`](https://docs.bijection.com/api/modules/computations_rasters#invalidvalue)  } | \{ `kind`: `"format"` ; `tokens`: [`TimestampToken`](https://docs.bijection.com/api/modules/computations_rasters#timestamptoken)\[] ; `timezone`: `string` ; `fidelity`: [`TimestampFidelity`](https://docs.bijection.com/api/modules/computations_rasters#timestampfidelity)  } | \{ `kind`: `"to_date"` ; `timezone`: `string`  }

Not exported: an exported type refers to it.

***

### InvalidValue

Ƭ **InvalidValue**: `"error"` | `"null"`

Not exported: an exported type refers to it.

## Functions

### rasterOperation

▸ **rasterOperation**(`operation`, `...inputs`): [`CapturedValue`](https://docs.bijection.com/api/modules/computations_rasters#capturedvalue)

#### Parameters

| Name | Type |
| :- | :- |
| `operation` | [`RasterOperation`](https://docs.bijection.com/api/modules/computations_rasters#rasteroperation-2) |
| `...inputs` | [`CapturedValue`](https://docs.bijection.com/api/modules/computations_rasters#capturedvalue)\[] |

#### Returns

[`CapturedValue`](https://docs.bijection.com/api/modules/computations_rasters#capturedvalue)

***

### mapRaster

▸ **mapRaster**\<`Inputs`>(`inputs`, `expression`, `band`): [`CapturedValue`](https://docs.bijection.com/api/modules/computations_rasters#capturedvalue)

#### Type parameters

| Name | Type |
| :- | :- |
| `Inputs` | extends `Record`\<`string`, [`CapturedValue`](https://docs.bijection.com/api/modules/computations_rasters#capturedvalue)> |

#### Parameters

| Name | Type |
| :- | :- |
| `inputs` | `Inputs` |
| `expression` | (`cells`: \{ \[Name in keyof Inputs]: Record\<string, Scalar\<number \| null>> }) => [`ExpressionOrValue`](https://docs.bijection.com/api/modules/server#expressionorvalue)\<`number` \| `null`> |
| `band` | [`RasterBand`](https://docs.bijection.com/api/modules/computations_rasters#rasterband) |

#### Returns

[`CapturedValue`](https://docs.bijection.com/api/modules/computations_rasters#capturedvalue)

***

### rasterType

▸ **rasterType**(`frame`, `bands`, `presence?`): [`ComputationType`](https://docs.bijection.com/api/modules/computations#computationtype)

#### Parameters

| Name | Type |
| :- | :- |
| `frame` | [`CoordinateFrame`](https://docs.bijection.com/api/modules/values#coordinateframe) |
| `bands` | [`RasterBand`](https://docs.bijection.com/api/modules/computations_rasters#rasterband)\[] |
| `presence` | `Object` |
| `presence.nullable?` | `boolean` |
| `presence.optional?` | `boolean` |

#### Returns

[`ComputationType`](https://docs.bijection.com/api/modules/computations#computationtype)

***

### validateRasterGrid

▸ **validateRasterGrid**(`grid`): [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid)

#### Parameters

| Name | Type |
| :- | :- |
| `grid` | [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid) |

#### Returns

[`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid)

***

### rasterPhysicalTransform

▸ **rasterPhysicalTransform**(`grid`): [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid)\[`"transform"`]

#### Parameters

| Name | Type |
| :- | :- |
| `grid` | [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid) |

#### Returns

[`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid)\[`"transform"`]

***

### alignedRasterGrids

▸ **alignedRasterGrids**(`left`, `right`): `boolean`

#### Parameters

| Name | Type |
| :- | :- |
| `left` | [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid) |
| `right` | [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid) |

#### Returns

`boolean`

***

### windowRasterGrid

▸ **windowRasterGrid**(`grid`, `extent`): [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid)

#### Parameters

| Name | Type |
| :- | :- |
| `grid` | [`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid) |
| `extent` | [`RasterExtent`](https://docs.bijection.com/api/modules/computations_rasters#rasterextent) |

#### Returns

[`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid)

***

### analyzeRaster

▸ **analyzeRaster**(`operator`, `inputs`): [`RasterAnalysis`](https://docs.bijection.com/api/modules/computations_rasters#rasteranalysis)

#### Parameters

| Name | Type |
| :- | :- |
| `operator` | [`RasterOperation`](https://docs.bijection.com/api/modules/computations_rasters#rasteroperation-2) |
| `inputs` | [`ComputationType`](https://docs.bijection.com/api/modules/computations#computationtype)\[] |

#### Returns

[`RasterAnalysis`](https://docs.bijection.com/api/modules/computations_rasters#rasteranalysis)

***

### bindRaster

▸ **bindRaster**(`operator`, `inputTypes`, `inputGrids`): [`RasterBinding`](https://docs.bijection.com/api/modules/computations_rasters#rasterbinding)

#### Parameters

| Name | Type |
| :- | :- |
| `operator` | [`RasterOperation`](https://docs.bijection.com/api/modules/computations_rasters#rasteroperation-2) |
| `inputTypes` | [`ComputationType`](https://docs.bijection.com/api/modules/computations#computationtype)\[] |
| `inputGrids` | ([`RasterGrid`](https://docs.bijection.com/api/modules/computations_rasters#rastergrid) \| `null`)\[] |

#### Returns

[`RasterBinding`](https://docs.bijection.com/api/modules/computations_rasters#rasterbinding)

***

### analyzeRasterMap

▸ **analyzeRasterMap**\<`Inputs`>(`inputs`, `expression`, `band`): [`RasterAnalysis`](https://docs.bijection.com/api/modules/computations_rasters#rasteranalysis)

`expression` uses the ordinary q fields, arithmetic, case and null rules.

#### Type parameters

| Name | Type |
| :- | :- |
| `Inputs` | extends `Record`\<`string`, [`ComputationType`](https://docs.bijection.com/api/modules/computations#computationtype)> |

#### Parameters

| Name | Type |
| :- | :- |
| `inputs` | `Inputs` |
| `expression` | (`cells`: \{ \[Name in keyof Inputs]: Record\<string, Scalar\<number \| null>> }) => [`ExpressionOrValue`](https://docs.bijection.com/api/modules/server#expressionorvalue)\<`number` \| `null`> |
| `band` | [`RasterBand`](https://docs.bijection.com/api/modules/computations_rasters#rasterband) |

#### Returns

[`RasterAnalysis`](https://docs.bijection.com/api/modules/computations_rasters#rasteranalysis)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.