def get_gps_address(self):
        # 注意,此方法需要使用get_img_exif()中的属性
        # 该get_img_exif()方法要被执行后,属性才能被激活,然后下面被调用
        self.get_img_exif()

        # 原始图片获取的坐标:[103, 45, 54931/1000] <class 'exifread.classes.IfdTag'>
        # 转换后坐标:103.765259, 29.206260
        try:
            lng = self.format_data(self.longitude_gps)
            lat = self.format_data(self.latitude_gps)

            # 经纬度信息完整才进行转换
            if lng and lat:
                # 坐标转换为火星系坐标
                tr = transfer.Transfer()
                location = tr.wg84_to_gcj02(lng, lat)
                gps_address = f'{location[0]}, {location[1]}'
                return gps_address  # (103.76745380953696,29.20330918425425)
            else:
                print(f'图片的数据属性缺失')
                return ''

        # 上面已经打印过没有gps数据,此处跳过
        except:
            pass
Beispiel #2
0
 def triger(self, files):
     triger = transfer.Transfer()
     for file_name in files:
         file_name = '/root/script/20170531/' + file_name
         file_size_start = os.path.getsize(file_name)
         time.sleep(3)
         file_size_finish = os.path.getsize(file_name)
         if int(file_size_start) == int(file_size_finish):
             triger.file_transfer('192.168.1.241', 'root', '123456',
                                  '/data/sftp/mysftp/rec_data/20170531/',
                                  file_name)
Beispiel #3
0
async def run(algorithm, params, db_objects):
    result = []
    params = json.loads(params)
    ### get the corresponding algorithm python module using algorithm name
    module = get_package(algorithm)
    algorithm_instance = module.Algorithm()
    table_id = get_uniquetableid()
    transfer_runner = transfer.Transfer(db_objects, table_id)
    task_executor_instance = task_executor.Task(db_objects, table_id, params, transfer_runner, algorithm)
    scheduler_instance  = scheduler.Scheduler(task_executor_instance, algorithm_instance.algorithm)
    result = await scheduler_instance.schedule()
    return result
async def run(algorithm_instance, params, hash_value, step, schema, node_id,
              db_objects, states):
    ### get the corresponding algorithm python module using algorithm name
    table_id = hash_value
    transfer_runner = transfer.Transfer(db_objects, table_id)
    task_executor_instance = task_executor.Task(db_objects, table_id, params,
                                                node_id, transfer_runner)
    scheduler_instance = scheduler.Scheduler(task_executor_instance,
                                             algorithm_instance.algorithm,
                                             step, schema, states)
    result = await scheduler_instance.schedule()
    return result
Beispiel #5
0
    def __init__(self):
        self.config = peer_config.Config()
        self.config.read_config('config.json')

        self.flooding = flooding_query.FloodingQuery(self.config)
        self.flooding.listen_command_port()
        self.transfers = transfer.Transfer(self.config)
        self.transfers.listen_data_port()

        self.transfer_thread = Thread(
            target=self.transfers.recv_download_file_request)
        self.transfer_thread.start()

        self.request_queue = Queue()
        self.flooding_thread = Thread(target=self.flooding.recv_buffer,
                                      args=(self.request_queue, ))
        self.flooding_thread.start()

        self.__menu()
Beispiel #6
0
    return ip[:-1]


# Function to monitor core temperature
def coreTemp():
    temp = os.popen('vcgencmd measure_temp').readline()
    ftemp = float(temp.replace('temp=', '')[:-3])
    if ftemp >= 80.0:
        mdisp.errMsg(4321, "Overheating\r\nTemp=%.1f C" % (ftemp))
        exit(1)
    return ftemp


communityURL = 'http://mulenerva.bitwisehero.com:5001/'
datastoreURL = 'http://mulenerva.bitwisehero.com:5002/'
t = transfer.Transfer(communityURL, datastoreURL)


def onLocalConnect():
    # 0: Upload catalog update
    t.upCatalog()
    # 1: Get server timestamp
    t.syncTimestamp()
    # 2: Upload content
    for request in t.reqs:
        if request['is_available']:
            t.upContent(request)
    # 3: Update request ledger
    reqs = t.recvRequests()
    t.setRequests(reqs)
    return
Beispiel #7
0
    def __init__(
        self,
        Facility_Name,
        facility_type,
        Distance_per_lift,
        Distance_to_TransferStation,
        Total_tonnes_collected,
        Number_bin_per_hhold,
        number_hhold,
        Transfer_Station,
        Processing_Facility,
        Transfer_Distance,
    ):

        self.Facility_Name = Facility_Name
        self.facility_type = facility_type
        self.Distance_per_lift = Distance_per_lift
        self.Distance_to_TransferStation = Distance_to_TransferStation
        self.Total_tonnes_collected = Total_tonnes_collected
        self.Number_bin_per_hhold = Number_bin_per_hhold
        self.number_hhold = number_hhold
        self.Transfer_Station = Transfer_Station
        self.Processing_Facility = Processing_Facility
        self.Transfer_Distance = Transfer_Distance

        ###########################################################################################################
        #processing facility

        #grab composition
        self.waste_composition_class = Co.Waste_Composition()
        #grab mat diversion per facility
        self.Material_Diversion_class = WF.Facility_Type()

        self.WP = Prcss.Processing(self.Facility_Name,
                                   self.waste_composition_class,
                                   self.Material_Diversion_class)
        self.WP.Material_Recovery(facility_type)

        self.total_landfill_in_t = self.WP.total_for_landfill
        self.total_processed = self.WP.total_processed
        print("total landfill in t = ", self.WP.total_for_landfill,
              " total processed = ", self.WP.total_processed)

        ###########################################################################################################
        #waste stream
        self.WasteCompo = self.waste_composition_class.Waste_Composition
        self.WS = wststream.WasteStream(self.WasteCompo)

        #self.WS.verification()
        for compo in self.WS.Waste_Composition:
            self.WS.landfill_emissions_per_t(compo)
            print(compo, " total emissions per t = ",
                  self.WS.total_emission_per_t)

        ###########################################################################################################
        #trip from households to transfer station
        self.Trucks = TR.trucks()
        for collection_truck in self.Trucks.collection_trucks:
            self.TRP = Trp.Trip(collection_truck, self.Distance_per_lift,
                                self.Distance_to_TransferStation,
                                self.Total_tonnes_collected,
                                self.Number_bin_per_hhold, self.number_hhold)
            self.TRP.total_emissions()
            self.TRP.costs()
            print("Collection truck = ", collection_truck,
                  " total emissions in t CO2 = ", self.TRP.tCO2,
                  " total liftcost = ", self.TRP.lift_costs)

        ###########################################################################################################
        #transfert from transfert station to processing facility
        for transfer_truck in self.Trucks.transfer_trucks:
            self.TRANS = Trf.Transfer(transfer_truck, self.Transfer_Station,
                                      self.Processing_Facility,
                                      self.Transfer_Distance,
                                      self.Total_tonnes_collected)
            self.TRANS.total_emissions()
            self.TRANS.costs()
            print("transfer truck = ", transfer_truck,
                  " total emissions in t CO2 = ", self.TRANS.tCO2,
                  " total transfercost = ", self.TRANS.transfer_costs)

        return