Skip to content

Commit 5c1b9ce

Browse files
committed
Final file update for final class project. Sample data included.
1 parent 9635b26 commit 5c1b9ce

18 files changed

+544
-58
lines changed

Students/ASimmons/code_class_project/README.md

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,37 @@ Using the following Python packages:
1919
1) Fiona (1.4+) [1]
2020
2) Shapely (1.3+) [2]
2121

22-
I propose to follow the steps outlined in M. Bostock's "How To Infer Topology" [3] to design
23-
a 'PreserveTopology' module that will identify topological elements in a LineString or
24-
MultiLineString shapefile (and possibly Polygon/Multipolygons...time allowing).
22+
Final Project (12/12/14) Update: I followed the steps outlined in M. Bostock's "How To Infer Topology" [3]
23+
to design a 'PreserveTopology' module that will identify topological elements in a LineString and/or
24+
MultiLineString shapefile. Combined with two other classes (written by me awhile ago) called GeomSimplify()
25+
and TriangleCalculator(), a user can call my simplify_topology.py library from command line and
26+
create a simplified version of any LineString or MultiLineString shapefile.
2527

26-
As described in the article, the primary work that I will undertake will include:
28+
The primary work that I completed includes:
2729

2830
1) identify junctions (intersection points) in LineString/MultiLineString shapefiles
29-
2) split (and rotate) geometric 'arcs' at their junction points.
30-
3) delete duplicate geometric 'arcs' that have no junction points but lie directly
31-
on top of an identical geometric feature.
31+
2) split geometric 'arcs' at their junction points (note: I decided for MultilineStrings and Linestrings
32+
the need to de-duplicate geometric 'arcs' was unnecessary. However, it will have to be done
33+
in order to complete the code for Polygon and MultiPolygon shape types).
34+
3) complete 10 unittests which tested the functionality of the PreserveTopology() class.
3235

3336

3437
Key points to note:
3538

36-
- Other work that M. Bostock notes as being necessarary
37-
(...namely: "extract - decompose shapes into lines and rings"...) has already been
38-
undertaken in a previous code I wrote here: [4].
39-
- All functions will include test code.
40-
- to run from command line: python simplify_topology.py <input file>
39+
- All the code within the GeomSimplify() and TriangleCalculator() classes was undertaken
40+
in a previous code I wrote here: [4] and should NOT be counted as part of my class project.
41+
- All functions that were drafted as part of this class project have test functions. Test
42+
functions for code that WASN'T part of the project (i.e. the GeomSimplify() and TriangleCalculator()
43+
class is included at this repo [4].
44+
- to run from command line: python simplify_topology.py <input file path> <output file path> <threshold> Topology=<True> or <False>
45+
- the 'sample_lines.shp' included is a test file. When ran through this code with the Topology
46+
flag set to 'True' it created 'sample_lines_TopoTrue':
47+
48+
python .\simplify_topology.py .\sample_lines.shp .\sample_lines_TopoTRUE 10000000 True
49+
50+
When ran with this code with the flag set to 'False' it created 'sample_lines_TopoFALSE':
51+
52+
Python .\simplify_topology.py .\sample_lines.shp .\sample_lines_TopoTRUE 10000000 False
4153

4254
References:
4355

@@ -46,7 +58,7 @@ References:
4658
3: http://bost.ocks.org/mike/topology/
4759
4: https://github.com/ARSimmons/Shapely_Fiona_Visvalingam_Simplify
4860

49-
*NOTE: THIS PROJECT IS STILL in progress as of 11/23/2014*
61+
*NOTE: THIS PROJECT IS turned in for code review on 12/12/2014*
5062

5163
</body>
5264
</html>

0 commit comments

Comments
 (0)