<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic split circle into 6 equal parts in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/split-circle-into-6-equal-parts/m-p/2968#M249</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have a circle polygon feature class.&amp;nbsp; How do I split each circle into six equal parts. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;any idea or code is highly appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 06 Sep 2011 20:21:53 GMT</pubDate>
    <dc:creator>JinMa</dc:creator>
    <dc:date>2011-09-06T20:21:53Z</dc:date>
    <item>
      <title>split circle into 6 equal parts</title>
      <link>https://community.esri.com/t5/python-questions/split-circle-into-6-equal-parts/m-p/2968#M249</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have a circle polygon feature class.&amp;nbsp; How do I split each circle into six equal parts. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;any idea or code is highly appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Sep 2011 20:21:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/split-circle-into-6-equal-parts/m-p/2968#M249</guid>
      <dc:creator>JinMa</dc:creator>
      <dc:date>2011-09-06T20:21:53Z</dc:date>
    </item>
    <item>
      <title>Re: split circle into 6 equal parts</title>
      <link>https://community.esri.com/t5/python-questions/split-circle-into-6-equal-parts/m-p/2969#M250</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Interesting question! I'm sure people with more experience might be able to help you a bit more.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My first thought would be to run through each row using &lt;/SPAN&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//000v00000039000000"&gt;arcpy.SearchCursor&lt;/A&gt;&lt;SPAN&gt;, and collect:&lt;/SPAN&gt;&lt;BR /&gt;&lt;UL&gt;&lt;BR /&gt;&lt;LI&gt;Shape Area&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;Centroid Position&lt;/LI&gt;&lt;BR /&gt;&lt;/UL&gt;&lt;SPAN&gt;I believe both of these are available as properties inside the Shape Field.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Once you have those, you can find the Circle's radius by using Python's &lt;/SPAN&gt;&lt;A href="http://docs.python.org/library/math.html"&gt;Math Module&lt;/A&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import math&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;radius = math.sqrt(area / math.pi)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then, you could use &lt;/SPAN&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Polyline/000v000000n2000000/"&gt;arcpy.Polyline&lt;/A&gt;&lt;SPAN&gt; to construct a feature for each circle that includes 5 lines whose first node is on the centroid and whose length is a little more than the radius, at angles of 60, 120, 180, 240 and 300.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It's probably not the quickest way, but it should get the job done. I hope this helps!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Sep 2011 17:14:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/split-circle-into-6-equal-parts/m-p/2969#M250</guid>
      <dc:creator>MarcNakleh</dc:creator>
      <dc:date>2011-09-14T17:14:50Z</dc:date>
    </item>
    <item>
      <title>Re: split circle into 6 equal parts</title>
      <link>https://community.esri.com/t5/python-questions/split-circle-into-6-equal-parts/m-p/2970#M251</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, math

arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"C:\GIS\Temp\test.gdb"
tempworkspace = arcpy.env.workspace
in_poly_fc = r"C:\GIS\Temp\test.gdb\CirclesFeatureClass"
clip_lines_fc = r"ClipLines"
sum_lines_fc = r"SumClipLines"

#converting an existing fc with circles to Geometry objects
geometries = arcpy.CopyFeatures_management(in_poly_fc,arcpy.Geometry())

for feature in geometries:
&amp;nbsp;&amp;nbsp;&amp;nbsp; #obtaining a centroid of the circle centroid via Geometry class attribute
&amp;nbsp;&amp;nbsp;&amp;nbsp; centroid_Point = feature.trueCentroid
&amp;nbsp;&amp;nbsp;&amp;nbsp; centroid_xy = []

&amp;nbsp;&amp;nbsp;&amp;nbsp; #obtaining XY coordinates of the centroid via Point class attribute
&amp;nbsp;&amp;nbsp;&amp;nbsp; centroid_xy.append(centroid_Point.X)
&amp;nbsp;&amp;nbsp;&amp;nbsp; centroid_xy.append(centroid_Point.Y)

&amp;nbsp;&amp;nbsp;&amp;nbsp; #obtaining the radius
&amp;nbsp;&amp;nbsp;&amp;nbsp; #have to add a small overhead value to make sure the radius end point will overshoot the polygon
&amp;nbsp;&amp;nbsp;&amp;nbsp; #otherwise may get undershooting lines which depends on the precision of the coordinates
&amp;nbsp;&amp;nbsp;&amp;nbsp; #and XY tolerance of the source data
&amp;nbsp;&amp;nbsp;&amp;nbsp; radius = math.sqrt(feature.area / math.pi) + 1

&amp;nbsp;&amp;nbsp;&amp;nbsp; #supply the list of angles for bearing
&amp;nbsp;&amp;nbsp;&amp;nbsp; bearing_angles = [0,60,120,180,240,300,360]

&amp;nbsp;&amp;nbsp;&amp;nbsp; #creating bearing angles table and adding fields
&amp;nbsp;&amp;nbsp;&amp;nbsp; bearing_table = arcpy.CreateTable_management(tempworkspace,"BearingDataTable")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(bearing_table,"Xcoord","Double")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(bearing_table,"Ycoord","Double")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(bearing_table,"Bearing","Double")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(bearing_table,"Distance","Double")

&amp;nbsp;&amp;nbsp;&amp;nbsp; #inserting all required lines constructed from centroid with the radius and bearing angle
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.InsertCursor(bearing_table,["Xcoord","Ycoord","Bearing","Distance"]) as ins_cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for bearing_angle in bearing_angles:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ins_cursor.insertRow((centroid_xy[0],centroid_xy[1],bearing_angle,radius))
&amp;nbsp;&amp;nbsp;&amp;nbsp; del ins_cursor

&amp;nbsp;&amp;nbsp;&amp;nbsp; #projected coordinate system used for output lines feature classes generated
&amp;nbsp;&amp;nbsp;&amp;nbsp; project_coordsys = """PROJCS['NAD_1927_StatePlane_Alabama_East_FIPS_0101',GEOGCS['GCS_North_American_1927',
&amp;nbsp;&amp;nbsp;&amp;nbsp; DATUM['D_North_American_1927',SPHEROID['Clarke_1866',6378206.4,294.9786982]],PRIMEM['Greenwich',0.0],
&amp;nbsp;&amp;nbsp;&amp;nbsp; UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],
&amp;nbsp;&amp;nbsp;&amp;nbsp; PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-85.83333333333333],
&amp;nbsp;&amp;nbsp;&amp;nbsp; PARAMETER['Scale_Factor',0.99996],PARAMETER['Latitude_Of_Origin',30.5],
&amp;nbsp;&amp;nbsp;&amp;nbsp; UNIT['Foot_US',0.3048006096012192]];-17948200 -43887100 3048,00609601219;
&amp;nbsp;&amp;nbsp;&amp;nbsp; -100000 10000;-100000 10000;3,28083333333333E-03;0,001;0,001;IsHighPrecision"""

&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.BearingDistanceToLine_management(bearing_table,clip_lines_fc,"Xcoord","Ycoord",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Distance","Feet","Bearing",spatial_reference=project_coordsys)
&amp;nbsp;&amp;nbsp;&amp;nbsp; #adding each circle's 8 lines in iteration to the sum output line feature class
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Append_management(clip_lines_fc,sum_lines_fc,"NO_TEST")

&amp;nbsp;&amp;nbsp;&amp;nbsp; #deleting temp feature classes to avoid locking issues at next iteration
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(bearing_table)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(clip_lines_fc)

#cutting each circle in the polygon feature class by using the lines obtained earlier
arcpy.FeatureToPolygon_management([in_poly_fc,sum_lines_fc],"Quadrants","#","ATTRIBUTES","#")&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 20:07:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/split-circle-into-6-equal-parts/m-p/2970#M251</guid>
      <dc:creator>AlexeyTereshenkov</dc:creator>
      <dc:date>2021-12-10T20:07:40Z</dc:date>
    </item>
  </channel>
</rss>

