) except (RuntimeError, GCPTransformException), e: raise IngestionException, str(e), sys.exc_info()[2] # validate preprocess result if result.num_bands not in (1, 3, 4): # color index, RGB, RGBA raise IngestionException("Processed browse image has %d bands." % result.num_bands) logger.info("Creating database models.") extent, time_interval = create_browse( parsed_browse, browse_report, browse_layer, coverage_id, crs, replaced, result.footprint_geom, result.num_bands, output_filename, seed_areas, config=config, ) except: # save exception info to re-raise it exc_info = sys.exc_info() logger.error( "Error during ingestion of Browse '%s'. Moving " "original image to `failure_dir` '%s'." % (parsed_browse.browse_identifier, failure_dir) )
result = preprocessor.process( input_filename, output_filename, geo_reference, True, merge_with, merge_footprint ) except (RuntimeError, GCPTransformException), e: raise IngestionException, str(e), sys.exc_info()[2] # validate preprocess result if result.num_bands not in (1, 3, 4): # color index, RGB, RGBA raise IngestionException("Processed browse image has %d bands." % result.num_bands) logger.info("Creating database models.") extent, time_interval = create_browse( parsed_browse, browse_report, browse_layer, coverage_id, crs, replaced, result.footprint_geom, result.num_bands, output_filename, seed_areas, config=config ) except: # save exception info to re-raise it exc_info = sys.exc_info() logger.error("Error during ingestion of Browse '%s'. Moving " "original image to `failure_dir` '%s'." % (parsed_browse.browse_identifier, failure_dir)) # move the file to failure folder try: if not leave_original:
def import_browse(p, browse, browse_report_model, browse_layer_model, crs, seed_areas, config): filename = browse.file_name coverage_id = splitext(filename)[0] footprint_filename = coverage_id + ".wkb" logger.info("Importing browse with data file '%s' and metadata file '%s'." % (filename, footprint_filename)) replaced = False replaced_filename = None existing_browse_model = get_existing_browse(browse.browse_identifier, coverage_id, browse_layer_model.id) if existing_browse_model: logger.info("Existing browse found, replacing it.") replaced_extent, replaced_filename = remove_browse( existing_browse_model, browse_layer_model, coverage_id, seed_areas, config=config ) replaced = True else: # A browse with that identifier does not exist, so just create a new one logger.info("Creating new browse.") output_filename = get_optimized_path(filename, browse_layer_model.id, config=config) if (exists(output_filename) and ((replaced_filename and not samefile(output_filename, replaced_filename)) or not replaced_filename)): raise ImportException("Output file '%s' already exists and is not to " "be replaced." % output_filename) with FileTransaction((output_filename, replaced_filename)): if not exists(dirname(output_filename)): makedirs(dirname(output_filename)) p.extract_browse_file(filename, output_filename) # TODO: find out num bands and footprint ds = gdal.Open(output_filename) num_bands = ds.RasterCount footprint = p.get_footprint(footprint_filename) extent, time_interval = create_browse( browse, browse_report_model, browse_layer_model, coverage_id, crs, replaced, footprint, num_bands, output_filename, seed_areas, config=config ) if not replaced: return IngestBrowseResult(browse.browse_identifier, extent, time_interval) else: replaced_time_interval = (existing_browse_model.start_time, existing_browse_model.end_time) return IngestBrowseReplaceResult(browse.browse_identifier, extent, time_interval, replaced_extent, replaced_time_interval)
def import_browse(p, browse, browse_report_model, browse_layer_model, crs, seed_areas, config): filename = browse.file_name coverage_id = splitext(filename)[0] footprint_filename = coverage_id + ".wkb" logger.info( "Importing browse with data file '%s' and metadata file '%s'." % (filename, footprint_filename)) replaced = False replaced_filename = None existing_browse_model = get_existing_browse(browse.browse_identifier, coverage_id, browse_layer_model.id) if existing_browse_model: logger.info("Existing browse found, replacing it.") replaced_extent, replaced_filename = remove_browse( existing_browse_model, browse_layer_model, coverage_id, seed_areas, config=config) replaced = True else: # A browse with that identifier does not exist, so just create a new one logger.info("Creating new browse.") output_filename = get_optimized_path(filename, browse_layer_model.id, config=config) if (exists(output_filename) and ((replaced_filename and not samefile(output_filename, replaced_filename)) or not replaced_filename)): raise ImportException("Output file '%s' already exists and is not to " "be replaced." % output_filename) with FileTransaction((output_filename, replaced_filename)): if not exists(dirname(output_filename)): makedirs(dirname(output_filename)) p.extract_browse_file(filename, output_filename) # TODO: find out num bands and footprint ds = gdal.Open(output_filename) num_bands = ds.RasterCount footprint = p.get_footprint(footprint_filename) extent, time_interval = create_browse(browse, browse_report_model, browse_layer_model, coverage_id, crs, replaced, footprint, num_bands, output_filename, seed_areas, config=config) if not replaced: return IngestBrowseResult(browse.browse_identifier, extent, time_interval) else: replaced_time_interval = (existing_browse_model.start_time, existing_browse_model.end_time) return IngestBrowseReplaceResult(browse.browse_identifier, extent, time_interval, replaced_extent, replaced_time_interval)