Points to Polygon "Footprint"

8387
26
04-22-2010 09:18 AM
AndrewBar
New Contributor
I have a large point feature class.  I need to produce a polygon that is identical to the x-y "footprint" of the points.  I could manually find the boundary points and digitizing these as the polygon vertices...but I have 10s of thousands of points so this is impractical.  Any ideas?  Using ArcMap 9.3 with all available extensions.  Thanks!
0 Kudos
26 Replies
DarshaHardy
New Contributor II
Just been experimenting

Create a 'background' shape, say a big rectangle bigger than the extent of you points
Create a tin
Use the tin to cut a hole in the background shape to create an 'outside' polyon
Start editing the tin
Select by location, select features in the tin layer that share an edge with the 'outside' polygon
Delete those features
Save and stop editing
Should be left with a concave outlined shape
Dissolve the individual triangular polygons to be left with a single polygon
0 Kudos
DanPatterson_Retired
MVP Emeritus
similar approaches have been proposed before
http://forums.esri.com/Thread.asp?c=93&f=982&t=191468&mc=11#569228
however, they require extra cost extensions (ie 3D analyst etc)
0 Kudos
ChrisMathers
Occasional Contributor III
How exact does it need to fit? If you can get by with a rectangle around all of it just do a feature to envelope.
0 Kudos
AndrewBar
New Contributor
A really appreciate everyone taking time to offer their suggestions.  However, so far I haven't gotten a working solution to my problem.  My problem is more complex than I thought.  I will describe my problem in detail with the hopes of a creative solution from the community. 

I have an unordered point feature class which derives from a 3D laser scan of a tooth (see attached pdf "tooth3d"  for an arcscene view of the points).  I am trying to create a DEM of the tooth surface to do topographic analysis on the shape of the tooth surface which contacts the food.  My biggest huge problem is that a DEM needs 1 Z value per raster cell, so I cannot have any undercuts, or the DEM produces meaningless gibberish.

The tooth was oriented precisely at scan time such that the relevant surface is visible when viewed from the top.  Thus, when this point cloud is viewed directly from above, down the Z axis (as in ArcMap, see attached jpeg "points_topdown") the boundary points of this cloud can be thought of as the vertices of a polyline Z feature class.  The points which are above this polyline need to be in my DEM, the points below this polyline need to be discarded.  I also need a polygon "footprint" this boundary to use as an analysis mask when I analyze the DEM.

I need help (1) efficiently identifying these boundary points and (2) subsequently eliminating points which fall below this polyline (NOTE: boundary points will not have constant Z value, so this is not trivial) and (3) constructing a concave footprint polygon to use as an analysis mask.

I realize this is a lot to ask....I can only hope someone's interest is piqued by a full description of the problem.

Thanks again for your help!
0 Kudos
ChrisMathers
Occasional Contributor III
LiDAR of a tooth. Awesome. Ive always wanted to do this for my hand and make a topo of it. Talk about a neat poster for the UC this summer.

More to the point, since you can view the X and Y of each point, sort by the X field in your table and grab the first and last records. Those are the far left and far right points. Do the same on the Y field to get the top and bottom most points. Im not sure about dropping Zs below that poly because I dont do much with DEMs but that will at least give you your bounding points. I would think once you have those Zs (and averaged them?) you can just do a select by attributes to get all "Z" < AveragedMinZ. You can extrapolate a pig surface using the slope of the poly made by those 4 points using some 3D analyst tools I think. And from there, there may be a way to grab everything higher than the surface with 3D analyst or ArcScene. I havnt used 3D Analyst in 3 years so Im not sure but that sounds like something you could do. Try posting in the ArcGIS - Extentions board as well.
0 Kudos
Z__NahideAydin
New Contributor II
Hi!

I also tried this with the methods in ArcGIS and ArcObjects but I never got results satisfying me.

Perhaps it's too late but I found a way and I'm doing following to create a boundary polygon:

1) You have an input point cloud (for better performance --> MULTIPOINT)
2) Create a TIN --> 3D Analyst
3) Modify the TIN with your point cloud data --> 3D Analyst
4) Delineate TIN data area with a max_edge_length as parameter (this depends on the distance between your input points, e.g. I'm using 5m) and parameter "PERIMETER_ONLY" --> 3D Analyst
5)  Use TIN Polygon Tag --> 3D Analyst
6)  Now you should have a nice and very detailed boundary polygon around your point cloud!!!

If you have any questions please let me know!

Best regards

Thomas


I've just tried your method with the lidar data we had and it worked after couple of tries (for the maximum length part). Thank you very much you've saved me a lot of headache.

Nahide Aydin
Statistical Research Inc.
0 Kudos
JaneHogben
New Contributor III
I have had similar problems in attempting to get the boundary of an irregular point shapefile. The following works for me:

1. Attribute points with a constant
2. Point to Raster with a small grid size
3. Raster to Polygon in Conversion/From Raster toolbox

This even captures islands or holes inside the point data. If you have problems attributing the points with a constant you could use TextPad or something that can cope with large amounts of data. Also making the raster constant may not even be necessary but I have always done it that way.

Unfortunately for me I do not have 3D or spatial analyst. I use ET Surface to create the constant raster, and Global Mapper to create the DEM which I then clip using my polygon extent (also with ET). If you having spatial or 3D you could also use the raster calculator to merge/union or add the two rasters which limits the boundary to the smallest input.

Now the biggest issue is xyz/asc to shapefile...also do this in Global Mapper!

Cheers
Jane
0 Kudos
JoeWheaton
New Contributor
Dan nailed the problem, what you really want is a CONCAVE HULL not a CONVEX HULL. 
if the points are sequential, then look at ET Geowizards for tools to convert points to poly* features, if the features are not sequential and you want some of the concavity to be maintained then you are looking for a concave hull for which there is no existing tools within the Arc environment.  if the pattern is something else, perhaps a illustrative picture might generate some ideas


As Dan suggested, a picture here would help. This is stolen from: http://ubicomp.algoritmi.uminho.pt/local/concavehull.html.
This is what a convex hull would do to a typical XYZ point cloud:

Whereas this is what you really want (a concave hull):


I don't know of any solution with ArcGIS to do this. However, the same guys who made the figures above have made a web application that does this called Concave Hull Online. Unfortunately, the application requires that your input file is just a list of x,y points (doesn't take shape files or geodatabases), and then the output is just an ordered list. However, it does create a proper concave hull. Seems like a good think to suggest to ESRI for future releases or for one of us to actually write a script for...
0 Kudos
JustinPreikschas
New Contributor
0 Kudos
BruceHarold
Esri Regular Contributor
All

Please also see:

http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=AA23C5C6-1422-2418-8811-13652...

There is a model variable (not exposed as a parameter) that will let you play with the number of nearest neighbours for the hull boundary, controlling smoothness.

Regards
0 Kudos