Using transformers to modify data.
Recently active
Hi,I have a GDB with different layers with 3D multipatch data. I want to analyze the layers between each others and find the nearest neighbor. Like a NeighborFinder in 3D mode.How can I do that? NeighborFinder only supports 2D mode.Thanks.
I want to use the StringReplacer to edit a couple of attributes, but their names are not known in advance. Can I save a list of attribute names in an attribute and tell the StringReplacer to work on these attributes?
Hello everyone,I am looking to linearize hedge polygons generated by AI. Since linearization is an iterative process, I need to cut the godzillas into smaller polygons to reduce computation time.I have already tried using the Chopper transformer to make cuts, but unfortunately, at the cut points, the linear features lose their continuity, as you can see in the screenshot below.The offsets are several meters, so I don’t think post-processing to reconnect the linear features afterward is a good solution—I might end up connecting the wrong ones.I am therefore looking to cut my polygons along lines perpendicular to the median axis of the polygons.Below, I have attached my current FME workflow. I believe what I’m missing is the creation of the perpendicular lines and the interval at which to create them.If you know the transformers missing and their links it would be amazing. If you have any other ideas, I’d love to hear them!Thank you all.
How can calculate width of polygon in case rivers or roads?I have a road data and I need to know how minimum width of each segment of roads. I tried with some steps such as below:- First: from road polygon I generate centerline by CenterLineReplacer Transformer- After that: I used Chopper Transformer to chopped the Centerline into segments with mode "by vertex". - Next: I rotate all vertex with 90 degree and I extend line with a length (my problem is here). With road data which have more branch, and each branch have width difference, some case the range between minimum and maximum is so big (e.g. minimum is 0.5 met but maximum is 200 m). So when set the length parameter it not right for all branch. - Next: I used Clipper to clip this line with polygon- Finally: I calculated length of lines and this value mean are width of polygon.That all I understood and tried to calculate width of polygon. Because the length which set in The extend line step is not really right for all bran
@takashiHi all I'm splitting buffered road polygons into chunks using the BoundSplitter transformer and it works very well for straight polygons, but it does not serve my needs for polygons that have a higher degree of curvature/angularity.I need the split to be approx every 100 m and perpendicular (or close to perpendicular) to the road that is being buffered. When the road has a lot of curves this does not work. I am using "Oriented bounding box, longer side direction"Example of curvy polygon: BoundSplitter strip polygon oriented to buffer polygon.Curvy polygon after boundsplitter:Because of the difference in orientation between the boundsplitter and the circled part of the polygon, the splitting is not perpendicular to the road buffer. Is there another way to do this kind of splitting? Many thanks for any help anyone can offer.cheersPaul
Every week I have to update a File Geodatabase in AGOL using “Update Data”. What transformer would I use in FME Form to automatically update the data without me having to sign into AGOL and drag/drop the zipped file? My ultimate goal is to add this to an existing workbench and create an Automation in FME Flow where this is done automatically each week.
The main idea:I have this combination of transformers that are meant to clip a raster and from the result of that clip extract the values for every point using the RasterCellCoercer. This way I can do some statistics with the values of the raster that fall inside some polygons. The problem:I started realizing that the results coming out of the clipper were not consistent. I thought I was losing my mind. Sometimes when I use the clipper using multiple polygons the clipper clips as expected, tight and beautiful (what I need), some other times the clipper clips using the bounding box of every polygon feature that is supposed to be clipping. Also I get way more points, which is a pain bc I am working with big numbers here.Case 1 (Expected):Case 1, its clipped tightCase 1 transformer view: As you can see I have 153k Points coming out of the RasterCellCoercer and none of the points has a value 0 (last tester RetirarCotas 0)Case 2 (The unwanted): Case 2: The clipper clipped using the bounding
Hi,I have HTML content stored in a table's html_content attribute, and file names in a file_name attribute. How can I upload these directly to Azure Blob Storage using the FME Azure Storage connector without writing local files or using the HTTPCaller? Is it possible to provide the HTML content directly to the connector as an attribute? I need to dynamically set the blob name using the file_name attribute. Any help is appreciated!
Hi there,I’m using the ChangeDetector to update some point data in a ESRI enterprise geodatabase (SDE). I’ve set up the CHangeDetector to check geometry as well as attributes. I have 3 points out of 1224 that seems to being updated due to a geometry difference. I think it’s just that typical geometry change you get between FME and SDE so I have set the vector tolerance to 0.001 which is very generous. I’ve try all the various settings 2D, Lenient Geometry even changing the tolerance to 0.01 but these still come up as being updated. Below are my setting for the ChangeDetector:I’ve specified a change list and it used to be that you could see the original coordinates and the revised coordinates so you could tell if it was a real change or just a artifact but I can’t for the life of me see where to find these coordinates anymore. It just gives me nothing in the change list:Can anyone tell me where I can see these coordinates? Or why these three points are behaving this way and what to
Hello, I’m using Feature Writer to save my output in mdb format. I want to name the output file by User Parameter. When I run the workflow in FME Form, the file named by my input user parameter is generated correctly. When publishing to FME Flow, the user parameter is ignored and the output file is named randomly (e.g. “FME_5C2B2C70_1739440402445_7677.mdb”). In the log I can see that the parameter is not read, so the output name is empty. This is how it looks like when publishing the workflow: I’m using FME 2024.2.2 Do you know if this can be fixed? Thank you for your replies!
Hey. Does anybody know how to solve the situation where I need zipextractor to not preserve the tree structure of the archive ( if it contains subfolders ) and save the file itself?Thank you
I want to build a flat JSON array using the jsontemplater. I try to use this example to understand the syntax but using the pipe character does not go well.Starting with a simple creator for the root object and sending the actual information to the ‘ADDRESSES’ sub template. I try to define the root template as [| fme:process-features("ADDRESSES")|]and the sub template as{ "ID": fme:get-attribute("Site_ID"), "Address": fme:get-attribute("Address")}Taking it from the linked example the pipe character is needed to separate the array items by commas.My translation log return the following warnings, and error messageJSONTemplater (XMLTemplaterFactory): The following error occurred near line 1, column 3 of the query:JSONTemplater (XMLTemplaterFactory): invalid expression: syntax error, unexpected "|"JSONTemplater (XMLTemplaterFactory): An error occurred while parsing the ROOT template How do I use the jsontemplater to create some flat JSON array structured as [ { "ID": "Site_ID", "
Hello,Using SpatialRelator, I want to test if a feature line from Requestor, is "Requestor is OGC-Within Supplier", where supplier is an other layer line.If end vertex of line are the same, the test works but otherwise doesn’t work.OKNOK
Hello , I'm working on finding the path for specific lines and reorder points .I have several lines, each defined by a start and end point, but these lines also contain intermediate points. Should I merge the intermediate points with the lines before using a shortest path finder, or how will the transformer know which intermediate points belong to each line if I don't provide them? My goal is to reorder all points, including the intermediate ones, to find the correct sequence from point A to the final point, such as A, B, C, D, E, F, G. Thanks in advance
Hello, I am seeking help with using a Regex to replace the first instance of an underscore in a string. I am using a BulkAttributeRenamer to rename a series of attributes with multiple underscores like this as an example: 0_4_C11_M I am trying to replace just the first underscore in the string with a dash with a regex replace to change the name from 0_4_C11_M to 0-4_C11_M. The regex I’m using is ([\_]+) When I test that expression in RegEx101 is does exactly what I need and only replaces the first underscore in the string as shown below:However, when I use the same expression in the BulkAttributeRenamer it’s returning and replacing all underscores as shown below:Hoping someone can help with advice on how to limit the return to just the first underscore in the string please - it the expression incorrect or is there something else I need to add to the parameters? Thanks :)
I am trying to find shortest distance from all points in red to all other points in green using network connecting all of them. The point feature has only types (A,B).Is it possible to have the short path finder to search the path always staring from point A to pint B.
Some workspace of us is using ogr2ogr to move data from one postgres db towards another (more performant then setting up a FDW in postgres itself and more performant then FME for doing the data move).Calling this via the system caller shows all information in the log file (including password information). Is there a way to avoid this more recent then this post:
I am creating a set of workbooks which require the correct value being set on a session based temporary table in a postgis database. To achieve this, I am using a multiline sqlexecutor, where the first query calls a function which sets the values, and the second query returns the values. The issue I am having is that the transformer is only returning a value for the first function call. FME_SQL_DELIMITER ;SELECT sms_1transact.goto_checkpoint('$(end_transaction_name)');SELECT "A"."fid", "A"."theme", ST_Envelope("A"."geom") [...] -- « This is the result I want returned by the transformer. I cannot change anything about the database I am getting the data from, as it is third party, and isnt in scope for change. For an earlier call, I am using the “SQL to Run Before Read” on the Reader, which works fine, but this second query is dependent of the values retrieved in the first, so needs to be inline.
We have been putting together a transformer using the FME Packages SDK using FME Packages SDK Guide. As part of the package we are using the fmeobjects.FMEUniversalReader to read features. When we pipe the features to pyoutput to one of the transformers output ports all the attributes are not exposed. As the UnversalReader in our package references parameters in the transformer the attributes will not be consistent. Is there a way to make the attributes exposed on the output?ThanksBrad
Case: To get an unified look I am trying to aggreagate line features before offsetting them. Once they are offset I want to deaggregate them back to their original geometries and attributes. I assume using ‘Geometry - Assemble hierarchy’ in the Aggregator is the way to go. Unfortunately I find the documentation a bit confusing.Q1: Could someone please explain the parent - child concept? I have features and their attributes, so two(?) levels deep. I want to “pack” and then “unpack” them. But I don’t understand where to get the ‘parent ID’ or ‘child ID list attribute’? It would make sense to me that they were created when I group the features, not before?Q2: In the documentation the word nodes is used frequently. I guess this should be understood as ‘parts’?NB this might not even work. When using the setting ‘geometry - assemble one level’ features wont deaggregate after being offset. If it is also so when using Hierarchies, is there an other tool to achieve my desired result?
As the short path finder requires FROM.TO. input with line terwork.I have a data that has 680(From) and 1882(TO). So the From To table will be 1,279,760 record which takes too much time. For analysis..My data extent is 1500m*4000m.The farthest From To path in my data never exceed 300m.My idea is to create a table using neiblghbour finder to search for all( From) point to TO points with a tolerance 300. OR within a boundary.Or something like excluding the To found with minimum distance shirt path finder found.Is this valid?I'm trying to minimize the matrix created by FME to reduce the process for short path finder.Any help or ideas.?
Hi, I have multiple lines / links that each have attribute per feutureID Vehicle Load1 02 3003 250 In this case I would like all of them to create a single line with the total load, so new ID:4 and load:550. not keep the old ones. This is the easier part however ther are intersections as well. Some times very complex ones:Preferably this should be 2 lines with one node in the center. Maybe 2 parallell ones for the left lower part. I have done similar before with snapper and topologybuilder but would appreciate help. I used segment snapper.My workspace
I wish to implement a filtering procedure for the vertices of each polyline. The goal is to retain only the vertices where the elevation difference between consecutive points exceeds a specified threshold, for example, 10 cm.I have developed a script that extracts all the vertices and identifies them based on the polyline to which they belong, as well as their specific index. The process involves testing the elevation difference between each pair of consecutive points. If this difference is below the threshold, the point should be eliminated, and the process moves on to the next point.Example of the process:If Z_PL1_1 − Z_PL1_2<0.1, then point PL1_2 should be eliminated. Next test: If Z_PL1_1 − Z_PL1_3>0.1, then the point PL1_3 is retained. Next we test PL1_3 with the other points of the polyline excluding PL1_2, and so on. This principle is applied iteratively to all polylines.Problem encountered:I am facing difficulty with the implementation of iterations to apply thi
I have a workspace which writes multiple tables to a single Geopackage. When running manually it works with no errors but when running via tasks scheduler it fails with the following error: OGCGEOPACKAGE writer: A file system object called '\\xxxx\output.gpkg' already exists.2025-02-10 07:35:51| 25.2| 0.0|ERROR |OGCGEOPACKAGE writer: Unable to open or create file '\\xxxx\output.gpkg'. Please ensure the specified file exists and is accessible2025-02-10 07:35:51| 25.2| 0.0|ERROR |OGCGEOPACKAGE writer: An error has occurred. Check the logfile above for detailsHow can I avoid this happening? Is this happening because multiple writers trying to access the same GeoPackage file simultaneously, causing a conflict? Thank you!
Hello everyone, I am reaching out because I have run into a problem recently and searched through previous thread and couldn’t quite find my issue with a solution.I am running into a hang up when I run a workspace that triggers an additional workspace through FMEFlow using FMEFlowJobSubmitter. I will paste an example of what the log looks like. FMEFlowJobSubmitter: https://your.specific. - Submitting a request to run workspace 'Your-Workspace' in repository 'YourRepository'…FMEFlowJobSubmitter: https://your.specific - Failed to submit request to run workspace ''Your-Workspace'' in repository 'YourRepository'FMEFlowJobSubmitter - 'Failure when receiving data from the peer' My workflow is submitting around 70 jobs so after this error occurs around 15 times the error switches to:Error: Failed to update access token.FME Flow error: `FME Flow error: `929026:Error: Connection reset''FMEFlowJobSubmitter: https://your.specific - Failed to submit request to run workspace ''Your-Workspace'' in r