Skip to main content
Hi FME Community,

 

 

I have a problem where I am trying to create an ellipse based on a published parameters "acre" input. It's a fairly straightforward process to do this with a circle/buffer as the radius of a circle can be calculated based on a volume, in this case number of acres.

 

 

However, I want to create an ellipse where the radius of one axis is 2x the radius of the other but still sized volume-wise by the input of the published parameter.

 

 

Is there a way to create "circlular buffers" and, for lack of a better term, turn them into ellipses by stretching them as they alreay have the correct size by acreage?

 

 

 

Hi Matthew,   The expression which calculates the area of an ellipse is: S = Pi * A * B S: area of an ellipse Pi: circular constant (3.14159265...) A, B: radius of the major, minor axis   When a radius is twice of another radius: S = Pi * A * 2 * A   Change it to: A = sqrt(S / (2 * Pi))   Since 'S' is known as a published parameter (Valume), you can get 'A' by ExpressionEvaluator or AttributeCreator. Then use 2DEllipseReplacer to create an ellipse based on 'A', '2 * A' and the center (x, y).   And you might have to convert length unit in the calculation, but I can't provide the way, because I'm not familiar with acre / ft. unit system. I think you can convert the unit correctly.   Hope this helps.   Takashi

Hi Takashi. Thanks for the help. I ended up doing something a little different after a few hours of forums, google, etc. I found it easier to simply have a published parameter for the "acres" and used a simple formula to find the radius then generate a circle from that with the 2DEllipseReplacer.

 

 

I then have a published parameter for Aspect Ratio which I "stretch" the circle into an oval. If I want a circle I enter "1" for a 1:1 aspect ratio. Enter a "2" for a 2:1 aspect ratio along the major axis of the ellipse, etc...

Lastly I have a published parameter for "angle". It's not a perfect approach but fits excatly what the client needs so I'm happy with it. 

 

 

Just thought I'd share the result as this FME community is awesome!

 

 

 

 

Reply