Source code for nanshe.converter
"""
The module ``converter`` supports translation of TIFF files to HDF5 files.
===============================================================================
Overview
===============================================================================
The ``main`` function actually starts the algorithm and can be called
externally. Configuration files for the learner are provided in the examples_
and are entitled learner.
.. _examples: http://github.com/nanshe-org/nanshe/tree/master/examples
===============================================================================
API
===============================================================================
"""
__author__ = "John Kirkham <kirkhamj@janelia.hhmi.org>"
__date__ = "$Jun 26, 2014 17:33:37 EDT$"
from nanshe.util import prof
from nanshe.io import xjson, xtiff
# Get the logger
trace_logger = prof.getTraceLogger(__name__)
[docs]@prof.log_call(trace_logger)
def main(*argv):
"""
Simple main function (like in C). Takes all arguments (as from
sys.argv) and returns an exit status.
Args:
argv(list): arguments (includes command line call).
Returns:
int: exit code (0 if success)
"""
# Only necessary if running main (normally if calling command line).
# No point in importing otherwise.
import argparse
argv = list(argv)
# Creates command line parser
parser = argparse.ArgumentParser(
description="Parses input from the command line for a batch job."
)
parser.add_argument(
"format",
choices=["tiff"],
help="Format to convert from to HDF5.",
)
parser.add_argument(
"config_filename",
metavar="CONFIG_FILE",
type=str,
help="JSON file that provides configuration options" +
" for how to import TIFF(s)."
)
parser.add_argument(
"input_files",
metavar="INPUT_FILE",
type=str,
nargs="+",
help="TIFF file paths (with optional regex e.g. \"./*.tif\")."
)
parser.add_argument(
"output_file",
metavar="OUTPUT_FILE",
type=str,
nargs=1,
help="HDF5 file to export" +
" (this should include a path to" +
" where the internal dataset should be stored)."
)
# Results of parsing arguments
# (ignore the first one as it is the command line call).
parsed_args = parser.parse_args(argv[1:])
# Go ahead and stuff in parameters with the other parsed_args
parsed_args.parameters = xjson.read_parameters(parsed_args.config_filename)
if parsed_args.format == "tiff":
xtiff.convert_tiffs(
parsed_args.input_files,
parsed_args.output_file[0],
**parsed_args.parameters
)
return(0)