Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have a number of drawings which I converted into geodatabase feature classes. Most drawings are composed or connected 3D polylines from which I want to construct TIN surfaces and multipatch features. In order to clip the TIN I also need to have the exact footprint. How I normally do it is to manually select the perimeter polylines which I then merge into one perimeter and convert to polygon. This works but is extremely time consuming because I often have to manually select 100s of polylines without missing a single connecting line. Can I somehow run a spatial selection to only select the polylines that form the ultimate perimeter?

Below is a typical example - i need to select only the perimeter polylines: enter image description here

share|improve this question

2 Answers 2

up vote 1 down vote accepted

There exist efficient vector-based algorithms, but coding them in ArcGIS might be rather fiddly. Consider a raster-based approach as an alternative. (This suggestion is inspired by the idea that all you really need is an area fill from the exterior, which will be halted at every boundary polyline segment, thereby selecting the desired polylines.)

Prepare for the calculation by setting a generous analysis extent around the features so that the largest white portion is the external one. If possible, make the cellsize so small that it successfully resolves all polylines near the boundary, but large enough to keep the grids down to a manageable size. (Failure to resolve tightly packed internal polylines should not be a problem.) In this image I estimate a cellsize of about 1/1000 of either dimension would work.

After converting the polylines to a raster format (step 1), use that to create a grid of the exterior polygon only (step 2). (One way: pick the largest component of the RegionGroup of the complement of the polyline cells.) Create a Euclidean distance grid for the exterior polygon (step 3): this will be zero throughout the exterior and increase towards the inside of the figure. Now, the coup de grace: compute zonal statistics of the Euclidean distance, using the polyline identifiers as zones (step 4). This can be output as a table which you then join back to the polylines. Select those polygons with sufficiently small zonal maxima (no greater than Sqrt(2) times the cellsize) or with sufficiently small zonal minima (step 5).

In the first case (zonal max) you might miss any polyline which happens to include part of the boundary but also contains a portion winding into the interior. In the second case (zonal min) you might accidentally pick up a few interior polylines that get really close to the boundary. (It's impossible to tell from the example which case is appropriate for these data, but either one will represent a huge simplification of the problem.)

share|improve this answer
    
Thanks. Good approach. Yes, it will likely pick up some interior lines and after going through this selection manually I can confirm that there were in fact a few exterior dangling lines as well. This shouldn't matter as I developed a crude process for locating these tiny exterior and interior lines. (i merge and explode - small non continuous lines will separate - when I remove and repeat the process and explode yields only one continuous line then i have the perimeter.) Your approach will certainly speed up the process. Thanks –  Jakub Jul 23 '12 at 17:57

Search for concave hull of the geoprocessing website http://resources.esri.com/geoprocessing/

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.