Skip to main content
Question

Can fme creat a hemisphere like this?

  • June 24, 2018
  • 2 replies
  • 17 views

liujisheng
Participant
Forum|alt.badge.img+2

Can fme creat a hemisphere like this below? Thanks a lot.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

2 replies

takashi
Celebrity
  • 7843 replies
  • June 24, 2018

HI @liujisheng, assuming you are using FME 2018, this is a possible way.

  1. Create the center point (x, y, z) of desired hemisphere.
  2. Bufferer (Buffer Type: Solid): Transform the point to a solid = approximate sphere. You can control accuracy (smoothness) of the sphere through the Edge Resolution parameter.
  3. GeometryPartExtractor (Geometyr XQuery: This part | Geometry Type | = | IFMEFace): Decompose the solid into individual faces.
  4. BoundsExtractor: Calculate bounds of each face.
  5. Tester: Filter out faces whose zmax is equal to or less than z of the center point.
  6. Aggregator: Aggregate the remnant faces.
  7. GeometryCoercer (Geometry Type: fme_composite_surface): Transform the aggregate into a composite surface = approximate hemisphere.

Note that the resulting shape would not be geometrically equal to your example, as you can see in this screenshot. If you want to create exact same shape, you might need to write a script with geometrical algorithm and FME Objects API.


liujisheng
Participant
Forum|alt.badge.img+2
  • Author
  • Participant
  • 11 replies
  • June 24, 2018

HI @liujisheng, assuming you are using FME 2018, this is a possible way.

  1. Create the center point (x, y, z) of desired hemisphere.
  2. Bufferer (Buffer Type: Solid): Transform the point to a solid = approximate sphere. You can control accuracy (smoothness) of the sphere through the Edge Resolution parameter.
  3. GeometryPartExtractor (Geometyr XQuery: This part | Geometry Type | = | IFMEFace): Decompose the solid into individual faces.
  4. BoundsExtractor: Calculate bounds of each face.
  5. Tester: Filter out faces whose zmax is equal to or less than z of the center point.
  6. Aggregator: Aggregate the remnant faces.
  7. GeometryCoercer (Geometry Type: fme_composite_surface): Transform the aggregate into a composite surface = approximate hemisphere.

Note that the resulting shape would not be geometrically equal to your example, as you can see in this screenshot. If you want to create exact same shape, you might need to write a script with geometrical algorithm and FME Objects API.

Thank you very much. It's a good idea.