Skip to main content

Hello,

Does FME has some kind of DefaultCoordinateSystemSetter? I've created an FME workspace that dynamically transforms FileGDB layers into an Oracle SDE database. For this, I need the Oracle SRID and ESRI WKT coordinate system descriptions. To get these, I use the CoordinateSystemDescriptionConverter transformer (handy tool!). However, there are tables without geometry (which crash the ESRI WKT conversion, luckily a TestFilter or something similar fixes that). But it gets worse when geometries enter the workspace that DO have coordinates, but NO coordinate system. Setting the coordinate system on the reader doesn't work because I expect multiple coordinate systems in the data, and setting one of them as the default on the reader will incorrectly overwrite data with a different coordinate system.

So here's what I need to do:

  1. Extract the existing one (CoordinateSystemExtractor)
  2. Test if it resulted in an empty value (Tester)
  3. Set the "default" coordinate system (CoordinateSystemSetter)
  4. Re-extract the existing coordinate system (CoordinateSystemExtractor), because I need the attribute for the CoordinateSystemDescriptionConverters.

This seems a bit awkward, as it almost doubles the number of transformers in my workspace.

I could move these transformers to a custom transformer, but the whole setup with two CoordinateSystemExtractors seems a bit awkward, and I'm curious if anyone has come up with a better solution.

Hence my question: is there some kind of DefaultCoordinateSystemSetter in FME?

I would say Stick it into a Custom Transformer, call it DefaultCoordinateSystemSetter and just never look in there again.

 

I think extra transformers are sometimes necessary. For example having to test is a User Parameter has a value you need to use a Parameter Fetcher and then test the value of the attribute.