示例#1
0
    def run_julia(self):
        print("Loading Julia....")

        I = np.genfromtxt(self.us_exchanges_filename, delimiter=" ")
        age_fracs_with_name = np.genfromtxt(self.age_fracs_filename,
                                            delimiter=",")
        age_fracs = np.delete(age_fracs_with_name, 0, 1)

        employed = pd.read_csv(self.employment_filename,
                               dtype={
                                   "Sector": str,
                                   "Feb": np.int64
                               })

        j.eval("using DataFrames")
        julia_formatted_employed = j.DataFrame(employed.to_dict(orient='list'))

        print("Starting Julia run...")
        j.include("CASES.jl")
        returned_result = j.main(I, age_fracs, julia_formatted_employed)
        print("Julia run complete.")

        cases_2 = returned_result[1]
        pickle.dump(cases_2,
                    open(self.employment_filename + "_cases_2.bin", "wb"))

        cases_1 = returned_result[0]
        pickle.dump(cases_1,
                    open(self.employment_filename + "_cases_1.bin", "wb"))
        self.results.append(cases_1)
        self.results.append(cases_2)
示例#2
0
    def run_julia(self):
        print("Loading Julia....")
        from julia.api import Julia
        jl = Julia(compiled_modules=False)
        from julia import Main as j

        I = np.genfromtxt(self.us_exchanges_filename, delimiter=" ")
        age_fracs_orig = np.genfromtxt(self.age_fracs_filename, delimiter=",")
        # first column is
        age_fracs = np.delete(age_fracs_orig, 0, 1)

        employed = pd.read_csv(self.employment_filename,
                               dtype={
                                   "Sector": str,
                                   "Feb": np.int64
                               })
        print(
            f"Employed dataframe from {self.employment_filename}:\n {employed}"
        )

        # if np.isnan(I).any() or np.isnan(age_fracs).any() or np.isnan(employed).any():
        if np.isnan(I).any():
            raise ValueError(
                f"NAN found in US_EXCHANGES file {self.us_exchanges_filename}; skipping"
            )

        if np.isnan(age_fracs).any():
            raise ValueError(
                f"NAN found in age_fracs file {self.age_fracs_filename}; skipping"
            )

        j.eval("using DataFrames")
        julia_formatted_employed = j.DataFrame(employed.to_dict(orient='list'))

        if employed.isnull().values.any():
            raise ValueError(
                f"NAN found in employment data {self.employment_filename}; skipping"
            )

        print(f"Starting Julia run for SES {self.employment_filename}...")
        j.include("CASES.jl")
        returned_result = j.main(I, age_fracs, julia_formatted_employed,
                                 self.employment_percentage)
        print("Julia run complete.")

        self.cases_surfaces = returned_result[1]
        self.cases_complete = returned_result[0]

        self.write_binary_dump(self.binary_dump_filename_surfaces,
                               self.cases_surfaces)
        self.write_binary_dump(self.binary_dump_filename_complete,
                               self.cases_complete)