Synthetic LandScape Generation

While working on synthetic landscape generation or neutral landscape generation, it it interesting to try out different randomizing and clustering algorithms. The ones included here were part of the same experiments. The outputs are generally preceded by a header so that the ASCII files can be read easily in a GIS software such as ArcMap. The output file is ASCII type since this is commonly accepted by multiple tools. The number of rows and columns can be changed as can the no data value which for now is set to a 16 bit signed integer output. There are codes included to generate a video using landscapes as frames within the output file. Further work can include the nlmpy module

Table of contents


We assume that the user already has a copy of Matlab and has installed necessary libraries in python such as nlmpy and numpy+mlk and scipy. The toolbox can be modified to accomodate varying sizes of images to be produced and varying number of classes. The codes are mostly written in matlab and some implementation in NlmPy produced by Etherington et al are included as well.


Each folder has a variety of packages and tools available to run different kinds of analysis. Tools and methods include and are not limited to the following

Clumped matrix algorithms

This allows for clumping to occur in random matrix algorithms such that there is an element of non random allocation of class

filename Description
clumped_randi_land.m clumping algorithm applied to Uniformly distributed pseudorandom integers
clumped_sprand_land clumping algorithm applied to Sparse uniformly distributed random matrix

Fragmentation Aggregation Algorithms

This one is more specific looking at different fragmentation and aggregation algorithms and allows the user to set convergence time for solution.It includes Gibbs model and Metropolis-Hastings algorithm.

NlmPy applications

NlmPy was created as a python library which allows the user to user different algorithms Etherington et al. The output files as ASCII to allow for easy read.

Noise Function Terrain Generation

These Matlab functions allows you to test noise functions to generate artificial terrains using noise function executables.Source codes for the c++ noise functions files are included in the adjoining folder and were provided kindly by Travis Archer for open use.The codes create a bmp output which are then modified to create binned responses and landscape classes as needed. Noise types include * Cell Noise * Diamond Square * Erosion * Midpoint Displacement * Perline Noise * Simplex Noise * Value Noise

Random matrix algorithms

This uses the random matrix functions within matlab to extract different landscape types. Once again they are exported as ASCII.

filename Description
randi_land.m Uniformly distributed pseudorandom integers
sprand_land.m Sparse uniformly distributed random matrix
rand_land.m Uniformly distributed random numbers
rng_seed_land Random Seed Generation with Random Number Generator

Random matrix to video

These are experiments within matlab to use the landscapes generated as frames in a video output file from the landscapes. The video output is generally in avi format and includes slices of the landscapes produced.


I would like to thank Dr. Scott Robeson my mentor among others who got me interested in some topics on Landscape ecology.