1 | import numpy as np
|
---|
2 |
|
---|
3 |
|
---|
4 | def expwrite(contours, filename):
|
---|
5 | """EXPWRITE - write an Argus file from a dictionary given in input
|
---|
6 |
|
---|
7 | This routine writes an Argus file from a dict containing the fields:
|
---|
8 | x and y of the coordinates of the points.
|
---|
9 | The first argument is the list containing the points coordinates and the
|
---|
10 | second one the file to be written.
|
---|
11 |
|
---|
12 | Usage:
|
---|
13 | expwrite(contours, filename)
|
---|
14 |
|
---|
15 | Example:
|
---|
16 | expwrite(coordstruct, 'domainoutline.exp')
|
---|
17 |
|
---|
18 | See also EXPDOC, EXPREAD, EXPWRITEASVERTICES
|
---|
19 | """
|
---|
20 |
|
---|
21 | fid = open(filename, 'w')
|
---|
22 | for x, y in zip(contours['x'], contours['y']):
|
---|
23 | if len(x) != len(y):
|
---|
24 | raise RuntimeError('contours x and y coordinates must be of identical size')
|
---|
25 |
|
---|
26 | if 'name' in contours:
|
---|
27 | fid.write('{}{}\n'.format('# Name:', contours['name']))
|
---|
28 | else:
|
---|
29 | fid.write('{}{}\n'.format('# Name:', filename))
|
---|
30 |
|
---|
31 | fid.write('{}\n'.format('## Icon:0'))
|
---|
32 | fid.write('{}\n'.format('# Points Count Value'))
|
---|
33 | if 'density' in contours:
|
---|
34 | if isinstance(contours['density'], int):
|
---|
35 | fid.write('{} {}\n'.format(np.size(x), contours['density']))
|
---|
36 | else:
|
---|
37 | fid.write('{} {}\n'.format(np.size(x), 1.))
|
---|
38 | else:
|
---|
39 | fid.write('{} {}\n'.format(np.size(x), 1.))
|
---|
40 | fid.write('{}\n'.format('# X pos Y pos'))
|
---|
41 | for xi, yi in zip(x, y):
|
---|
42 | fid.write('%10.10f %10.10f\n' % (xi, yi))
|
---|
43 | fid.write('\n')
|
---|
44 |
|
---|
45 | fid.close()
|
---|