Source code for grid_convert_boundary_to_svg

#!/usr/bin/env python
import numpy as np


[docs] def main(): print('Loading boundaries.dat file') boundaries = np.loadtxt('boundaries.dat') # translate offset_x = np.min(boundaries[:, 0]) offset_y = np.min(boundaries[:, 1]) width = boundaries[:, 0].max() - boundaries[:, 0].min() height = boundaries[:, 1].max() - boundaries[:, 1].min() path_d = 'M ' for (x, y, rtype) in boundaries: # note reversed y-coordinates due to svg-coordinate origin in the upper # left corner path_d += ' {:.4f},{:.4f}'.format(x - offset_x, -y + offset_y + height) path_d += ' Z' filename = 'out.svg' with open(filename, 'w') as fid: fid.write( '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n' ) fid.write('<svg\n') fid.write('width="{}mm"\n'.format(width)) fid.write('height="{}mm"\n'.format(height)) fid.write('viewBox="0 0 {} {}"\n'.format(width, height)) fid.write('crtomo_offset_x="{}"\n'.format(offset_x)) fid.write('crtomo_offset_y="{}"\n'.format(offset_y)) fid.write('crtomo_width="{}"\n'.format(width)) fid.write('crtomo_height="{}"\n'.format(height)) fid.write('version="1.1"\n') fid.write('id="svg5"\n') fid.write(' xmlns="http://www.w3.org/2000/svg"\n') fid.write(' xmlns:svg="http://www.w3.org/2000/svg">\n') fid.write(' <defs\n') fid.write(' id="defs2" />\n') fid.write('<g\n') fid.write('id="boundary">\n') fid.write('<path\n') fid.write( 'style="fill:none;stroke:#000000;stroke-width:0.264583px;' ) fid. write( 'stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"\n' ) fid.write('d="{}"\n'.format(path_d)) fid.write('id="mesh_outline" />\n') fid.write('</g>\n') fid.write('</svg>\n') print('Output .svg file written to: {}'.format(filename))