source: inundation/ga/storm_surge/alpha_shape/wiki/software_requirements_specification.txt @ 642

Last change on this file since 642 was 565, checked in by duncan, 20 years ago

update

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