Code source de tradssat.mgrs.soil_mgr

import os

from tradssat import SoilFile
from .mgr import get_dssat_subdir


class PeriphSoilMgr(object):

    def __init__(self, soils, levels):
        self.files = {lvls: SoilMgr(sl) for sl, lvls in zip(soils, levels)}

    def get_value(self, var, level):
        return self.files[level].get_value(var)

    def set_value(self, var, val, level):
        return self.files[level].set_value(var, val)

    def variables(self):
        return list({v for f in self.files.values() for v in f.variables()})


[docs]class SoilMgr(object): def __init__(self, code): soils_dir = get_dssat_subdir('Soil') self.file = None for f in os.listdir(soils_dir): if SoilFile.matches_file(f): file = SoilFile(os.path.join(soils_dir, f)) if code in file: self.file = file self.code = code break if self.file is None: raise ValueError('No soil file found for soil "{}".'.format(code)) def get_value(self, var): return self.file.get_value(var, sect=self.code) def set_value(self, var, val): return self.file.set_value(var, val, sect=self.code) def variables(self): return self.file.variables()