1 | Alpha Shapes Software Requirements Specification |
---|
2 | By Duncan Gray |
---|
3 | |
---|
4 | $Revision:$ |
---|
5 | $Date:$ |
---|
6 | |
---|
7 | INTRODUCTION |
---|
8 | |
---|
9 | The alpha shape is a generalization of the convex hull of a point |
---|
10 | set. For alpha = infinity, the alpha-shape is the convex hull of S. As |
---|
11 | alpha decreases, the alpha-shape shrinks and develops cavities, as |
---|
12 | soon as a sphere of radius sqrt( alpha) can be put inside. Finally, |
---|
13 | for alpha = 0, the alpha-shape is the set S itself. The construction |
---|
14 | of a boundary like this manually, by joining the dots is time |
---|
15 | consuming, especially for large problems involving tens of thousands |
---|
16 | of points. |
---|
17 | |
---|
18 | OVERALL DESCRIPTION |
---|
19 | |
---|
20 | The software will mainly be used to determine a border around a set of |
---|
21 | points. This is time consuming manually and is needed to define the |
---|
22 | boundary of a simulation. |
---|
23 | |
---|
24 | DEFINITIONS |
---|
25 | |
---|
26 | CONSTRAINTS |
---|
27 | |
---|
28 | C1 - It will be written in python (or have a python interface). |
---|
29 | C2 - It will work as a stand-alone application and as a python module. |
---|
30 | |
---|
31 | REQUIREMENTS |
---|
32 | R1 - Input co-ordinate values for a list of points. |
---|
33 | |
---|
34 | R2 - Output a boundary/polygon that all the input points are |
---|
35 | within. [This could be a list of point indexes pairs] |
---|
36 | |
---|
37 | R3 - Ability to find and apply the optimum alpha parameter. |
---|
38 | [What is optimum? Maybe the smallest alpha parameter the encompass |
---|
39 | all points in the same polygon?] |
---|
40 | R3.1 - Optionally a specified alpha parameter is applied. |
---|
41 | |
---|
42 | R4 - Be able to handle large data sets ( eg 100,000 - 500,000 ) |
---|
43 | |
---|
44 | |
---|
45 | DEVELOPMENT |
---|
46 | |
---|
47 | A recomended data structure are arrays in Numeric. |
---|
48 | The C program 'triangle' could be an option for mesh generation. |
---|
49 | A unit test harness will also be developed. This should be based on |
---|
50 | the pyvolution unit test harnessess. |
---|
51 | |
---|
52 | ISSUES |
---|
53 | |
---|
54 | What sort of repository? Subversion or CVS? Hopefully subversion is ok. |
---|