Using transformers to modify data.
Recently active
Hi all,I seem to have an issue with writing to the Temp folder location (E:\\Temp, in this case). I will get an error like the following -Failed to write feature data to `E:\\temp\\wb-cache-NSPL_V3.2_ShortName-rUhMFp\\Main_FeatureJoiner_20 -1 24 fo 0 JOINED 0 6641bd2679d46e05f371fbb029766a8cafbc270f.ffsupdating' I've tried creating a new workspace from scratch, renaming it and I am able to copy files to that folder without any issue. I also ran FME Workbench with elevated privileges and as a different user, even with a different Temp location but no success with any of them. Has anyone here had anything like this occur? And if so, is there a known way to resolve it? I've deleted all Temp files and again, no change. All a bit odd out of nowhere!Thank you
I’m migrating to ArcGIS Pro and working on a workflow to convert geodb_pro_annotations to geodb_annotations so that I can edit/create annotations in ArcGIS Pro and downgrade them so that they can be used in ArcMap and read with a legacy tool (that currently has no ArcGIS Pro upgrade path).I seem to be having an issue writing some of the features to a new local FGDB where the FeatureWriter errors out with the following message:“An error occurred while attempting to create a feature using the feature class 'StreetName_Rural_Smaller_LEVEL_63'. The error number from ArcObjects is: '-2147220947'. The error message from ArcObjects is: {Cannot acquire a lock.}”The data is created/edited in an SDE and exported to a local FGDB for this downgrade. There are 25 annotation features containing 1 to 2,000,000 annotation records. This error seems to only occur on annotation features with more than 500,000 annotation records. The others are able to be written out to the FGDB with no issues.I’ve tried
Hi,I have a CSV file containing ObjectID and associated AttachmentNumber values.I want to group the ObjectIDs so that the total number of attachments in each group is as close to 1,000 as possible.How can I achieve this?
Hi all,I have .shp data sets (100+) which I read with feature reader. The attributes’ values are saved as list ,attribute “ID” for shopA.shp has values as {0, 2, 4, 8} and another attribute “Desc_”: {cake, bread, drink}, my aim is to save them as json file so the json will look:{ "uuid" : "1b2299d1-b97a-48d9-9a99-9994491ebb34", "path_directory_windows" : "O:\\M\\A\\B\\", "members" : [ { "base_name" : "shopA.shp", "created" : "20240225", “attributes” : [“ID”: “long”, “0, 2, 4, 8”, min = 0, max = 8, mean = 3.5, median = 3, mode = None,“Desc” : char(256), “cake, bread, drink” ] }, { "uuid" : "322299d1-b94a-48d9-9a99-99944912bb34", "path_directory_windows" : "O:\\M\\A\\C\\", "members" : [ { "base_name" : "shopB.shp", "created" : "20240225", “attributes” : [“ID”: “long”, “1, 2, 3, 4”, min = 1, max = 4, mean = 2.5, median = 2.5, mode = None,“Desc” : char(256), “cake, orange, apple” ] }, Thank you so
TLDR: sys.path does not contain FME_MF_DIR, so I can’t directly import a local Python module. This contradicts FME’s documentation. What am I missing? Hi all,I’m having problems importing a local Python module located in the same directory as my FME workspace. Could you help me find out what the problem is or am I missing something?According to the PythonCaller documentation,FME will search both the standard Python module locations and the workspace location to find the module to be imported.However, when I try to import my module in <workspace directory>/feature_processor/__init__.py with the following code:from feature_processor import FeatureProcessorI get the following exception:Message Type: fme::internal::_v0::py::ExceptionPython Exception <ModuleNotFoundError>: No module named 'feature_processor'Error executing string `from feature_processor import FeatureProcessor'Factory proxy not initializedFeatureProcessor (PythonFactory): PythonFactory failed to process featu
I'm working with FME 2021 and have run into a challenge regarding dynamic GeoJSON handling.I use the HTTPCaller to retrieve GeoJSON from several hundred different services. Each service returns features with different attribute schemas. My goal is to dynamically expose all attributes and the geometry from each GeoJSON response and write them to various formats (e.g., GDB, Shapefile, etc.).I've tested workflows using JSONFragmenter and manually selected attributes, but this approach doesn't scale—it’s not feasible to manually configure the schema for hundreds of unique GeoJSON sources.Is there a robust and dynamic way in FME 2021 to automatically expose all properties (attributes) in each feature, regardless of schema, along with the geometry?Appreciate any guidance or best practices for handling this kind of dynamic schema in FME 2021.
Hello, I want to replace the list of attributes of the ChangeDetector with a user parameter. The attributes of the original and revised features are not exposed. The user parameter is in Python: it's a string derived from another parameter (example: 'field1 field2 field3'). I don't get any error but I guess values are not considered.I have the same problem with other transformers based on the same attribute list type (AttributeExposer).It is an issue or a problem with the string? Thank you
Hi,I am facing the problem mentioned in the title, especially when I want to detect Self-Intersections in 2D. FME detects a lot more Self-Intersections while PostGIS is fine with the geometry.What are the reasons?As we want to build up a standard quality gate for our data, I need to be certain that both ways - either using PostGIS or FME - act in the same way. What is the configuration then for FME to match the behaviour of PostGIS’s ST_IsValid function?Thanks in advance! :-)
Hi,I split a line at two points using PointOnLineOverlayer, which generated three segments. I extracted the coordinates before breaking the line and again after the splits. I was expecting the start coordinates of the second and third segments to be different from the original line's start coordinates, but all three segments appear to have the same start x and y in both split and original coordinates. Is it something with the split that went wrong because i had only one case in which coordinates were different but rest of the examples are showing this, which is not helping. Any feedback would be greatly appreciated! Thanks.
I have a workflow that:Takes a feature class from an ESRI Geodatabase (ArcSDE) Removes some attributes via AttributeRemover Writes to several different formatsI want to change Step 2 to use an external list (for example, a TXT file or CSV - the format is flexible), because other users will be regularly updating the list of attributes to remove.It seems like AttributeRemover only takes a single string or manual selection of attributes, so I decided to try BulkAttributeRemover, since it can take an attribute value. However, I ran into this problem:Let’s say I want to remove all attributes that contain the string PRIVATE.When I type the string PRIVATE into BulkAttributeRemover: Expression to Remove, the transformer functions as expected. It removes all attributes that contain the string PRIVATE.However, if I create an attribute called “regex” and set its value to PRIVATE, and then use the attribute “regex” as the Expression to Remove in BulkAttributeRemover, the transformer removes all va
I have an attribute called “month” from an imported CSV. I’ve formatted the value to be in the format “September 1 2024”.Now I want to convert the “month” attribute to a usable date format such as ISO YYYY-MM-DD.If I use the dropdown to select the attribute, the value of the DateTime Attributes becomes “@Value(month)”.When run, the workspace sends all rows to the Rejected port with fme_rejection_code. = MISSING_ATTRIBUTE_DATETIME and fme_rejection_message = Null, empty, or missing datetime was found. Enable the passthrough parameter to disable this However, if I manually type in “month” into Datetime Attributes:I get the expected results: Version: FME(R) 2024.2.1.0 (20241202 - Build 24801 - macosx-aarch64)I’ve tested it on FME(R) 2025.0.2.0 (20250512 - Build 25237 - macosx-aarch64) with the same result.
I am trying to concatenate 6-7 fields to create single field with spaces in-between different field values to create a address like string, no commas needed. Can I do it in text editor? Field1 Field2 Field3 original: 123 ABC Street Filed Combined Target: 123 ABC Street
I just returned to work from the Peak Of Data and AI in Seattle and am trying new things. In existing workspaces, I have added two creators to my workspace where I am adding a DateTimeStamp >DateTimeConverter - then writing to a new tab (Information) in my excel worksheetthe Second creator I am utilizing a FilePathExtractor and writing to the same new tab in excel. Essentially I am creating metadata to make my job easier to rerun projects year after year. The question I have is : is there an easier way to extract the File Path of where I have the .fmw saved without needing to navigate to it within the FilePathExtractor? My ultimate goal is to create a custom transformer that I can share with co-workers that can help them add the date created and the fmw’s file path to their excel writers.
Hello everyone I’m very new FME but I have been using chatGPT to guide me through to achieve the outcomes of my goals so my apologies if I have done something or missed something very simple.What I am trying to achieve in the graph I have attached is to convert 2D mapping data which is in EPSG 27700 into a 3D Object in EPSG 3978 so that it will align with mapping data in Unreal engine from the Cesium plug-in.As you can see from the graph I am adding height data from a point cloud then reprojecting to 4326 and then to 4978 (I don’t think the double reprojection does anything but chatGPT said to give it a go), after this I then shift the map based on a georeferenced point that I have centred my Unreal project around.Most of this all works perfectly fine and expected (this is a great piece of software!) but the result has the reprojected map not perfectly flat on ground and facing the wrong direction. This makes me think I am missing something obvious or simple.I really appreciate any hel
Hello,I am aiming to customise the FME Flow map interface by integrating a bespoke ArcGIS Online (AGOL) web map. The objective is to allow users to delineate an Area of Interest (AOI) and subsequently export relevant data directly from the application.The intended FME Flow map should utilise a basic AGOL web map that includes basic features layers (e.g. polygon) which are intended to assist users in understanding the extends of the dataset.I attempted to modify the basemap URL (Map Configuration) by embedding the public AGOL web map URL; however, this approach was unsuccessful.Would you happen to have any guidance or suggestions on how to properly embed an AGOL web map into the FME Flow ‘Draw an Area of Interest’ interface? Thanks:)
Hi everyone,I have struck a roadblock in the creation of a particular FME Workbench that I now require help with. I appreciate your time in advance.I have multiple csv files that contains a table of data that I would like to process into a single csv file table. Lines 1-26 of these files contains general informationLine 27 contains headers for a table belowLine 28 onwards contains the data for the table. In Line 2 Row 2 there is a “cell” (B2) which contains text which I would like to add into a new column in the table repeatedly.I have done and been able to do the following:- Used 2 x CSV Readers- 1st CSV Reader data is transformed down to just cell B1 and B2, with B1 text being replaced with a header name 'Sensor_ID' and B2 simply being the original data in B2 eg. SN_ABC123- 2nd CSV Reader data is transformed to Line 27 onwards (i.e. just showing the table), plus a few other modifications using AttributeRenamer, AttributeRemover etc.- Tried using both FeatureMerger and FeatureJoiner t
Hello FME community, I would like to identify all locations that are within a 300m-perimeter around a polygon, taking into account barriers (large roads, rivers etc.). In ArcGIS there is a tool called “Distance Accumulation” that does just this, but I don’t want to depend on it. Thanks!
Hello everyone, This might be a simple question, but for some reason I can't figure out how to remove rows with only Null Values (Of course I can useTestFiler or Tester, but would be cumbersome work, since I have a lot of columns and I don't want to go into that rabbit hole)These rows with Null values came into existence, since I read in an excel file with two worksheets with two different schemas. So the column names in worksheet 1, is different compared to the column names in worksheet 2. Therefore all the values from worksheet 2 have null values. I actually don't need worksheet 2, so I was thinking there might be 2 solutions. 1) don't read in worksheet 2 or2) remove the null values For both of them I don't know the answer.....dramatic sound effects..So if someone knows the answer, that would be very nice.
I have an excel file where i have 2 limits stated under single column and I want to split them as per table B where the Type = CLimit Type $30,000 per claim / $50,000 aggregate N $50,000 per claim / $70,000 aggregate C Table BLimit Type Per claim Limit Aggregate Limit $50,000 per claim / $70,000 aggregate C $50,000 $70,000
As mentioned in another post, I'm currently upgrading a bunch of workbenches to run on FME Flow 2024, some of them many years old. Typically, for anupgrade, I will go through each workbench, upgrade all transformers, readers, and writers, then run it in test desktop (workbench) environment, then publish to and test in a test server (flow) environment.In, FME 2024 the Vertex Extractor gives me bogus results, even after upgrading all the constituent transformers in this custom transformer. It looks like X and Y, or Lat and Lon, are reversed.When I open the CoordinateConcatenator (arrow above), I see this:Default settingWhile I haven’t dug through the rest of the custom transformer, this - frankly - looks counter-intuitive.When I change that to “XYZ”, everything runs just fine and results are as expected. My tweakI have tried to compare my version (I’m assuming that upgrading all components makes it uptodate) to older versions to see whether upgrading might have introduced this problem bu
I hope I got the title prepositions correct…I want to break apart lake data in order to generalize each category individually. The DonutHoleExtractor will “only” break apart “one level”. That is, independent-lakes and island-in-lakes-on-islands get sent one way and islands-in-independent-lakes and lakes-on-independent-islands get sent the other. Last option is to use an AreaOnAreaOverlayer or similar to sort everything correctly. But I would rather save that computing time since this is a huge dataset. Unfortunately the DonutHoleExtractor does not have an option for lists, or that would have been my chosen route, me thinks. Once generalized the geometries will be reassembled into donuts. Q: Is there a way to deduct the relations between different types of polygons within the donuts without doing a load of spatial analysis? I would expect there to be some sort of relation info within the geometry type itself?edit: Rephrased the question for clarity Pic for illustrative purposes
Hi Team,I was wondering if there was an ETA as to when a permanent solution for fixing FME Form (and Flow) will be available, as we're still experiencing issues with reprojecting data in GDA 2020. The work around at the moment that we have been given is;- Open up the following file in Notepad (open as administrator) :"C:\Program Files\FME\Reproject\CsmapTransformationExceptions\TransformationExceptions.db" - Find the Australia section and add the following line : GDA2020-7P|GDA2020|XFORM|FWD|NULL_FME - Save!Cheers
Hi FME world,I have two tables in a database (ArcGIS SDE). They are effectively a 1:1 match, linked via a common ID. Table 1 features are always present in the flow (filtered prior) and I want to read in ONLY the features from table 2, where match with the Table 1 filtered features (because there are 1m+).I’ve tried options like aggregating the Table 1 features and concatenating the ID, passing into Table 2 feature reader with a where clause. However, there is a maximum limit of queries the database can do (somewhere between 10,000-15,000 - and often I will need to read in more than this.My next thought is to create a looping transformer where I sample the T1 features into groups of 10k, aggregate, pass to FeatureReader, reads in associated 10k T2 features, then loop back to read in the next 10k, until there are no more features to be read (using a NoFeaturesTester to exit the loop.I’m a bit stuck on how to actually implement this though. Any ideas/thoughts much appreciated! Or if i’m
Hey, I have a question about the HTTP Caller. Is there a way to have the workspace it is in still continue even if one of the records fails to upload? The reason I ask is because there are some interesting errors I have ran into when uploading records to Cityworks, where something fails and then I have to re-run the entire workspace, after first deleting all of the inspections/work orders that were created. The error involves an encoded string not being compatible with FME. I would just like a way to run the entire workspace for all features and not have it cancel out on a failure. Any tips?
With the CKANConnector able to list Datasets and Resources without any issue, so I know CKAN Connection is good. If I try to add and update a resource I receive the “upload error HTTP 400: "Bad request - JSON Error: Invalid request. Please use POST method for your request” I’m pulling the Dataset and Resource for the update resource from the dropdown. Acts like a permission issue but I’m connecting as an Admin on the openGov side.