-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add option to export to CSV via sleap-convert and API #1730
Changes from 5 commits
db7f3d4
3ecc99a
c4fb39e
c998d3d
d2b658c
0b51fea
85d122c
9eb4270
ff7ee51
f7929a2
821d114
3eeb9fd
b4bdca1
79d0654
e508587
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -70,6 +70,7 @@ def create_parser(): | |||||||||||||||||||||||||||||
help="Output format. Default ('slp') is SLEAP dataset; " | ||||||||||||||||||||||||||||||
"'analysis' results in analysis.h5 file; " | ||||||||||||||||||||||||||||||
"'analysis.nix' results in an analysis nix file;" | ||||||||||||||||||||||||||||||
"'analysis.csv' results in an analysis csv file;" | ||||||||||||||||||||||||||||||
"'h5' or 'json' results in SLEAP dataset " | ||||||||||||||||||||||||||||||
"with specified file format.", | ||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||
|
@@ -105,6 +106,7 @@ def main(args: list = None): | |||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||
parser = create_parser() | ||||||||||||||||||||||||||||||
args = parser.parse_args(args=args) | ||||||||||||||||||||||||||||||
print(args) | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
video_callback = Labels.make_video_callback([os.path.dirname(args.input_path)]) | ||||||||||||||||||||||||||||||
try: | ||||||||||||||||||||||||||||||
|
@@ -135,7 +137,12 @@ def main(args: list = None): | |||||||||||||||||||||||||||||
outnames = [path for path in args.outputs] | ||||||||||||||||||||||||||||||
if len(outnames) < len(vids): | ||||||||||||||||||||||||||||||
# if there are less outnames provided than videos to convert... | ||||||||||||||||||||||||||||||
out_suffix = "nix" if "nix" in args.format else "h5" | ||||||||||||||||||||||||||||||
if "nix" in args.format: | ||||||||||||||||||||||||||||||
out_suffix = "nix" | ||||||||||||||||||||||||||||||
elif "csv" in args.format: | ||||||||||||||||||||||||||||||
out_suffix = "csv" | ||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||
out_suffix = "h5" | ||||||||||||||||||||||||||||||
Comment on lines
+139
to
+144
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Refactor the logic for determining the output file suffix into a separate function to improve code readability and maintainability. + def determine_output_suffix(format_arg: str) -> str:
+ if "nix" in format_arg:
+ return "nix"
+ elif "csv" in format_arg:
+ return "csv"
+ else:
+ return "h5"
- if "nix" in args.format:
- out_suffix = "nix"
- elif "csv" in args.format:
- out_suffix = "csv"
- else:
- out_suffix = "h5"
+ out_suffix = determine_output_suffix(args.format) Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||
fn = args.input_path | ||||||||||||||||||||||||||||||
fn = re.sub("(\.json(\.zip)?|\.h5|\.slp)$", "", fn) | ||||||||||||||||||||||||||||||
fn = PurePath(fn) | ||||||||||||||||||||||||||||||
|
@@ -158,6 +165,20 @@ def main(args: list = None): | |||||||||||||||||||||||||||||
NixAdaptor.write(outname, labels, args.input_path, video) | ||||||||||||||||||||||||||||||
except ValueError as e: | ||||||||||||||||||||||||||||||
print(e.args[0]) | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
elif "csv" in args.format: | ||||||||||||||||||||||||||||||
from sleap.info.write_tracking_h5 import main as write_analysis | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
for video, output_path in zip(vids, outnames): | ||||||||||||||||||||||||||||||
write_analysis( | ||||||||||||||||||||||||||||||
labels, | ||||||||||||||||||||||||||||||
output_path=output_path, | ||||||||||||||||||||||||||||||
labels_path=args.input_path, | ||||||||||||||||||||||||||||||
all_frames=True, | ||||||||||||||||||||||||||||||
video=video, | ||||||||||||||||||||||||||||||
csv=True, | ||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||
from sleap.info.write_tracking_h5 import main as write_analysis | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove the debug print statement to maintain a clean and professional codebase.
- print(args)
Committable suggestion