4 Replies Latest reply on Apr 28, 2012 12:50 PM by Hardolph

    Trying to divide a large amount of polygons with a single line shapefile

      I am a Student with a relatively intermediate skill set when it comes to GIS.

      I was wondering if there is any good way to split or divide a large number of (~4000) polygons at the same time using a single line shapefile.

      Essentially I have a boundary and a number of polygons that cross that boundary. In order to create a weighted average of different attributes within these polygons I would like to "divide" them into two parts. What I really need to do is calculate the area of side A and side B of each polygon AB, so if there is a way to do this besides "dividing" the polygons maybe that would work as well. I have tried a number of different geoprocessing tools so far but have been unsuccessful in having all or a large group of polygons "divide" at the same time. Please see below for visual.


      Any help of suggestions would be greatly appreciated, however I have very little knowledge of how to use Python.

      Thanks again,
        • Re: Trying to divide a large amount of polygons with a single line shapefile
          There is a sample tool called Divide At Line that you can download from the Geoprocessing Model and Script Tool Gallery.

          Divide At Line

          This essentially does a few overlay operations to split the geometries and attributes at either a drawn line or a line layer. The attributes in the output will be divided proportionally by the area of the new geometries divided by the area of the original geometry.

          A key part of this analysis is the use of the Ratio policy option of the Make Feature Layer (Management) tool. You can learn about that here.

          Good luck!
          Drew -Esri
          • Re: Trying to divide a large amount of polygons with a single line shapefile
            1.) Convert polygon to line (Feature to Line - requires ArcInfo)
            2.) Append or Merge together
            3.) Convert back to polygon (Feature to Polygon - requires ArcInfo)

            ...probably other ways, too.
            • Re: Trying to divide a large amount of polygons with a single line shapefile
              Feature to Polygon tool (requires ArcInfo) alone should produce new polygons from your input line and polygons (as multiple inputs).
              • Re: Trying to divide a large amount of polygons with a single line shapefile

                For ArcView 9.3 or 10, the simplest and most complete way I can suggest for doing both the split of your polygons and calculating the ratio is to use the standard EDITOR toolbar Task:  "Cut Polygon Features" http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Splitting_polygon_features  with a merged copy of the polylines in the shapefile/FC as a cutting feature and importantly transfer your polygon shapefile to a Geodatabase Feature class, set up a numeric attribute range domain in the GDB with a SPLIT Policy called Geometry Ratio  http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=An_overview_of_attribute_domains.  This domain can be applied to area and other numeric attribute fields to proportionately divide the attribute values based on the proportions of the split.  Of course the shape geometry of the polygons will be automatically calculated in a Feature Class anyway so if all you are looking for is area that will be present and you can do it without getting into domains.   To calculate the ratio of one side vs. the other you would map the Shape_Area field of your original pre-split polygons into a non-domain controlled field to be retained in both splits as a simple attribute and then run Field Calculator in the attribute table to calculate a ratio of the split area (or the Shape_Area) to the original area in a new field. 


                1. Create a File Geodatabase with a numeric range domain with the Geometry ratio split policy and import your shapefile to new Feature Class with whatever fields you want controlled by the domain for proportional splitting purposes and just set the range big enough to cover all of them. 
                2. Add a new field to the polygon FC and and populate it with the SHAPE_AREA field using Field Calculator.
                3. set up a scratch polyline file in ArcCatalog and bring into your map
                4. Start an EDITOR session with Task: Create New Features and Target: the scratch FC5. select all the polylines that you want to use as splitters, whether from one shapefile or Feature Class or many (can be in different workspaces too)
                6. with the edit tool on the map Right-Click COPY and Right-Click PASTE (makes a safe copy of the lines geometry in your scratch polyline FC)
                7. leave the lines selected and hit EDITOR >> Merge and choose any feature as the merge to feature for symbology (it does not matter)
                8. Change to TASK: CUT POLYGON FEATURES and Target: the new POLYGON FC.
                9. Select the polygons to be split either in the attribute table or on screen (this will activate the SKETCH tool (pencil) in the EDITOR toolbar)
                10. select the SKETCH tool and hover over any part of the Merged Polylines (to be sure I set snapping on the polyline FC and MapTips will show when it is being hovered over or snapped to)
                11. Right-click and hit REPLACE SKETCH and then F-2 or Right-Click and Finish Sketch.

                you will now have split the whole works of polygons and can go into the Polygon attribute table and to do the area ratio calculations using either the domain controlled fields with the Geometry Ratio split policy or add a new field and use Field Calculator to find the ratio of the  SHAPE_AREA / "original area" fields.

                You could also do this with just a shapefile by using Calculate Geometry on a new numeric field and storing away the AREA then doing that again in the SPLIT shapefile and calculating the ratio but this would do nothing for other numeric attributes that you might want to proportionately split.

                That's quite a few steps but most of it is standard procedures that you can find in help files (except perhaps the merged polyline cutter).

                if you need any clarification, don't hesitate to post again