Example #1
0
def validate_info(ui, errors):
    """
    Validates the fields for errors
    :param ui: The GUI containing the fields
    :param errors: The list of errors that have occurred so far
    :return: None
    """
    # check credentials
    is_info_good = True
    if is_field_empty(ui.username):
        is_info_good = False
        errors.append("No username provided.")
    if is_field_empty(ui.password):
        is_info_good = False
        errors.append("No password provided.")
    # validate credentials by hitting monocle-3
    if is_info_good:
        query = VectorQuery(username=ui.username.text(),
                            password=ui.password.text(),
                            client_id=ui.client_id.text(),
                            client_secret=ui.client_secret.text())
        query.log_in()
        if not query.is_login_successful:
            errors.append(
                "Unable to verify credentials. See logs for more details.")
Example #2
0
    def generate_csv(self):
        # dates
        now = datetime.now()
        self.end_date = now
        self.begin_date = now - timedelta(days=self.days_to_query)

        current_x = self.left
        current_y = self.bottom

        serial_no = 1

        # get header dict
        vector_query = VectorQuery(username=self.username,
                                   password=self.password,
                                   client_id=self.client_id,
                                   client_secret=self.client_secret)
        vector_query.log_in()
        vector_params = InfoCubeVectorParams(top=self.top,
                                             bottom=self.bottom,
                                             left=self.left,
                                             right=self.right,
                                             time_begin=self.begin_date,
                                             time_end=self.end_date)
        header_result = vector_query.get_vector_result(vector_params)
        self.vector_header_dict = vector_query.get_vector_data(header_result)

        for next_x in drange(self.left + INCREMENTAL_INTERVAL, self.right,
                             INCREMENTAL_INTERVAL):
            for next_y in drange(self.bottom + INCREMENTAL_INTERVAL, self.top,
                                 INCREMENTAL_INTERVAL):

                username = self.username
                password = self.password
                client_id = self.client_id
                client_secret = self.client_secret

                csv_runnable = CSVRunnable(username, password, client_id,
                                           client_secret, serial_no, next_y,
                                           current_x, next_x, current_y,
                                           self.begin_date, self.end_date,
                                           self.vector_header_dict)
                csv_runnable.csv_object.new_csv_element.connect(
                    self.csv_generator_object.callback)
                self.pool.start(csv_runnable)

                serial_no += 1
                current_y = next_y

            current_y = self.bottom
            current_x = next_x

        self.finished_submissions = True
Example #3
0
    def run(self):
        gbd_params = GBDOrderParams(top=self.top,
                                    bottom=self.bottom,
                                    left=self.left,
                                    right=self.right,
                                    time_begin=self.time_begin,
                                    time_end=self.time_end)
        vector_params = InfoCubeVectorParams(top=self.top,
                                             bottom=self.bottom,
                                             left=self.left,
                                             right=self.right,
                                             time_begin=self.time_begin,
                                             time_end=self.time_end)
        csv_element = CSVOutput(serial_no=self.serial_no,
                                top=self.top,
                                left=self.left,
                                right=self.right,
                                bottom=self.bottom,
                                polygon=gbd_params.polygon,
                                vector_header_dict=self.vector_header_dict)

        gbd_query = GBDQuery(username=self.username,
                             password=self.password,
                             client_id=self.client_id,
                             client_secret=self.client_secret)
        log.info("Starting GBD Query with params: " + str(gbd_params.__dict__))
        gbd_query.log_in()

        # build vectory query
        vector_query = VectorQuery(username=self.username,
                                   password=self.password,
                                   client_id=self.client_id,
                                   client_secret=self.client_secret)
        log.info("Starting queries with params: " +
                 str(vector_params.__dict__))
        vector_query.log_in()

        gbd_query.do_aoi_search(gbd_params, csv_element)
        log.info("GBD Query complete for args: " + str(gbd_params.__dict__))
        vector_query.query_vector(vector_params, csv_element)
        log.info("Vector Query complete for args: " +
                 str(vector_params.__dict__))

        self.csv_object.new_csv_element.emit(csv_element)
Example #4
0
    def generate_csv(self):
        # dates
        now = datetime.now()
        self.end_date = now
        self.begin_date = now - timedelta(days=self.days_to_query)

        current_x = self.left
        current_y = self.bottom

        serial_no = 1
        
        # get header dict
        vector_query = VectorQuery(username=self.username, password=self.password, client_id=self.client_id, client_secret=self.client_secret)
        vector_query.log_in()
        vector_params = InfoCubeVectorParams(top=self.top, bottom=self.bottom, left=self.left, right=self.right, time_begin=self.begin_date, time_end=self.end_date)
        header_result = vector_query.get_vector_result(vector_params)
        self.vector_header_dict = vector_query.get_vector_data(header_result)

        for next_x in drange(self.left + INCREMENTAL_INTERVAL, self.right, INCREMENTAL_INTERVAL):
            for next_y in drange(self.bottom + INCREMENTAL_INTERVAL, self.top, INCREMENTAL_INTERVAL):

                username = self.username
                password = self.password
                client_id = self.client_id
                client_secret = self.client_secret
                
                csv_runnable = CSVRunnable(username, password, client_id, client_secret,
                                           serial_no, next_y, current_x, next_x,
                                           current_y, self.begin_date, self.end_date, self.vector_header_dict)
                csv_runnable.csv_object.new_csv_element.connect(self.csv_generator_object.callback)
                self.pool.start(csv_runnable)

                serial_no += 1
                current_y = next_y

            current_y = self.bottom
            current_x = next_x

        self.finished_submissions = True
def validate_info(ui, errors):
    """
    Validates the fields for errors
    :param ui: The GUI containing the fields
    :param errors: The list of errors that have occurred so far
    :return: None
    """
    # check credentials
    is_info_good = True
    if is_field_empty(ui.username):
        is_info_good = False
        errors.append("No username provided.")
    if is_field_empty(ui.password):
        is_info_good = False
        errors.append("No password provided.")
    # validate credentials by hitting monocle-3
    if is_info_good:
        query = VectorQuery(username=ui.username.text(), password=ui.password.text(),
                                  client_id=ui.client_id.text(), client_secret=ui.client_secret.text())
        query.log_in()
        if not query.is_login_successful:
            errors.append("Unable to verify credentials. See logs for more details.")
Example #6
0
    def run(self):
        gbd_params = GBDOrderParams(top=self.top, bottom=self.bottom, left=self.left, right=self.right,
                                    time_begin=self.time_begin, time_end=self.time_end)
        vector_params = InfoCubeVectorParams(top=self.top, bottom=self.bottom, left=self.left, right=self.right,
                                                 time_begin=self.time_begin, time_end=self.time_end)
        csv_element = CSVOutput(serial_no=self.serial_no, top=self.top, left=self.left, right=self.right,
                                bottom=self.bottom, polygon=gbd_params.polygon, vector_header_dict=self.vector_header_dict)

        gbd_query = GBDQuery(username=self.username, password=self.password, client_id=self.client_id, client_secret=self.client_secret)
        log.info("Starting GBD Query with params: " + str(gbd_params.__dict__))
        gbd_query.log_in()

        # build vectory query
        vector_query = VectorQuery(username=self.username, password=self.password, client_id=self.client_id, client_secret=self.client_secret)
        log.info("Starting queries with params: " + str(vector_params.__dict__))
        vector_query.log_in()
    
        gbd_query.do_aoi_search(gbd_params, csv_element)
        log.info("GBD Query complete for args: " + str(gbd_params.__dict__))
        vector_query.query_vector(vector_params, csv_element)
        log.info("Vector Query complete for args: " + str(vector_params.__dict__))

        self.csv_object.new_csv_element.emit(csv_element)