#--------------------------- # Field generator module # PabloVD # Started: 11/5/20 #--------------------------- import numpy as np from scipy import interpolate, ndimage from source.fields import gaussian_field, perlin_field, warped_perlin_field, brownian_surface, cos_field # Filter the field with a gaussian window def smooth_field(field,sigmagauss,gridsize=None): if gridsize==None: gridsize=field.shape[0] x, y = np.linspace(0,field.shape[0],num=field.shape[0]), np.linspace(0,field.shape[1],num=field.shape[1]) # Interpolation f = interpolate.interp2d(x,y,field,kind="linear") qx = np.linspace(x[0],x[-1], num = gridsize) qy = np.linspace(y[0],y[-1], num = gridsize) # Filtering smooth = ndimage.filters.gaussian_filter(f(qx,qy),sigmagauss) return smooth # Remove regions below sea level def mainland(field,threshold): for i, row in enumerate(field): for j, el in enumerate(row): if el