Download Comparative Analysis of Programming Languages

Transcript
operations: overlap, within, intersect,
etc. With successful use of the relational
operator function, the random point
function was obtainable – draw random
points until the exact desired number of
points fall within the target area.
A brief outline of the original
point/hexagon tool is stated here:
The ArcView 3.3 tool worked by
selecting a polygon in ArcView, then
processing was done on the selection.
The ArcMap tool was developed to start
with a shapefile containing polygons.
The entire group of polygons served as
the input for processing.
Therefore, porting the tool to a
command line program that accepts
parameters such as shapefile name,
distance between points, and output file
name could easily be done. From there,
the tool could be integrated into
ArcToolbox and Model Builder.
Previous coursework at Saint Mary’s
University of Minnesota created a
toolbox that contained examples of a
command line script that received its
parameters from ArcToolbox, thus
proving it can be done.
During the development of the
VBA code, there was difficulty with
implementation of the relational operator
function, so an alternate plan was
devised: draw a “blanket” of points and
hexagons larger than the target area, and
use the ArcToolbox tools to clip the
points and hexagons that fell within the
target area.
Discussions with the DNR
resulted in some new ideas and example
code using the relational operator,
eliminating the need to perform the clip
operations. The example code provided
many interesting ideas, but the code
ended up not being used. Eventually,
after experimentation inspired by the
example code, the relational operator
became workable. With the relational
operator successfully implemented, as
each point or hexagon is generated, the
relational operator method asks: “Does it
overlap the target area?” If it does, the
feature is saved, otherwise it is ignored.
The actual implementation asked “not
disjoint” which covered all “true”
1. Get extent of the target area
2. Get user input on how far apart
to put the points
3. Add a small amount to the
extent, to make it bigger
4. Create blanket of points over
adjusted extent
5. If hexagons are requested, draw
hexagons over adjusted extent
6. Call clip tools to clip points
7. Call clip tools to clip hexagons
exactly by target area [clipped
hexagons]
8. Call clip tools to do spatial join
of hexagons to target area
[complete hexagons]
After implementing the relational
operator, the logic changed slightly:
1. Create relational operator on
target area
2. Get user input on how far apart
to put the points
3. Create blanket of points over
adjusted extent
4. If hexagons are requested, draw
hexagons over adjusted extent
5. If relational operator is not
disjoint, save feature
The triangle points are the vertices of
the hexagons. Generating the points in
this manner do not use the trigonometry
functions which require much more
processing time. Instead, alternate rows
of points are offset by half the distance
3