[R] grid with random or clustered distribution

Sarah Goslee sarah.goslee at gmail.com
Wed Sep 9 15:11:28 CEST 2015


You can use gstat, as in:
https://www.researchgate.net/publication/43279659_Behavior_of_Vegetation_Sampling_Methods_in_the_Presence_of_Spatial_Autocorrelation

If you need more detail, I can dig up the code.

Sarah

On Wed, Sep 9, 2015 at 8:49 AM, SH <emptican at gmail.com> wrote:
> Hi R-users,
>
> I hope this is not redundant questions.  I tried to search similar threads
> relevant to my questions but could not find.  Any input would be greatly
> appreciated.
>
> I want to generate grid with binary values (1 or 0) in n1 by n2 (e.g., 100
> by 100 or 200 by 500, etc.) given proportions of 1 and 0 values (e.g., 1,
> 5, or 10% of 1 from 100 by 100 grid).  For clustered distributed grid, I
> hope to be able to define cluster size if possible.  Is there a simple way
> to generate random/clustered grids with 1 and 0 values with a
> pre-defined proportion?
>
> So far, the function "EVariogram" in the "CompRandFld" package generates
> clustered grid with 1 and 0.  Especially, the example #4 in the
> "EVariogram" function description is a kind of what I want. Below is the
> slightly modified code from the original one.  However, the code below
> can't control proportion of 1 and 0 values and complicated or I have no
> idea how to do it.  I believe there may be easies ways to
> generate random/clustered grids with proportional 1 and 0 values.
>
> Thank you very much in advance,
>
> Steve
>
>
> library(CompRandFld)
> library(RandomFields)
>
> x0 <- seq(1, 50, length.out=50)
> y0 <- seq(1, 60, length.out=60)
> d <- expand.grid(x=x0, y=y0)
> dim(d)
> head(d)
> x <- d$x
> y <- d$y
> # Set the model's parameters:
> corrmodel <- 'exponential'
> mean <- 0
> sill <- 1
> nugget <- 0
> scale <- 3
> set.seed(1221)
> # Simulation of the Binary-Gaussian random field:
> data <- RFsim(x, y, corrmodel="exponential", model="BinaryGauss",
>               param=list(mean=mean,sill=sill,scale=scale,nugget=nugget),
>               threshold=0)$data
> # Empirical lorelogram estimation:
> fit <- EVariogram(data, x, y, numbins=20, maxdist=7, type="lorelogram")
> # Results:
> plot(fit$centers, fit$variograms, xlab='Distance', ylab="Lorelogram",
>      ylim=c(min(fit$variograms), max(fit$variograms)),
>      xlim=c(0, max(fit$centers)), pch=20, main="Spatial Lorelogram")
> # Plotting
> plot(d, type='n')
> text(d, label=data)
>


-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list