https://github.com/pecormiernocca/authoring-consistent-landscapes
Raw File
Tip revision: 26fecbe9cf80fa54a1a82c7b57a763d413c45dcd authored by Pierre Ecormier-Nocca on 05 September 2021, 06:55:44 UTC
Merge pull request #1 from jiangzhongshi/patch-1
Tip revision: 26fecbe
flora.py
import matplotlib.pyplot as plt
import matplotlib.colors as mcols
import numpy as np
import skimage
import time
import sys
import pathlib

sys.path.append("./lib")
import ecosys_param
import geology
import ecosys
import utils

utils.benchStart("Loading data")

sol = "J"
resource_path = "resources/tautavel_%s/" % sol
pathlib.Path(resource_path + "flora").mkdir(parents=True, exist_ok=True)

# load exposure
illum  = skimage.io.imread(resource_path + '../raw/illum-0.tif') + np.zeros(12)[:, np.newaxis, np.newaxis]
for i in range(1, 12):
    illum[i] = skimage.io.imread(resource_path + '../raw/illum-' + str(i) + '.tif')

# load temperature
temp0 = skimage.io.imread(resource_path + '../raw/temp.tif') + ecosys_param.offset_temperature

# load drainage
drain = np.log(skimage.io.imread(resource_path + '../raw/water.tif')) + ecosys_param.offset_ground_humidity

# load geology
geol = geology.load(resource_path + "../raw/soil.png", colors = ecosys_param.geologie_colors)

monthly_temp = ecosys.convert(temp0 + ecosys_param.monthly_avg_temp[:, np.newaxis, np.newaxis],
                              ecosys_param.calibration_temperature[0],
                              ecosys_param.calibration_temperature[1])
monthly_drain = ecosys.convert(drain + np.log(ecosys_param.monthly_precip)[:, np.newaxis, np.newaxis],
                               ecosys_param.calibration_ground_humidity[0],
                               ecosys_param.calibration_ground_humidity[1])
monthly_illum = ecosys.convert(illum,
                               ecosys_param.calibration_illum[0],
                               ecosys_param.calibration_illum[1])

conditions  = {'illum' : monthly_illum, 'temp' : monthly_temp, 'moisture' : monthly_drain}
utils.benchEnd()

utils.benchStart("Running competition")
plnts = ecosys.plant_compet(ecosys_param.plants, conditions, geol)
utils.benchEnd()

utils.benchStart("Exporting")
for i in range(plnts.shape[0]):
    plnt = plnts[i]
    skimage.io.imsave(resource_path + 'flora/plant-' + str(i) + '.tif', plnt.astype(np.float16))
utils.benchEnd()

back to top