def test_gridder_task(self):

        logger = logging.getLogger('test_gridder_task')
        logger.addHandler(logging.StreamHandler())
        logger.setLevel(logging.INFO)

        output_path = os.path.join(self.tmp_dir, "output.csv")
        task = SASIGridderTask(
            logger=logger,
            raw_efforts_path=self.raw_efforts_path,
            grid_path=self.grid_path,
            stat_areas_path=self.stat_areas_path,
            output_path=output_path
        )
        task.call()
        output_file = open(output_path, "rb")
        reader = csv.DictReader(output_file)
        results = [r for r in reader]
        results.sort(key=lambda r: r['cell_id'])
        output_file.close()
        self.assertEquals(
            results, 
            [
                {'a': '8.0', 'cell_id': '1', 'gear_id': 'GC10', 'hours_fished': '0.0', 'value': '0.0', 'time': '1.0'},
                {'a': '4.0', 'cell_id': '2', 'gear_id': 'GC10', 'hours_fished': '0.0', 'value': '0.0', 'time': '1.0'}
            ]
        )
        def run_task():

            self.progressBar.setValue(0)
            self.progressBar.setIndeterminate(True)

            try:
                input_dir = self.selected_input_file.path
                output_path = self.selected_output_file.path

                grid_path = os.path.join(input_dir, "grid", "grid.shp")

                stat_areas_path = os.path.join(input_dir, "stat_areas", "stat_areas.shp")

                raw_efforts_path = os.path.join(input_dir, "raw_efforts.csv")

                gear_mappings_path = os.path.join(input_dir, "gear_mappings.csv")

                gear_mappings = {}
                with open(gear_mappings_path, "rb") as f:
                    r = csv.DictReader(f)
                    for mapping in r:
                        gear_mappings[mapping["trip_type"]] = mapping["gear_code"]

                task = SASIGridderTask(
                    grid_path=grid_path,
                    raw_efforts_path=raw_efforts_path,
                    stat_areas_path=stat_areas_path,
                    output_path=output_path,
                    logger=self.logger,
                    gear_mappings=gear_mappings,
                    effort_limit=None,
                )
                task.call()
            except Exception as e:
                self.logger.exception("Could not complete task")

            self.progressBar.setIndeterminate(False)
            self.progressBar.setValue(100)
Пример #3
0
                       required=True)
argparser.add_argument('-o', '--output-path', help='output path')
argparser.add_argument('-l', '--effort-limit', help='output path', type=int)
argparser.add_argument('-m', '--mappings-file', help='mappings file')

args = argparser.parse_args()

logger = logging.getLogger('run_gridder_task')
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler())

if args.mappings_file:
    gear_mappings = {}
    with open(args.mappings_file, 'rb') as f:
        r = csv.DictReader(f)
        for mapping in r:
            gear_mappings[mapping['trip_type']] = mapping['gear_code']
else:
    gear_mappings = None

task = SASIGridderTask(
    grid_path=args.grid,
    raw_efforts_path=args.raw_efforts,
    stat_areas_path=args.stat_areas,
    output_path=args.output_path,
    logger=logger,
    effort_limit=args.effort_limit,
    gear_mappings=gear_mappings,
)
task.call()