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)
示例#2
0
 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)
示例#3
0
    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()
示例#5
0
 def run(self):
     self.__Indicator = Indicator(self.__user)
     vacuum(self.__Indicator.get_uri(), "mmu")
     self.__urbper_base_total_population()