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")
class PopsizeRecorder(aegis_sim.recording.recorder.Recorder):
 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")
PopsizeRecorder(odir)
7    def __init__(self, odir):
8        self.odir = odir
odir
def write(self, popsize: int, filename: str):
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")
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