griddata {cooltools} | R Documentation |

## Distribute a point set onto a regular grid

### Description

Distributes a set of points in D dimensions onto a regular, D-dimensional grid, using a fast nearest neighbor algorithm. Weights can be used optionally.

### Usage

```
griddata(x, w = NULL, n = 10, min = NULL, max = NULL, type = "counts")
```

### Arguments

`x` |
N-element vector (if D=1) or N-by-D matrix (if D>1), giving the Cartesian coordinates of N points in D dimensions. |

`w` |
optional N-element vector with weights. |

`n` |
scalar or D-element vector specifying the number of equally space grid cells along each dimension. |

`min` |
optional scalar or D-element vector specifying the lower bound of the grid. If not given, min is adjusted to the range of x. |

`max` |
optional scalar or D-element vector specifying the upper bound of the grid. If not given, max is adjusted to the range of x. |

`type` |
character string ("counts", "density", "probability") specifying the normalization of the output: "counts" (default) returns the number of points (multiplied by their weights, if given) in each cell; thus the total number of points (or total mass, if weights are given) is |

### Value

Returns a list of items

`field` |
D-dimensional array representing the value in each grid cell. See parameter |

`grid` |
List of D elements with the grid properties along each dimension. n: number of grid cells; mid: n-vector of mid-cell coordinates; breaks: (n+1)-vector of cell edges; lim: 2-vector of considered range; delta: cell width. |

`dV` |
Single number representing the volume of the D-dimensional grid cells. |

### Author(s)

Danail Obreschkow

### Examples

```
# Distribute 1-dimensional data onto a regular grid
npoints = 1e4
x = rnorm(npoints)
g = griddata(x,min=-3,max=3,n=100,type='probability')
curve(dnorm(x),-3,3)
points(g$grid$mid,g$field,pch=16)
# Distribute 2-dimensional data onto a regular grid
x = runif(100,max=2)
y = runif(100)
g = griddata(cbind(x,y),min=c(0,0),max=c(2,1),n=c(20,10))
image(g$grid[[1]]$breaks,g$grid[[2]]$breaks,g$field,
asp=1,col=grey.colors(100,0,1),xlab='x',ylab='y')
points(x,y,col='red',pch=16)
# ... same with weights
w = runif(100)
g = griddata(cbind(x,y),w,min=c(0,0),max=c(2,1),n=c(20,10))
image(g$grid[[1]]$breaks,g$grid[[2]]$breaks,g$field,
asp=1,col=grey.colors(100,0,1),xlab='x',ylab='y')
points(x,y,col='red',pch=16,cex=w)
```

*cooltools*version 2.4 Index]