Using transformers to modify data.
Recently active
Hi there, I have about 230 workspaces that run daily to import data using the ArcGIS Feature Services Reader. The issue is, with every run I get warnings that don’t seem to be a problem, but make it seem like the workspaces aren’t running right.NOT changing coordinate system of reader identified by keyword `SAFE.ESRI-AGOL.ARCGISFEATURESERVICE_1' from `EPSG:7844' to `LL-GDA2020_FME' -- mapping file setting of `EPSG:7844' overrides coordinate system `LL-GDA2020_FME' read from fileThis warning just seems to be stating the coordinate system will not be overridden by FME’s LL-GDA2020_FME Coordinate System. It is logged for every reader feature type ArcGISFeatureServiceReader: Querying feature server 'https://public-services.OrganisationURL.com/public/rest/services/ServiceName/MapServer/This warning should not be a warning in my opinion, as it's just stating that the reader is querying the feature service. This occurs once for every reader feature type as well. Debugging is disabled, however
Hi,So I would like to try to work out a point source ID for point clouds based on continuous chunks of time. Basically separating out flightlines. For example, a point should has 30 points. The first 10 are collected in the first 10 seconds, then there is a gap of 1 minute before capture, and then another 10 are collected, then another minute gap, then the last points. So in this case I would like to determine a unique component value for each of the 3 time related groups.I think I can do this if I coerce the cloud to points. But that really isn’t efficient for billions of points.I also won’t know beforehand how many different continuous capture periods there are.Can anyone think of a way to do this? It’s pretty easy to do in lastools. But in this case I’d like to do it in FME. I don’t know any python which I presume could do it.I am ideally wanting this to work in version 2022, but I’m open to a newer version if that is the only chance of doing this.Thanks
Hi, I have two local authority boundary datasets that should align along a river but don’t and this is causing the Master Lookup between the two boundary datasets to be wrong. These two should be aligned and coterminous. How do I easily solve it?
Hi All,I’m trying to calculate volumes on meshes in a dgn file. The dgn file represents rail embankment / earthworks (ballast, formation, etc.). Below a screengrab of the design:My current workaround is DGN Reader → SurfaceBuilder → SolidBuilder → VolumeCalculator but am finding that some of the meshes are not closed. Before calculating any volume I need to close the meshes but can’t work it out,Any idea about how close the unclose meshes? Thanks!
I have a workbench with a RasterMosaicker that runs fine in 2021.2.6, but the same workbench throws an error in 2025.1 “Failed to mosaic the rasters”. Same error for version 2024.1.2.1.The error occurs only when setting the parameter “Overlapping Values” to “Composite Using Alpha Band”.Is there anything known causing issues regarding raster transformers in newer versions that might explain this?
When a database is updated using SpatialRelator, FeatureTypeFilter, and DatabaseUpdater Transformers from feature classes inherited from two different readers, the _relationship attribute disappears when the FeatureTypeFilter Update button is used. All DatabaseUpdater transformers are in the "incomplete transformer" status. When examining the DatabaseUpdater transformers, the _relationship values are red. Copying and pasting the same value fixes this. To avoid this issue, you must manually edit the FeatureTypeFilter, which is time-consuming.
About once or twice a year I have to dig out the SystemCaller, mostly just because I have to trigger a PowerShell command or script file. Without fail, I end up frustrated by the byzantine syntax (quotes galore) and limited way to capture output, finally succumbing to unnecessarily re-implementing the whole thing in Python.So my pick for the transformer that really needs some love and attention from the developers is the good-old SystemCaller :-)Do you also have a pet peeve Transformer that you think could be improved upon?
Below is a screenshot of my workspace that creates a new feature class (AttributeManager_6_Output). This feature class will be edited by end users in ArcGIS Pro. I need to bring that feature class back into the workspace and join it back to caputure those edits. My problem is that some of the attributes will be updated upstream as well. I need to capture those edits as well without overwriting the end user edits. How am I able to set the attribute conflict independently (some attributes from Left and some from Right) in the FeatureJoiner?
Hi all,I’m encountering an issue with the InlineQuerier transformer in FME Form 2024.2.1 (pre-production environment) that seems to differ from previous behavior.(FME Form 2024.1.3 in developement environment)🔧 Workspace Setup:The InlineQuerier has two input ports:tubes (can sometimes receive no features)parametre_generique (always receives data)I’m using this request :❗ Problem:When no data arrives at the tube input port, the transformer throws the following errors:InlineQuerier_2 (InlineQueryFactory): Generating output 'tubes_statuts_inactifs' using query 'SELECT * FROM "tubes"WHERE ( UPPER("statut_administratif") NOT IN ( SELECT TRIM(UPPER(value)) FROM "parametre_generique", json_each( '["' || REPLACE("valeur_parametre_text", '|', '","') || '"]' ) WHERE code_parametre = 'STATUT_ADMINISTRATIF_RETENU_TUBES' ) OR UPPER("statut_operationnel") NOT IN ( SELECT TRIM(UPPER(value)) FROM "parametre_generiq
Hi,I have run into behaviour in FME Form that I don't understand. I want to read an OGC API (WFS3.0) point features from any of these collections ( https://api.pdok.nl/lv/bgt/ogc/v1/ ) within a bounding box that I create based on input features.I dynamically create a bounding box (my random example: 6.7337723637079705,53.153741409492596,6.742906946412802,53.15869110582926 ) in a workflow before the FeatureReader.When I add the featurereader without any collection query parameters and save it so it generates the output port. And then I open the parameters and set bbox to the attribute value from the bbox (and also ‘limit’ to 1000). These parameters are not applied and used. Only when I regenerate the output port it applies any HARDCODED values. I cannot feed any dynamic value from a user parameter/attribute.If this is intended behaviour in FME: why? It seems so unnatural to not be able to dynamically feed the query parameters.Hopefully someone can help me out!
I have got an inital line featureclass from which I make a new one with splitted the lines, based on a measure table (MeasureGenerator, FeatureMerger, Snipper). I want to make a fme tool that can update this featureclass based on an updated measure table. I want to conditional handle the attribute values of all changes in the new feature class. Measure:0-2000;2000-4000;4000-8000 (measure in meters)Becomes Measure:0-1000;1000-2000;2000-2500;2500-5000;5000-8000Makes combined:0-1000;1000-2000;2000-2500;2500-4000;4000-5000; 5000-8000In the record of 0-1000 should be the attributes (Start, End, etc) of ‘Measure’ and ‘Becomes Measure’ so I can check from which former feature the new feature will get the attributes. This will be based on the largest overlap in length. I have tried this with the LinOnLineOverlayer. Here the line output does not give the answer and the point output gives all the answers except for when the endpoint is the same (0-2000 and 1000-2000).How should I do this? Am I
Happy May Day!This works in 2024-2025 and breaks at 2026.1.I have several autocad format attributes selected (confusing methods to select see below). I go through many transformers and can see those same format attributes (1 for example autocad_entity_handle) all the way up to and including the attributemanagers (pictured). But looking in the attribute manager (This was an issue before upgrading the attributemanager transformer and is also an issue since I have upgraded the attribute managers). Many of the format attributes are gray. 1.What is the significance of this?Why if the autocad_entity_handle format attribute is enabled does it show as “not found” (red)?
Hello,I am trying to create a workflow reading a file from one path, rename to respect Autodesk Forma naming convention and upload to the Autodesk platform with a new name.However, I can only input the existing full path (so with the not yet adapted name) in the AutodeskDocsConnector.I don’t want to create a local intermediate copy, and wish to run this on Flow later, any idea ?Thank you !
Has anyone else encountered issues with the FeatureReader now returning fme_basename and fme_dataset information in 2025.2.1?In 2024, the FME attributes that were returned automatically are fme_feature_type, fme_geometry and fme_type. fme_basename and fme_dataset were only returned if they were set under Additional Attributes to Expose.In 2025, the Feature Reader returns both fme_basename and fme_dataset.This can cause issues where a workspace is merging data and it’s assumed the attributes coming from the Feature Reader don’t have these attributesJust to complicate matters further, a workspace written in 2024 but run on FME Flow 2025 follows the 2024 behaviour. If you download that same workspace and run it on FME Form 2025, the behaviour is different.
I am using the Esri ArcGIS Feature Service Writer to write to ArcGIS Enterprise (11.*). The writer is set to truncate the existing data and writing the data as such goes without any problem.However, when looking at the attribute table of the Feature Service Layer I can see that some of the timestamps are wrong.To write timestamps to the existing Feature Service Layer I am converting the timestamps to Unix epoch time and multiply by 1000 to get my milliseconds.Quick example: 2025110163722 → 1762011442000When writting data to the Feature Service Layer the attribute for the Unix epoch time is set to type ‘Date’. For the majority of the data the resulting timestamps in the Feature Service Layer is correct, but e.g. in case of the example above the epoch time is interpreted as:1762011442000 → 1/14/1762, 8:53 PM.I checked if there are leading or trailing white spaces… nothing the Unix timestamps in question are just like all the others where the interpretation goes well.I have to admit that
Hi,I am having difficulties using the revit styler. I am feeding it 50 point features which get their own individual rotation value. But when I check the objects in revit, the rotation is slightly off. Sometimes by 20 degrees sometimes more. When i compare the correct angle in revit and compare it to the value i have in FME, I can see that they are correct but something is happening either when I use the revit styler or the writer that messes upp the rotation. I am rotating around the axis x= 0, y=0, Z=1. Any ideas why it is behaving like that? Am i missing some setting somewhere? Thanks for all advice!
I am really stuck on trying to cut some labels that overflow my frame when using the PDFPageFormatter. I have a bounding box which is used as the clipper extent for my data. It clips my lines, my points, but not my text labels. I guess that has to do with the fact that the anchor point is inside the frame, while the labels are too long and go over the clipping box, and don’t have real geometry. I have tried TextStroker - that does cut my labels, but they are not keeping the symbology I added + in a PDF, they are no longer selectable or searchable (I need them to be). I also tried buffering, but that will innevitably also discard labels that are supposed to be in the frame. In the PDFPageFormatter, I also set the “Clip Input Features” = Yes. I have had the same problem in FME 2025.2.3.0, FME 2026.1, and now in FME(R) 2026.2.0.0 20260401 - Build 26291. Updating did not help.Even if I tried to mask the overflowing labels by creating a thick white border around the map, the problem would r
Asking on behalf of a customer (but it may benefit others as well).They've recently upgraded FME and get an error in a workspace log: DeprecationWarning: FMECurve.snip() is deprecated and will be removed in a future release. Use FMEGeometryTools.snip() instead.After some digging we found it's in a PythonCaller inside a Custom Transformer (the LineDivider, created by @takashi in 2014).The Python code is;import fmeobjects, mathclass LineDivider(object): def input(self, feature): is3D = (feature.getAttribute('__linedivider.dim') == '3D') mode = feature.getAttribute('__linedivider.mode') value = float(feature.getAttribute('__linedivider.value')) output = feature.getAttribute('__linedivider.output') for attr in ['dim', 'mode', 'value', 'output']: feature.removeAttribute('__linedivider.' + attr) coordSys = feature.getCoordSys() outputLines = output.startswith('Lines') outputPoints = output.startswith('LinesAndPoints') or
Hi, I have the following table. I want to remove all records which have a value 2 equal to value 1 of another record and a value 1 equal to value 2 of another record.I highlighted in blue the ones I would like to remove as they match the removal criteria, e.g. id no 4 is matching criteria when compared to id 1.What is the easiest way to remove them ? Thx.
Hi,Does anyone know of a transformer that is able to handle SEG-D files? (not SEG-Y). I want to be able to read in a file, filter for specific channels, then write back a new filtered file to the same directory. I thought it might be possible to run a python script that does something along these lines...so I thought id ask if anyone has done that first before trying to reinvent the wheel!Thank you,Regards,Karl
Hi,I use a JSONTemplater to make a geojson with nested attributes. It works fine. The only thing I notice is that I have a number in real32 (1.21) and when it comes out of the JSONTemplater it has the value 1.2100000381469727. The extra decimals apear out of nowhere. How can I change these back to the original? Or can I use some kind of casting? I use FME 2023.2.5.Thank you
Under path parameters for the reader it no longer has "retrieve file properties" which means I can't access the create date of files breaking one my workbenches. I tried using the filepropertyextractor transformer but its just too slow for the amount of files I need to read. Is there a way to fix this?
Hello everyone,I was wondering if it's possible in the Pythoncaller to check based on an user parameter (for example “database”) whether the database is avaibable in the user's database connections (FME Options > Database connections). I was looking at Connections — Python FME API FME 2026.1 b26103 documentation, but I don't really get wiser which functions to use.
Hello,I have a workspace in FME Form that reads a large number of tables from a PostgreSQL database and writes them into another PostgreSQL database with the same schema structure but without data.Workspace designI use a FeatureWriter configured for PostgreSQL with the following settings: Table name is dynamic and taken from the incoming feature type: Table Name = fme_feature_type Attribute Definition = Automatic The destination database already contains the tables (same structure). Each feature is therefore written to the corresponding table in the destination database.Behaviour in FME 2023.2With FME Form 2023.2, this workflow works perfectly, even though the tables do not all have the same attributes.Behaviour in FME 2025.1.1When running the exact same workspace in FME Form 2025.1.1, I now get the following error:POSTGRES Writer: Cannot write to table 'enu_cad_caracteristique_constructive'. No valid columns providedWriter failed in write() callPOSTGRES writer: An error has o
I am trying to allocate civic numbers to parcels on either side of road (mostly curved). For this, I first need to sort the parcels (or parcel centrepoints) along the distance from the first vertex of the street, to help develop the sequential numbering. Parcels already have their nearest roads by neighbourfinder. And roads have their first vertex from the coordinateextractor. Both parcels and street segment run parallel here. Tried using Measure generator and extractor but I am getting NAN outputs. What other transformers can I use ?