I want to create buffer polygon(with curved edges) from points like this using ArcGIS for Desktop.

distance toward North from a point 5, toward South 1.5, toward west 1, toward East 2.

all this distance is attached as attribute in point in different fields.

enter image description here

  • 1
    A diamond shaped quadrilateral would not be hard to construct by making four vertices with offsets from the base point. – user30184 Apr 5 '16 at 12:25
  • hey I just edited my Question. I see your this comment. – GIS Data Butcher Apr 5 '16 at 12:27
  • A circle can have only one radius so what you are asking seems impossible. Do you perhaps mean curved edges? – PolyGeo Apr 5 '16 at 12:36
  • yeah curved edges..! – GIS Data Butcher Apr 5 '16 at 12:37
  • 1
    @PolyGeo I suppose depending on what kind of curve you use between the four points it actually IS possible to get this done with circuilar edges at those points so that one curve is smoothly followed by the next one and no "edges" occur. – HimBromBeere Apr 5 '16 at 12:40

Edit: Here's a solution for the trigonometry in Python (credit to my wife, who pointed out the problem was an ellipse, not a circle):

# FunkyEllipse.py

import math



nverts=120              #!! Must be evenly divisible by 4!
quad=nverts / 4

step=(math.pi * 2) / nverts
stepSin = math.sin(step);
stepCos = math.cos(step);

acc1   = 1.0            # Cos(90)
acc2   = 0.0            # Sin(90)
coords = []
for i in range(0,nverts):
    if ((radix % 2) == 0):
        x = acc2 * distV[(radix+1)%4]
        y = acc1 * distV[radix%4]
        x = acc2 * distV[radix%4]
        y = acc1 * distV[(radix+1)%4]


    if ((i % quad) == (quad - 1)):
        radix += 1

    temp = (acc1 * stepCos) - (acc2 * stepSin)
    acc2 = (acc2 * stepCos) + (acc1 * stepSin)
    acc1 = temp

print str(coords)

Which generates a shape which looks like: enter image description here

Incorporating the math in an arcpy script to copy a point featureclass to polygon is left as an exercise.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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