aegis_sim.recording.popsizerecorder
1from .recorder import Recorder 2from aegis_sim.dataclasses.population import Population 3 4 5class PopsizeRecorder(Recorder): 6 def __init__(self, odir): 7 self.odir = odir 8 9 def write(self, popsize: int, filename: str): 10 path = self.odir / filename 11 with open(path, "a") as file_: 12 file_.write(f"{popsize}\n") 13 14 def write_before_reproduction(self, population): 15 """ 16 # OUTPUT SPECIFICATION 17 path: /popsize_before_reproduction.csv 18 filetype: csv 19 description: Number of live individuals before reproduction. 20 category: demography 21 time granularity: every step 22 frequency parameter: N/A 23 structure: A vector of integers. 24 header: None 25 """ 26 self.write(len(population), "popsize_before_reproduction.csv") 27 28 def write_after_reproduction(self, population): 29 """ 30 # OUTPUT SPECIFICATION 31 path: /popsize_after_reproduction.csv 32 filetype: csv 33 description: Number of live individuals after reproduction. 34 category: demography 35 time granularity: every step 36 frequency parameter: N/A 37 structure: A vector of integers. 38 header: None 39 """ 40 self.write(len(population), "popsize_after_reproduction.csv") 41 42 def write_egg_num_after_reproduction(self, eggs): 43 """ 44 # OUTPUT SPECIFICATION 45 path: /eggnum_after_reproduction.csv 46 filetype: csv 47 description: Number of eggs which have not yet hatched. 48 category: demography 49 time granularity: every step 50 frequency parameter: N/A 51 structure: A vector of integers. 52 header: None 53 """ 54 eggnum = len(eggs) if eggs is not None else 0 55 self.write(eggnum, "eggnum_after_reproduction.csv")
6class PopsizeRecorder(Recorder): 7 def __init__(self, odir): 8 self.odir = odir 9 10 def write(self, popsize: int, filename: str): 11 path = self.odir / filename 12 with open(path, "a") as file_: 13 file_.write(f"{popsize}\n") 14 15 def write_before_reproduction(self, population): 16 """ 17 # OUTPUT SPECIFICATION 18 path: /popsize_before_reproduction.csv 19 filetype: csv 20 description: Number of live individuals before reproduction. 21 category: demography 22 time granularity: every step 23 frequency parameter: N/A 24 structure: A vector of integers. 25 header: None 26 """ 27 self.write(len(population), "popsize_before_reproduction.csv") 28 29 def write_after_reproduction(self, population): 30 """ 31 # OUTPUT SPECIFICATION 32 path: /popsize_after_reproduction.csv 33 filetype: csv 34 description: Number of live individuals after reproduction. 35 category: demography 36 time granularity: every step 37 frequency parameter: N/A 38 structure: A vector of integers. 39 header: None 40 """ 41 self.write(len(population), "popsize_after_reproduction.csv") 42 43 def write_egg_num_after_reproduction(self, eggs): 44 """ 45 # OUTPUT SPECIFICATION 46 path: /eggnum_after_reproduction.csv 47 filetype: csv 48 description: Number of eggs which have not yet hatched. 49 category: demography 50 time granularity: every step 51 frequency parameter: N/A 52 structure: A vector of integers. 53 header: None 54 """ 55 eggnum = len(eggs) if eggs is not None else 0 56 self.write(eggnum, "eggnum_after_reproduction.csv")
def
write_before_reproduction(self, population):
15 def write_before_reproduction(self, population): 16 """ 17 # OUTPUT SPECIFICATION 18 path: /popsize_before_reproduction.csv 19 filetype: csv 20 description: Number of live individuals before reproduction. 21 category: demography 22 time granularity: every step 23 frequency parameter: N/A 24 structure: A vector of integers. 25 header: None 26 """ 27 self.write(len(population), "popsize_before_reproduction.csv")
OUTPUT SPECIFICATION
path: /popsize_before_reproduction.csv filetype: csv description: Number of live individuals before reproduction. category: demography time granularity: every step frequency parameter: N/A structure: A vector of integers. header: None
def
write_after_reproduction(self, population):
29 def write_after_reproduction(self, population): 30 """ 31 # OUTPUT SPECIFICATION 32 path: /popsize_after_reproduction.csv 33 filetype: csv 34 description: Number of live individuals after reproduction. 35 category: demography 36 time granularity: every step 37 frequency parameter: N/A 38 structure: A vector of integers. 39 header: None 40 """ 41 self.write(len(population), "popsize_after_reproduction.csv")
OUTPUT SPECIFICATION
path: /popsize_after_reproduction.csv filetype: csv description: Number of live individuals after reproduction. category: demography time granularity: every step frequency parameter: N/A structure: A vector of integers. header: None
def
write_egg_num_after_reproduction(self, eggs):
43 def write_egg_num_after_reproduction(self, eggs): 44 """ 45 # OUTPUT SPECIFICATION 46 path: /eggnum_after_reproduction.csv 47 filetype: csv 48 description: Number of eggs which have not yet hatched. 49 category: demography 50 time granularity: every step 51 frequency parameter: N/A 52 structure: A vector of integers. 53 header: None 54 """ 55 eggnum = len(eggs) if eggs is not None else 0 56 self.write(eggnum, "eggnum_after_reproduction.csv")
OUTPUT SPECIFICATION
path: /eggnum_after_reproduction.csv filetype: csv description: Number of eggs which have not yet hatched. category: demography time granularity: every step frequency parameter: N/A structure: A vector of integers. header: None