|
|
| GeoCommunity Mailing List |
| |
| Mailing List Archives |
| Subject: | Re: [gislist] 90 degrees |
| Date: |
07/08/2004 12:45:01 PM |
| From: |
Quantitative Decisions |
|
|
At 07:05 AM 7/8/2004 +0000, Pradeep Kumar wrote: >I am trying to find a tool which makes all the corners of polygons or >polylines 90 degrees in ArcView.
Easy enough: rasterize these features, then convert the raster image back to vector format by tracing the outlines of the cells. ArcView with its Spatial Analyst extension will do this quickly.
That's usually not a nice solution, though: it forces all lines to be isothetic (parallel to the coordinate axes, meaning they must be exactly right-left or up-down), and it can add many unwanted vertices.
To clean up digitized vector features, one wants a solution that * Maintains the shape as closely as possible * Moves the vertices as little as possible * Does not create or remove vertices * Allows for non-isothetic right angles.
This can be accomplished by solving a constrained optimization problem. As examples of constraints, one could require that the low-order moments (such as the centroid of the vertices and their second moments) not be changed, or that the area be preserved. These constraints are needed because the angles alone do not determine the position or size of the feature. The function to optimize must take its minimum when all angles are multiples of 90 degrees. A good choice is the sum of squares of sines of twice the angles. To this you can add some multiple of the sum of squared distances the vertices are moved so that the overall appearance of the shape is preserved as much as possible. The multiple is a "tuning parameter" that lets you balance the twin objectives of creating right-angled vertices while only slightly moving the vertices. Although this problem is strongly nonlinear, it is pretty well behaved (convex, differentiable, etc.), and so is not difficult to solve, despite the potentially large number of variables (two for each vertex).
Others have asked this question before (twice in 2001 on the ArcView-L list server). At the time I created an Excel spreadsheet to test and illustrate the optimization approach. The spreadsheet uses Excel's Solver add-in to find a solution. In tests with small realistic figures, and with some artificial figures (like circles, so that we are attempting to "square the circle"), it does very well. For your benefit, it will be available briefly on my Web site at http://www.quantdec.com/misc/arcview/squaring_polygons.xls .
For a full-blown industrial-strength implementation I recommend using a nonlinear solver, such as that available from IMSL, and packaging it as a DLL.
--Bill Huber Quantitative Decisions
_______________________________________________ gislist mailing list gislist@lists.geocomm.com http://lists.geocomm.com/mailman/listinfo/gislist
_________________________________ This list is brought to you by The GeoCommunity http://www.geocomm.com/
Get Access to the latest GIS & Geospatial Industry RFPs and bids http://www.geobids.com
|
|

Sponsored by:

For information regarding advertising rates Click Here!
|