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)
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)