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)
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()