summaryrefslogtreecommitdiff
path: root/research/colorspace/csv_to_svg_path.py
diff options
context:
space:
mode:
Diffstat (limited to 'research/colorspace/csv_to_svg_path.py')
-rwxr-xr-xresearch/colorspace/csv_to_svg_path.py43
1 files changed, 0 insertions, 43 deletions
diff --git a/research/colorspace/csv_to_svg_path.py b/research/colorspace/csv_to_svg_path.py
deleted file mode 100755
index 5f638ed..0000000
--- a/research/colorspace/csv_to_svg_path.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python3
-import textwrap
-
-def svg_path_from_points(points, r):
- points_joined = ' '.join(f'{x:.6f} {y:.6f}' for x, y in points)
- return textwrap.dedent(f'''
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- version="1.1"
- width="{r*2}mm"
- height="{r*2}mm"
- viewBox="0 0 {r*2} {r*2}"
- id="svg2">
- <g id="layer1">
- <path id="path2991"
- style="fill:none;stroke:#000000;stroke-width:0.1mm;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 0,0 L {points_joined}" />
- </g>
- </svg>
- ''').strip()
-
-if __name__ == '__main__':
- import argparse
- parser = argparse.ArgumentParser()
- parser.add_argument('locus_csv', help='CSV file containing locus coordinates. Format: lambda, x, y, z.')
- parser.add_argument('-r', '--radius', type=float, default=100, help='Radius of plot area in mm')
- args = parser.parse_args()
-
- import csv, ast
- points = []
- with open(args.locus_csv, newline='') as f:
- for row in csv.reader(f):
- # use literal_eval to handle entries like "1.153E-5"
- λ, x, y, z = (ast.literal_eval(e.strip()) for e in row)
- points.append((x*args.radius*2, y*args.radius*2))
-
- print(svg_path_from_points(points, args.radius))