Mercurial > repos > rv43 > tomo
annotate read_image.py @ 70:97c4e2cbbad9 draft
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
author | rv43 |
---|---|
date | Fri, 10 Mar 2023 16:39:22 +0000 |
parents | 26f99fdd8d61 |
children |
rev | line source |
---|---|
49
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
1 #!/usr/bin/env python3 |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
2 |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
3 import logging |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
4 |
70
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
5 import argparse |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
6 import pathlib |
49
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
7 import sys |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
8 |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
9 def __main__(): |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
10 |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
11 # Parse command line arguments |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
12 parser = argparse.ArgumentParser( |
70
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
13 description='Read a raw or reconstructed image') |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
14 parser.add_argument('-i', '--input_file', |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
15 required=True, |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
16 type=pathlib.Path, |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
17 help='''Full or relative path to the input file (in yaml or nxs format).''') |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
18 parser.add_argument('--image_type', |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
19 required=False, |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
20 help='Image type (dark, bright, tomo_raw, tomo_reduced, or reconstructed') |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
21 parser.add_argument('--image_index', |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
22 required=False, |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
23 type=int, |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
24 help='Image index (only for raw or reduced images') |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
25 parser.add_argument('-l', '--log', |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
26 # type=argparse.FileType('w'), |
49
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
27 default=sys.stdout, |
70
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
28 help='Logging stream or filename') |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
29 parser.add_argument('--log_level', |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
30 choices=logging._nameToLevel.keys(), |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
31 default='INFO', |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
32 help='''Specify a preferred logging level.''') |
49
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
33 args = parser.parse_args() |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
34 |
70
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
35 # Set log configuration |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
36 # When logging to file, the stdout log level defaults to WARNING |
49
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
37 logging_format = '%(asctime)s : %(levelname)s - %(module)s : %(funcName)s - %(message)s' |
70
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
38 level = logging.getLevelName(args.log_level) |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
39 if args.log is sys.stdout: |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
40 logging.basicConfig(format=logging_format, level=level, force=True, |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
41 handlers=[logging.StreamHandler()]) |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
42 else: |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
43 if isinstance(args.log, str): |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
44 logging.basicConfig(filename=f'{args.log}', filemode='w', |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
45 format=logging_format, level=level, force=True) |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
46 elif isinstance(args.log, io.TextIOWrapper): |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
47 logging.basicConfig(filemode='w', format=logging_format, level=level, |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
48 stream=args.log, force=True) |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
49 else: |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
50 raise(ValueError(f'Invalid argument --log: {args.log}')) |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
51 stream_handler = logging.StreamHandler() |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
52 logging.getLogger().addHandler(stream_handler) |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
53 stream_handler.setLevel(logging.WARNING) |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
54 stream_handler.setFormatter(logging.Formatter(logging_format)) |
49
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
55 |
70
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
56 # Log command line arguments |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
57 logging.info(f'input_file = {args.input_file}') |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
58 logging.info(f'image_type = {args.image_type}') |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
59 logging.info(f'image_index = {args.image_index}') |
49
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
60 logging.debug(f'log = {args.log}') |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
61 logging.debug(f'is log stdout? {args.log is sys.stdout}') |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
62 |
70
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
63 # Instantiate Tomo object |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
64 tomo = Tomo(galaxy_flag=args.galaxy_flag) |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
65 |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
66 # Read input file |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
67 data = tomo.read(args.input_file) |
97c4e2cbbad9
planemo upload for repository https://github.com/rolfverberg/galaxytools commit b891edb4a5881959112ff276f7696bbc36dcea33
rv43
parents:
49
diff
changeset
|
68 print(f'data:\n{data}') |
49
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
69 |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
70 if __name__ == "__main__": |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
71 __main__() |
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
rv43
parents:
diff
changeset
|
72 |