Using transformers to modify data.
Recently active
I have created a series of workbenches that populate an ESRI File Geodatabase. Each workbench corresponds to an individual feature dataset. I have created a workbench with Workspace Runners for each of the individual workbenches so I can run them from there instead of individually.I have used a schemaScanner in the individual workbenches because the schema may change on the incoming datasets without my knowledge. For this reason I had set the first workbench run to overwrite the geodatabase instead of truncate to account for schema changes when doing geodatabase updates. However when I try to run it, I get an error that the geodatabase is locked. To get around this, at the beginning of the workbench I’d like to delete the existing geodatabase and then run each of the workbenches to recreate it. To do this I have read I should move the geodatabase to a temporary folder that FME will then delete at the end of the workbench run. I am have used the temp path creator to create an attribute
Hi, I'm attempting to classify the ground from point cloud data using FME transformers, but I haven't been able to achieve the expected results. Could you please provide a detailed workflow for ground classification in FME? I specifically want to generate a Digital Terrain Model (DTM) of the ground, excluding other features. Thanks! Classification Point cloud Orthomosaic
Hello everyone,I have the following data structure and I don’t know which solution would be the best in FME Form to get the required result:attribute1; attribute2; attribute3Kreuzberg; Rom; group 1Berlin; Kreuzberg; group 1England; London; group 4London; England; group 4Lissabon; Carrer; group 2Carrer; Lissabon; group 1Kreuzberg1; Rom; group 1Rom; Kreuzberg2; group 1I need to create a group_id attribute that has the same id where attribute1 values reappear in attribute 2 and vice versa + the features need to have the same attribute3 to get the same group_id. This is how the output should look like:attribute1; attribute2; attribute3;group_idKreuzberg; Rom; group 1;1Berlin; Kreuzberg; group 1;1England; London; group 4;2London; England; group 4;2Lissabon; Carrer; group 2;3Carrer; Lissabon; group 1;4Kreuzberg1; Rom; group 1;5Rom; Kreuzberg2; group 1;5Thanks for helping!
I’m following this API documentation to authenticate and can successfully do so in Postman. However, with the HTTPCaller it keeps returning a 400 error: "error": { "code": "no_grant_type_provided", "message": "Bad Request", "status": 400 },I feel like I’m close but can’t crack this nut...what am I doing wrong?? Postman:Postman HTTPCaller:HTTPCaller
I have several polygons. They follow a line pattern where tre long polygons should be one large, and by that i mean that there should be no space between them, and instead of three long polygons it should be one large. The following image shows three pairs, so these nine polygons should be three larger polygons. Any idea how to do this?
Hi,Using 2024.1 : not sure if I’m supposed to feel zen about that, but I don’t. Before I just had to click once to get into parameters.Now I have to click twice to get into parameters. I am more frustrated than zen.My personal feeling.
I need to find lines which are completely outside polygonsI am using the Spatialfilter with “Filter is OGC-Disjoint From Candidate”. All of them pass and I dont understand why?Current workflow This is my dummy data i am using. As you can see, the line highlighted with the red box is clearly the only line disjointed from the polygon. So why does all candidate pass, it make no sense to me? What form of transformer should i use if what I do is wrong? Its obvious to me that it qualifies os OGC disjoint?https://docs.safe.com/fme/2023.2/html/FME-Form-Documentation/FME-Transformers/Transformers/spatialrelations.htm
I have a JSON template that I want to fill with values from two corresponding lists using xquery.The two lists look like this:keywords_thematic_en = ["test", "trial","error","datapool","API","REST"]keywords_thematic_de = ["Test", "Versuch","Fehler","Datenpool","API","REST"]keywords_thematic = {"en":keywords_thematic_en,"de":keywords_thematic_de} The JSON template I want to fill looks like this:{"keywords": [ { "value":keywords_thematic_en,"valueDE": keywords_thematic_de,"type": "THEMATIC" }]} In python, this looks like this:keywords_thematic_en = ["test", "trial","error","datapool","API","REST"]keywords_thematic_de = ["Test", "Versuch","Fehler","Datenpool","API","REST"]keywords_thematic = {"en":keywords_thematic_en,"de":keywords_thematic_de}jsonSnippet = '{"keywords": []}'jsonSnippetKW=''for keyword in keywords_thematic["en"]: jsonSnippetKW = jsonSnippetKW +'{ "value":'+ keyword + ',"valueDE": '+ keywords_thematic["de"][keywords_thematic["en"].index(keyword)]+',"type": "THEMATIC" }
Hi everyone,I'm trying to check if polygons from Dataset A overlap with polygons from Dataset B in FME. I’ve attempted to use the SpatialFilter, but it only offers options like "intersects" or "touches." However, I specifically need to determine if the polygons are overlapping.Has anyone encountered this issue or found a way to achieve this in FME? Any suggestions would be appreciated!Thanks in advance!
I am attempting to create a workbench to read, process, and convert IFC and 12dxml files into gdb files (multipatch and basic respectively. The output for the IFC/GDB Multipatch is working properly and is set to a dynamic filename without issue. However the output for the 12dxml only runs when targeting a specific location (can’t set filename dynamically) and even then it returns a message saying that 0 features were output. I am fairly new to FME and have not been able to determine why this is failing, short of the possibility that the writer is trying to write polylines and getting information in as polygons, which I am unsure how to fix. I have attached the rather voluminous log on the chance someone is able to point me at the particular error I need to fix.
Hi,I keep going in circles and can’t think of an easy way to do this. Has anyone got any tipsBasically, I have an attribute such as “TEST_240829_MLS_5_316460_5816230”What I what to do is remove “_316460_5816230” from the end. I’m wanting it to adaptively remove this part of the string from several thousand inputs.Normally I would use the attribute trimmer however the length of this part of the string will change (not a constant thing I can remove). This part of the input string does always start at the second last occurrence on the “_” delimiter and go until the end. The amount of delimiters is not constant in the part of the string I want to keep though, so I also can’t use the attribute splitter and then rebuild the part I want from the parts of a listIs there an easy wany to do this?
I have a workbench set up on a desktop PC that is reading numerous data sets from folders on that computer. The workbench is also saved locally.I have moved a copy of the data and workbench in the same folder structure onto our shared network where the start of the file path is different.eg. C:\\Data\\Workbench.fmw & C:\\Data\\Input\\Data.xlsbecomesP:\\Project\\Projectname\\Data\\Workbench.fmw & P:\\Project\\Projectname\\Data\\Input\\Data.xls How can I set up the workbench so I only need to change the folder path to data sources once, and all the others know that the relative path has changed? Thanks!
I’m attempting to use a Feature Reader and where clause to identify features in a Mobile Geodatabase with a “publish_date” (datetime) greater than the “LAST_UPDATE_TIME” (datetime) from an SDE Geodatabase. With help from the article below, I was able to accomplish this with a File Geodatabase and SDE Geodatabase, but I’ve now migrated my script to FME 2024 and need to use MGDB instead of FGDB. It seems the formatting is different (I validated in FME 2024 against the FGDB instead of MGDB - it works).Feature Reader from Esri FGDB with a where clause based on a last_updated (date/time) field | Community (safe.com)Below is my attempted logic, where the format of publish date and LAST_UPDATE_TIME, as far as FME is showing me, appears identical. The FGDB solution has some not-so-straightforward formatting so there might be something similar here. Any help?
I have an Attribute with integer values (4 Digits) and have to extract the first two Digits and write them to a new Attribute.In RegEx I think it is ^\\d\\d. How can I do that in FME?I tried with ExpressionEvaluator and AttributeSplitter @FindRegEx(@Value(Attributename)^\\d\\d)but it does not working. Thanks for helping.
This has been bothering me for a long time. I keep avoiding it because I just end up using a SQL executor. to find errorsHow is the Writer transformer different than a SQLExecutor when performing MSSQL inserts? [or other functions]. Don’t they use the same driver?Here is an example: I recently inserted a row into a table where the string length was too long got the field. The Writer transformer just inserted the string successfully, but it truncated. The SQLExecutor threw a SQL error saying, ‘string or binary data would be truncated’ and then failed\rejected the insert. I have also run across other odd behavior in the past. Such as the writer having the ability to insert duplicate foreign keys, but the SQLExecutor will fail with error. Is there a good resource for this or a good explanation? Thanks!
Hi everyone, I am now doing data quality inspection to an esri personal geo database with multiple layers, and I have to calculate how many 0 or null values there are in every attribute of each layer(or table) in the database. I have tried to figure out some automation method with FME but in vain. Can anybody give some instructon or advice?
Hello every oneI have workspace to read many files in SharePoint just to know which folder has updated with new dataAnd it’s taken to much time to read all files in SharePointMy question is : is there is any way to let SharePoint connecter read folders only without reading all file inside or read one file from every folder just to decries the time and speed the workspaceThanks for all your support
I have a dataset stored in Oracle Spatial, and I have metadata stored as an xml file (the xml is generated by ESRI software).I want to Write a fileGDB where the metadata is added to the feature layer.How do I accomplish this?
Hi,I haven’t been able to find this question asked anywhere, but I’m sure it has been. I’m at a lost though. I have a unique attribute in a group of features. I wish to find unique combinations of all possible pairs in my group of features.For example, if I have three features. Their ID’s are 1, 2, and 3. The result I want to find is a feature with a new ID of: 1-2, 1-3, and 2-3In reality my groups can be up to 20 features in size.I can’t work out how to accomplish this in FME. Though I’m sure its very easy.Does anyone know how I would do this?
I'm bringing in several multidimensional GRIB files with which I would like to separate out each band for subsequent analysis. The GRIB file has several bands with inconsistent resolutions (i.e. 2880x1441 or 1440x721). When I run the GRIB file through a RasterBandSeparator, I see the following warning in the log file:|WARN |GRIB reader: Band 17 of GRIB dataset is 1440x721, while the first band and dataset is 2880x1441. Georeferencing of band 17 may be incorrect, and data access may be incomplete.The inconsistency in resolution results in incorrect georeferencing of the grids, in which the bands that have a resolution that differs from the first band are truncated and stretched. Is there a way to prevent the system from using the resolution of the first band for georeferencing all other bands? Is there a known workflow for rectifying this behavior?
Posting these Custom Transformers that may be of use or further developed:FeatureCreator FeatureExecutor One thing that is tedious in FME is actually creating data within the workspace itself. FME’s use case is mainly aimed at transforming external data and so is not natively setup towards actually creating new rows of data from scratch within the workspace itself.Wouldn’t it be nice if instead, users could just copy/paste a table of values into tje workspace and it automatically convert these to Features for you? ie. Easily store a “table” of data within the Workspace? This is essentially what these Custom Transformers aim to do (and partially inspired by Eg. Power BI with its similar “Transfomer” / Power Query that gives an interface to just copy/paste a table of data from the Clipboard into the query definition)Probably most of us currently use any number of Creators, Cloners, AttributeCreators (often with Conditional Values), Testers etc. for what is a lot of effort just to cre
Hello FME Community,I'm relatively new to FME and encountering some challenges with my current project.I’m working with a road centreline network where the road segments have varying lengths. Each segment includes start and end chainage attributes. A road may be made up multiple segments so chainages need to be sequential and based on the prior segments end chainage for the next segments start chainage. I'm also generating M-values for these segments. Following the linear referencing guide, I’ve managed to retrieve all necessary values. However, the process required me to use a LineCombiner to combine the segments and a PathSplitter to split them back into individual segments.The issue arises when I attempt to split the lines back into their original segments. Instead of restoring the original segments, the process results in an explosion of segments, increasing the count to around 16,000.I’m unsure how to maintain the integrity of the original segments while still achieving the desire
Hello , I would like to understand more about shortest path finderi know ,it requires start and end node As picture :I have start point and end point ,several lines .i need it (start from right of picture (start point) to left crossing all lines ,not only from start to end ,continue to the lines of square area and force the lines to order the direction from right to left Is there a good idea here to let the fme set the direction from right to left and implement it for all lines (lines crossing from start to end and also the lines of square area till end )
Hello everyone,I'm fairly new to the world of FME, and I'm trying to do a rather complex manipulation, but which I'm sure is possible with FME. However, despite my research I can't find a solution and I need some expert advice. I have 2 types of input data:On the one hand, railway lines as output from a ‘LineBuilder’ transformer. Secondly, a digital terrain model in TIN format.The idea would be to be able to create tunnels under the terrain. In some places, railway lines run underground in tunnels. It would be necessary to be able to ‘punch holes’ in the digital terrain model at the point of intersection. My initial idea was to generate 3D data around each rail line with a rectangular cross-section (5x4m) and then to be able to create an intersection between this 3D data and my digital terrain model to perform a subtraction. I've already tried a few things on found the net, but nothing has really worked. Could you give me some advice? Thanks in advance,Nicolas
Hello, i have a problem with the stringconcatenator. i would like to combine several values of text attributes with the stringconcatenator as a new attribute. the values should be separated by a comma, empty attributes should be ignored and there must be no comma at the end. how can this be achieved? I always get two or more comms if the attribute is emtpy. Thanks a lot.