def main(): from polar2grid.core.script_utils import create_basic_parser, create_exc_handler, setup_logging from polar2grid.core.containers import GriddedScene, GriddedProduct parser = create_basic_parser(description="Create HDF5 files from provided gridded scene or product data") subgroup_titles = add_backend_argument_groups(parser) parser.add_argument("--scene", required=True, help="JSON SwathScene filename to be remapped") global_keywords = ("keep_intermediate", "overwrite_existing", "exit_on_error") args = parser.parse_args(subgroup_titles=subgroup_titles, global_keywords=global_keywords) # Logs are renamed once data the provided start date is known levels = [logging.ERROR, logging.WARN, logging.INFO, logging.DEBUG] setup_logging(console_level=levels[min(3, args.verbosity)], log_filename=args.log_fn) sys.excepthook = create_exc_handler(LOG.name) LOG.info("Loading scene or product...") gridded_scene = GriddedScene.load(args.scene) LOG.info("Initializing backend...") backend = Backend(**args.subgroup_args["Backend Initialization"]) if isinstance(gridded_scene, GriddedScene): backend.create_output_from_scene(gridded_scene, **args.subgroup_args["Backend Output Creation"]) elif isinstance(gridded_scene, GriddedProduct): backend.create_output_from_product(gridded_scene, **args.subgroup_args["Backend Output Creation"]) else: raise ValueError("Unknown Polar2Grid object provided")
def main(): from polar2grid.core.script_utils import create_basic_parser, create_exc_handler, setup_logging from polar2grid.core.containers import GriddedScene, GriddedProduct parser = create_basic_parser(description="Create NinJo files from provided gridded scene or product data") subgroup_titles = add_backend_argument_groups(parser) parser.add_argument("--scene", required=True, help="JSON SwathScene filename to be remapped") parser.add_argument("-t", "--test", dest="run_test", default=None, help="Run specified test [test_write, test_write_tags, etc]") global_keywords = ("keep_intermediate", "overwrite_existing", "exit_on_error") args = parser.parse_args(subgroup_titles=subgroup_titles, global_keywords=global_keywords) # Logs are renamed once data the provided start date is known levels = [logging.ERROR, logging.WARN, logging.INFO, logging.DEBUG] setup_logging(console_level=levels[min(3, args.verbosity)], log_filename=args.log_fn) sys.excepthook = create_exc_handler(LOG.name) if args.run_test is not None: if args.run_test not in TESTS: parser.print_usage() print "Available tests:\n\t%s" % ("\n\t".join(TESTS.keys())) return -1 return TESTS[args.run_test](*args) LOG.info("Loading scene or product...") gridded_scene = GriddedScene.load(args.scene) LOG.info("Initializing backend...") backend = Backend(**args.subgroup_args["Backend Initialization"]) if isinstance(gridded_scene, GriddedScene): backend.create_output_from_scene(gridded_scene, **args.subgroup_args["Backend Output Creation"]) elif isinstance(gridded_scene, GriddedProduct): backend.create_output_from_product(gridded_scene, **args.subgroup_args["Backend Output Creation"]) else: raise ValueError("Unknown Polar2Grid object provided")
def main(): from polar2grid.core.script_utils import create_basic_parser, create_exc_handler, setup_logging from polar2grid.core.containers import GriddedScene, GriddedProduct parser = create_basic_parser( description= "Create HDF5 files from provided gridded scene or product data") subgroup_titles = add_backend_argument_groups(parser) parser.add_argument("--scene", required=True, help="JSON SwathScene filename to be remapped") global_keywords = ("keep_intermediate", "overwrite_existing", "exit_on_error") args = parser.parse_args(subgroup_titles=subgroup_titles, global_keywords=global_keywords) # Logs are renamed once data the provided start date is known levels = [logging.ERROR, logging.WARN, logging.INFO, logging.DEBUG] setup_logging(console_level=levels[min(3, args.verbosity)], log_filename=args.log_fn) sys.excepthook = create_exc_handler(LOG.name) LOG.info("Loading scene or product...") gridded_scene = GriddedScene.load(args.scene) LOG.info("Initializing backend...") backend = Backend(**args.subgroup_args["Backend Initialization"]) if isinstance(gridded_scene, GriddedScene): backend.create_output_from_scene( gridded_scene, **args.subgroup_args["Backend Output Creation"]) elif isinstance(gridded_scene, GriddedProduct): backend.create_output_from_product( gridded_scene, **args.subgroup_args["Backend Output Creation"]) else: raise ValueError("Unknown Polar2Grid object provided")
def main(argv=sys.argv[1:]): from polar2grid.core.script_utils import setup_logging, create_basic_parser, create_exc_handler from polar2grid.core.containers import GriddedScene parser = create_basic_parser(description="Extract swath data, remap it, and write it to a new file format") parser.add_argument("--compositor-configs", nargs="*", default=None, help="Specify alternative configuration file(s) for compositors") # don't include the help flag argv_without_help = [x for x in argv if x not in ["-h", "--help"]] args, remaining_args = parser.parse_known_args(argv_without_help) # Load compositor information (we can't know the compositor choices until we've loaded the configuration) compositor_manager = CompositorManager(config_files=args.compositor_configs) # Hack: argparse doesn't let you use choices and nargs=* on a positional argument parser.add_argument("compositors", choices=compositor_manager.keys() + [[]], nargs="*", help="Specify the compositors to apply to the provided scene (additional arguments are determined after this is specified)") parser.add_argument("--scene", required=True, help="JSON SwathScene filename to be remapped") parser.add_argument("-o", dest="output_filename", help="Specify the filename for the newly modified scene (default: original_fn + 'composite')") global_keywords = ("keep_intermediate", "overwrite_existing", "exit_on_error") args = parser.parse_args(argv, global_keywords=global_keywords) levels = [logging.ERROR, logging.WARN, logging.INFO, logging.DEBUG] setup_logging(console_level=levels[min(3, args.verbosity)], log_filename=args.log_fn) sys.excepthook = create_exc_handler(LOG.name) LOG.debug("Starting compositor script with arguments: %s", " ".join(sys.argv)) # Compositor validation compositor_objects = {} for c in args.compositors: if c not in compositor_manager: LOG.error("Compositor '%s' is unknown" % (c,)) raise RuntimeError("Compositor '%s' is unknown" % (c,)) compositor_objects[c] = compositor_manager.get_compositor(c, **args.global_kwargs) scene = GriddedScene.load(args.scene) for c, comp in compositor_objects.items(): try: scene = comp.modify_scene(scene, **args.subgroup_args[c + " Modification"]) except StandardError: LOG.debug("Compositor Error: ", exc_info=True) LOG.error("Could not properly modify scene using compositor '%s'" % (c,)) if args.exit_on_error: raise RuntimeError("Could not properly modify scene using compositor '%s'" % (c,)) if args.output_filename is None: stem, ext = os.path.splitext(args.scene) args.output_filename = stem + "_composite" + ext scene.save(args.output_filename)
def main(): from polar2grid.core.script_utils import create_basic_parser, create_exc_handler, setup_logging from polar2grid.core.containers import GriddedScene, GriddedProduct parser = create_basic_parser( description= "Create NinJo files from provided gridded scene or product data") subgroup_titles = add_backend_argument_groups(parser) parser.add_argument("--scene", required=True, help="JSON SwathScene filename to be remapped") parser.add_argument( "-t", "--test", dest="run_test", default=None, help="Run specified test [test_write, test_write_tags, etc]") global_keywords = ("keep_intermediate", "overwrite_existing", "exit_on_error") args = parser.parse_args(subgroup_titles=subgroup_titles, global_keywords=global_keywords) # Logs are renamed once data the provided start date is known levels = [logging.ERROR, logging.WARN, logging.INFO, logging.DEBUG] setup_logging(console_level=levels[min(3, args.verbosity)], log_filename=args.log_fn) sys.excepthook = create_exc_handler(LOG.name) if args.run_test is not None: if args.run_test not in TESTS: parser.print_usage() print "Available tests:\n\t%s" % ("\n\t".join(TESTS.keys())) return -1 return TESTS[args.run_test](*args) LOG.info("Loading scene or product...") gridded_scene = GriddedScene.load(args.scene) LOG.info("Initializing backend...") backend = Backend(**args.subgroup_args["Backend Initialization"]) if isinstance(gridded_scene, GriddedScene): backend.create_output_from_scene( gridded_scene, **args.subgroup_args["Backend Output Creation"]) elif isinstance(gridded_scene, GriddedProduct): backend.create_output_from_product( gridded_scene, **args.subgroup_args["Backend Output Creation"]) else: raise ValueError("Unknown Polar2Grid object provided")
def main_backend(argv=sys.argv[1:]): from polar2grid.core.script_utils import setup_logging, create_basic_parser, create_exc_handler, ExtendAction from polar2grid.core.containers import GriddedScene, GriddedProduct backends = available_backends() parser = create_basic_parser(description="Create image/output file from provided gridded scene using a typical Polar2Grid backend (see specific backend for other features)") parser.add_argument("backend", choices=sorted(backends.keys()), help="Specify the output generator to use (additional arguments are determined after this is specified)") parser.add_argument("--scene", required=True, help="JSON GriddedScene filename") parser.add_argument('-o', dest="output_filename", default=None, help="Output filename for JSON scene (default is to stdout)") parser.add_argument('-f', dest='data_files', nargs="+", default=[], action=ExtendAction, help="List of files or directories to extract data from") global_keywords = ("keep_intermediate", "overwrite_existing", "exit_on_error") # don't include the help flag argv_without_help = [x for x in argv if x not in ["-h", "--help"]] args, remaining_args = parser.parse_known_args(argv_without_help) LOG = logging.getLogger(args.backend) barg_func = get_backend_argument_func(backends, args.backend) bcls = get_backend_class(backends, args.backend) subgroup_titles = [] subgroup_titles += barg_func(parser) args = parser.parse_args(argv, global_keywords=global_keywords, subgroup_titles=subgroup_titles) levels = [logging.ERROR, logging.WARN, logging.INFO, logging.DEBUG] setup_logging(console_level=levels[min(3, args.verbosity)], log_filename=args.log_fn) sys.excepthook = create_exc_handler(LOG.name) LOG.debug("Starting script with arguments: %s", " ".join(sys.argv)) LOG.info("Loading scene or product...") gridded_scene = GriddedScene.load(args.scene) LOG.info("Initializing writer...") backend = bcls(**args.subgroup_args["Backend Initialization"]) if isinstance(gridded_scene, GriddedScene): result = backend.create_output_from_scene(gridded_scene, **args.subgroup_args["Backend Output Creation"]) elif isinstance(gridded_scene, GriddedProduct): result = backend.create_output_from_product(gridded_scene, **args.subgroup_args["Backend Output Creation"]) else: raise ValueError("Unknown Polar2Grid object provided") import json print(json.dumps(result)) return 0
def main(argv=sys.argv[1:]): from polar2grid.core.script_utils import setup_logging, create_basic_parser, create_exc_handler from polar2grid.core.containers import GriddedScene parser = create_basic_parser( description= "Extract swath data, remap it, and write it to a new file format") parser.add_argument( "--compositor-configs", nargs="*", default=None, help="Specify alternative configuration file(s) for compositors") # don't include the help flag argv_without_help = [x for x in argv if x not in ["-h", "--help"]] args, remaining_args = parser.parse_known_args(argv_without_help) # Load compositor information (we can't know the compositor choices until we've loaded the configuration) compositor_manager = CompositorManager( config_files=args.compositor_configs) # Hack: argparse doesn't let you use choices and nargs=* on a positional argument parser.add_argument( "compositors", choices=compositor_manager.keys() + [[]], nargs="*", help= "Specify the compositors to apply to the provided scene (additional arguments are determined after this is specified)" ) parser.add_argument("--scene", required=True, help="JSON SwathScene filename to be remapped") parser.add_argument( "-o", dest="output_filename", help= "Specify the filename for the newly modified scene (default: original_fn + 'composite')" ) global_keywords = ("keep_intermediate", "overwrite_existing", "exit_on_error") args = parser.parse_args(argv, global_keywords=global_keywords) levels = [logging.ERROR, logging.WARN, logging.INFO, logging.DEBUG] setup_logging(console_level=levels[min(3, args.verbosity)], log_filename=args.log_fn) sys.excepthook = create_exc_handler(LOG.name) LOG.debug("Starting compositor script with arguments: %s", " ".join(sys.argv)) # Compositor validation compositor_objects = {} for c in args.compositors: if c not in compositor_manager: LOG.error("Compositor '%s' is unknown" % (c, )) raise RuntimeError("Compositor '%s' is unknown" % (c, )) compositor_objects[c] = compositor_manager.get_compositor( c, **args.global_kwargs) scene = GriddedScene.load(args.scene) for c, comp in compositor_objects.items(): try: scene = comp.modify_scene( scene, **args.subgroup_args[c + " Modification"]) except StandardError: LOG.debug("Compositor Error: ", exc_info=True) LOG.error("Could not properly modify scene using compositor '%s'" % (c, )) if args.exit_on_error: raise RuntimeError( "Could not properly modify scene using compositor '%s'" % (c, )) if args.output_filename is None: stem, ext = os.path.splitext(args.scene) args.output_filename = stem + "_composite" + ext scene.save(args.output_filename)