For an FME solution, the most useful transformer would probably be the Generalizer. It has several algorithms grouped into four types.
Here's a list of algorithms:
From the documentation:
- Generalizing algorithms: Reduce the density of coordinates by removing vertices.
- Smoothing algorithms: Determine a new location for each vertex.
- Measuring algorithms: Calculate the location of points, and return a list of these points (for example, to measure the sinuosity of a
- Fitting algorithms: Replace the original geometry completely, with a new feature fitted to a specified line (for example, to minimize the
orthogonal distance to the original).
As you can see in the image below, there are a lot of settings which activate depending on the algoirthm you choose.
I've used this tool with pretty good results. You just have to choose the algorithm that will suit your needs and play around with the settings.