xrspatial.terrain.generate_terrain#
- xrspatial.terrain.generate_terrain(agg: DataArray, x_range: tuple = (0, 500), y_range: tuple = (0, 500), seed: int = 10, zfactor: int = 4000, full_extent: Tuple | List | None = None, name: str = 'terrain', octaves: int | None = 16, lacunarity: float = 2.0, persistence: float = 0.5, noise_mode: str = 'fbm', warp_strength: float = 0.0, warp_octaves: int = 4, worley_blend: float = 0.0, worley_seed: int | None = None, erode: bool = False, erosion_iterations: int = 50000, erosion_params: Dict | None = None) DataArray[source]#
Generate pseudo-random terrain for testing raster functions.
- Parameters:
agg (xr.DataArray) – 2D template array (determines height, width, and backend).
x_range (tuple, default=(0, 500)) – Range of x values.
y_range (tuple, default=(0, 500)) – Range of y values.
seed (int, default=10) – Seed for random number generator.
zfactor (int, default=4000) – Multiplier for z values.
full_extent (tuple or list, optional) – bbox (xmin, ymin, xmax, ymax). Full extent of coordinate system.
name (str, default='terrain') – Name for the output DataArray.
octaves (int or None, default=16) – Number of noise octaves. None = adaptive based on raster size.
lacunarity (float, default=2.0) – Frequency multiplier per octave.
persistence (float, default=0.5) – Amplitude multiplier per octave.
noise_mode (str, default='fbm') – Noise algorithm: ‘fbm’ (fractal Brownian motion) or ‘ridged’ (ridged multifractal for sharp mountain ridges).
warp_strength (float, default=0.0) – Domain warping intensity. 0 disables warping; ~0.5 produces organic flowing features.
warp_octaves (int, default=4) – Octaves used for the warp displacement fields.
worley_blend (float, default=0.0) – Blend factor for Worley (cellular) noise. 0 = none; 0.1-0.3 adds rocky micro-texture.
worley_seed (int or None, default=None) – Seed for Worley noise. None = seed + 1000.
erode (bool, default=False) – Apply hydraulic erosion post-pass.
erosion_iterations (int, default=50000) – Number of water droplets for erosion.
erosion_params (dict, optional) – Override default erosion constants.
- Returns:
terrain – 2D array of generated terrain values.
- Return type:
xr.DataArray
References
Michael McHugh: https://www.youtube.com/watch?v=O33YV4ooHSo
Red Blob Games: https://www.redblobgames.com/maps/terrain-from-noise/