NLMrs

A Rust crate for building Neutral Landscape Models.

Inspired by nlmpy and nlmr.

Installation

bash cargo add nlmrs

Example

```rs use nlmrs;

fn main() { let arr: Vec> = nlmrs::midpoint_displacement(10, 10, 1.); println!("{:?}", arr); } ```

Export

The export module holds a collection of user-friendly functions to export your 2D NLM vector.

```rs use nlmrs::{distancegradient, export::writeto_csv};

fn main() { let arr: Vec> = distancegradient(50, 50); writeto_csv(arr, "./data/data.csv"); } ```

Algorithms

Random

random(100, 100)

Random Element

random_element(100, 100, 50000.)

Planar Gradient

planar_gradient(100, 100, Some(60.))

Edge Gradient

edge_gradient(100, 100, Some(140.))

Distance Gradient

distance_gradient(100, 100)

Wave Gradient

wave_gradient(100, 100, 2.5, Some(90.))

Midpoint Displacement

midpoint_displacement(100, 100, 1.)

Hill Grow

hill_grow(100, 100, 10000, true)

Visualization

Running script/viz.py will read any contents of data/data.csv and render them in a matplotlib plot.

Contributions

Contributions, issues and feature requests are welcome.