def run(self): try: self.__Indicator = Indicator(self.__user) self.__db = self.__Indicator.get_up_calculator_connection() vacuum(self.__Indicator.get_uri(), "mmu") self.__db.close() amenity_classes_set = self.__getAmentityClassess() error = True count = 0 while error and count < 3: self.__Indicator = Indicator(self.__user) db = self.__Indicator.get_up_calculator_connection() try: for amenity in amenity_classes_set: amenity_classes = [] amenity_classes.append(amenity) amenity_classes_array = "'{" + ",".join( amenity_classes) + "}'" query = """ select urbper_indicator_pop_amenity_prox({scenario},'pop_prox_{fclass}'::varchar(30),'{fclass}_proximity'::varchar(30),{fclass_array}) """.format(scenario=self.__scenario, fclass=amenity, fclass_array=amenity_classes_array) LogEvents( amenity + " proximity", amenity + " proximity module started: " + query, self.__scenario, self.__user) with transaction.atomic(): db.execute(query) except Exception as e: error = True count += 1 time.sleep(randint(1, 3)) db.close() LogEvents( "amenity proximity", "amenity proximity module failed " + str(count) + ": " + str(e), self.__scenario, self.__user) else: error = False db.close() LogEvents("amenity proximity", "amenity proximity module finished", self.__scenario, self.__user) except Exception as e: LogEvents("amenity proximity", "unknown error " + str(e), self.__scenario, self.__user)
def run(self): try: self.__Indicator = Indicator(self.__user) self.__db = self.__Indicator.get_up_calculator_connection() vacuum(self.__Indicator.get_uri(), "mmu") self.__db.close() error = True count = 0 while error and count < 3: self.__Indicator = Indicator(self.__user) db = self.__Indicator.get_up_calculator_connection() try: query = """ select urbper_indicator_pop_transit_prox({scenario},'pop_prox_{fclass}'::varchar(30),'{fclass}_proximity'::varchar(30)) """.format(scenario=self.__scenario, fclass='transit') LogEvents("transit proximity", "transit proximity module started: " + query, self.__scenario, self.__user) with transaction.atomic(): db.execute(query) except Exception as e: error = True count += 1 time.sleep(randint(1, 3)) db.close() LogEvents( "transit proximity", "transit proximity module failed " + str(count) + ": " + str(e), self.__scenario, self.__user) else: error = False db.close() LogEvents("transit proximity", "transit proximity module finished", self.__scenario, self.__user) except Exception as e: LogEvents("transit proximity", "unknown error " + str(e), self.__scenario, self.__user)
def run_scenarios(self): try: LogEvents("Start scenario", "Starting all scenarios proccesing", self.base_scenario, self.user) last = 0 # Evaluate the scenario(s) for scenario in self.scenarios: last = scenario LogEvents( "Start scenario", "The modules to be use are: " + str(",".join(self.indicators)), scenario, self.user) ########################################## for module in self.indicators: module_r = "plup.indicators." + module + "." + module try: plugin = importlib.import_module(module_r, ".") module = plugin.Module( self.user, scenario, dict(base_scenario=self.base_scenario)) module.run() except Exception as e: print("E", e) LogEvents("Finish scenario", "The scenario have been processed", scenario, self.user) db = config.get_db() vacuum(self.indicator.get_uri(), "mmu") db.close() db = config.get_db() vacuum(self.indicator.get_uri(), True) db.close() LogEvents("All scenarios Finished", "All scenarios have been processed", last, self.user) except Exception as e: LogEvents("Unknown error", str(e), self.base_scenario, self.user)
def __general_calculus(self): self.__Indicator = Indicator(self.__user) vacuum(self.__Indicator.get_uri(), "mmu") self.__urbper_base_footprint_area() self.__urbper_base_total_population() self.__urbper_base_footprint_km2()
def run(self): self.__Indicator = Indicator(self.__user) vacuum(self.__Indicator.get_uri(), "mmu") self.__urbper_base_total_population()