Creating and organizing workspaces. How to use Workbench.
Recently active
Hi all, I’d like to classify polygons by shape, these might include: pie shaped, L shaped, T shaped.I was originally thinking that I’d have to convert them to raster and use some sort of supervised classification. Another method might be to convert them to centerlines and compare their linework: a T shape polygon would have 1 or 2 lines at the top, meeting at 90degrees to another line point downwards
Hello all, I would like to create a simple FME workspace in which PostGIS writer automatically reads attributes from the reader and adds an attribute with PrimaryKey (there are 30+ feature types in total). Is it possible to do it somehow? I have seen and tested this method:postgresql - FME PostGIS writer define column as serial/PrimaryKey with pre-existing id values - Geographic Information Systems Stack ExchangeHowever, the goal is to set up a straightforward process with automatic attribute definition. I would really appreciate it if you could share what methods you use.
I am using FME(R) 2023.1.1.1 (20231011 - Build 23636 - WIN64) - FME Forms.When running a workflow with the Data Inspector, from a file geodatabase with the SpatialRelator, the workbench appears to change coordinates on the fly. The dataset is in British National Grid (EPSG27700) with an expected data format of XXXXXX.XXX YYYYYY.YYY (depending on decimal places specified, ESRI being 3 decimal places resolution in metres). An example is 283400.7988999998 377644.82890000001.However, inspecting the output, within the inspector attribute table and the feature information windows, this is replaced by an arbitrary grid XX.XXX, YY.YYY. An example is 66.069000000013411 97.342000000017881. (These examples are different points). This doesn’t appear to be any projection or coordinate system with which I am familiar in this area and seems to be an arbitrary grid. Finally, when I click a point in the Inspector visual preview window, the coordinate system restores itself back to EPSG27700. This sol
FME Flow 2024.1 Is it actually possible to terminate a workspace that contains a JMSReceiver? I have a workflow set up and a terminator is triggered if certain conditions are met. This results in a Program Terminated and Translation Failed message in the log file but the workspace is not actually aborted and has to be manually stopped
I have a workbench file that generates the raster created by the QRCodeGenerator. So I have two output streams, the raster itself from the data stream and the PNG created by the PNG Format writer. Each QR code has URL data with dynamic parameters that can open an AGOL feature using the Camera app (Ios) or Google Lens app (Android OS). I’d like to extend this use case futher to include generating an email using the QR Code as a clickable image that opens the URL data of the QR Code. The way to accomplish this is make the email in HTML with an HREF link to the QR Code PNG sent from that email. My challenge is how to create this email with Custom HTML that will make this picture an inline image on the email and not as an attachment or a reference to a picture stored from another server. Hope I can hear out out some suggestions or snippets of Custom HTML that will create this HTML email with the HTMLReportGenerator transformer. I do not have FME Server so I’ll have to use Form Emailer tra
Hello! I am currently trying to convert the CityGML models into FBX format using the workflow below.However, it was found that the absolute position of the FBX generated would be 100 times less than the original model. Therefore, I added a Scalar transformer in my workflow. There isn’t any problem in display but the relative dimension value would be multiply by 100 as well. The enlarged dimension could not be visually observed even being compared with other normal objects but the dimension value would be 100 times larger. (Not sure if I am describing the issue clear enough)Moreover, I also found that the Aggregator transformer at the end was not actually grouping the surfaces as one surface. They were just grouped under an object where this object was not a geometry. I tried the Surface Dissolver to merge the surfaces but in vain. If I don’t group the surfaces together, they will be exported as a series of Surface Member which would be difficult to manage during viewing.Therefore, I at
I have set up an automation process that retrieves information from an API to generate a report. However, this task has become complicated because an essential piece of information we need to include in the report is located in a different API, which requires an ID to access the relevant data.I am considering generating the report first, which will consist of the necessary IDs. Then, I plan to make a second API call to retrieve the information from the second API, one ID at a time. I have successfully completed the first part, but I am now stuck on the second part and unsure whether this can be achieved using FME or if a Python script is the only solution.
I think what I’m trying to do should be pretty straightforward and that I’m just missing something obvious, so I apologize if this question is not great …I have a workbench that uses sqlcreator to connect to some data in my db. I do a few transformations and then finish everything up with an excel writer. I’m having an issue configuring the excel writer correctly. 1.New records are being added to the db, and I occasionally need to rerun the workbench. I want the new records to be appended to original excel output. 2.Also in between runs, I am writing notes and other relevant information in the excel sheet on empty columns I created in the workbench. I want to keep the text I’ve written.The first time I ran the workbench I had the writer configured to INSERT. No problem. I thought I simply needed to change it to UPDATE and it would start to append new features to rows below the original, but instead I get an error because I don’t have a field to put in the Row Number Attribute field. I
Hello there how could we find the closest road facing the Building from the North, south, Est and West the ides is to take each side of the building check its facing what direction and then towered that direct we should check the closest road we can see from that building side we are expected to get this result each color represent the relationI am attaching this sample data for referenceThanks
Hi,I think this question has been asked before, but the links in its answer were broken so I’m unsure what the answer was.If anyone is able to put me in the right direction that would be greatBasically I have a complicated workspace doing a few things on large files. In order to make it more efficient I would like to know if there is a reasonably easy way to get a rough indication how long each individual transformer was running in total. Then I can get an idea of where bottle necks are, or things I could improve.Currently I just look through the log to see if something takes a while, but that's tedious. Is there a better way? Is it possible to get some sort of summary how long each transformer takes to run?I do run the workspace on FME server/flow, though I do test it locally as well.Thanks
hello there we need to calculate the length of each polygon edge , the polygona could be in irregular shape considering the polygon is 4 edges if we use chopper or Geometrycoercer transformer we get many edge we are suppose to get only 4 Thanks
Happy 2025!I’m processing some OpenStreetMap PBF data and have found a duplicate attribute name, hard to believe but I think an artifact of OSM’s XML ancestry, two attributes differ only in string case, like my_attribute and My_Attibute. My processing changes all attributes to lowercase so I have two fields my_attribute. I tried a ListDuplicateRemover on the Schema output of a SchemaScanner but I get an invalid schema definition. Does anyone with knowledge of FME internals have a tip for dropping one of the duplicate attributes? Thanks.
This is a HowTo.I had a hard time adding a raster to an HTMLReportGenerator. Thanks to some remarks in an old Question of the Week I found a solution. Many thanks to @mark2atsafe!I share my solution here for others that may encounter the same problem (and for myself, in case I encounter the problem once more in a few months 😉).HTMLReportGenerator can't use a raster, but it can use an image. This image must be in binary encoding. The image can be embedded in the HTML, so it suffices to have a temporary image. The temporary image will be automaticaly removed when the workspace finishes.So the process becomes:Use a TempPathnameCreator to provide a path for temporary storage of the image file Use a RasterExtractor to convert the raster to a blob Use an AttributeFileWriter to export the blob to a temporary file. Specify FME-binary Encoding In an HTMLReportGenerator embed the temporary file as an image
Dear community,I want to automatically write all metadata for my geodatabase using FME. So I managed to set this up using XMLUpdater. But I only manage to do this for feature classes. I would also like to write metadata for the feature dataset, and even on the highest level, the geodatabase itself. How can I access the XML for these higher levels of gdb structure?The XML that I find with FME for a feature class only contains metadata for that particular class and not for the higher levels.Thanks in advanceNathan
Hi all,We have a set of points that we want to replace with symbols that are currently in a .dgnlib file. Opening the .dgnlib file does not give us the symbols directly within FME.How can we style the points using the symbols from the .dgnlib file?Kind regards,Ivan
This is my first time using the FeatureReader and the WHERE clause. I’m trying to tidy up my workspace and make it a bit more efficient.In the workspace I want to read in all the track points from an ArcGIS Online feature class and then in the WHERE clause filter it to just the last 24 hours.This is the WHERE clause I’m using. It has the correct date field. I’ve formatted it in the DateTimeConverter like this %Y-%m-%d %H:%M:%S."location_timestamp">='@Value(_24hrsago)'It filters immediately (I think) to what I need (first screenshot), but by the end it has passed through all the points in the feature set. Do I have the wrong output port connected up? Is there something I need to select in the parameters? This is what the FeatureReader Parameters look like. An additional question I have is if I want to filter to the last 24 hrs (as mentioned above) plus Projects A, B and C. How would I combine this in a SQL expression? I currently have this going into a Tester and then Clipper, but wo
Hi, We are deploying FME Desktop 2022.2 in our server (it’s a virtual machine). The security team had done a security scan and expected us to upgrade the FlexNet Publisher to version 11.19.6.0 or later. However, the FlexNet installer downloaded from this link (https://fme.safe.com/downloads/) is Build 11.19.2. And it looks like bonding with FME Desktop so that we cannot upgrade FlexNet Publisher individually. How can I upgrade the version of FlexNet to version 11.19.6.0 or later? Thanks in advance. Best Regards,Qubbie
Hello everyone, I transformed some Orthophtos in a new coordination system and the nodata areas are black. How can I make these areas transparent? (The output data formats are TIFF and JPEG.)(I have read the related discussions, but couldn’t find the solution for my case.) Thank you for your help!
Hi,I’m getting data from a streaming source (Kafka) that contains multiple geometry per feature read in WKT. To process the geometry, I “desaggregate” the feature first, produce a geometry from the WKT string, then try to aggregate it back with the Aggregator transformer. As stream processing doesn’t allow blocking transformers, I have set the Group Processing parameter to “When Group Changes”.My issue with this solution is that the feature leave the Aggregator only when effectively, the group changes which means when a new feature is read… I was wondering if there was a way to force the output of the latest feature, or if it was possible to make the process “Desaggregate/Produce geometry/Aggregate back” treat one feature per feature. Edit: this is most probably possible with a PythonCaller, I’m wondering if there was a “native” solution.
I’m wondering whether the dashboard workspaces for various versions are available online anywhere.I note that this question has kind of been asked before for a couple of reasons, most commonly that a restore and overwrites the dashboard workspaces of a new FME Flow installation.While it’s probably best practice to download the workspaces before the restore occurs, with the best answer for the previous question was for the workspaces to be attached (attachment is no longer available though), I’m wondering if it would be possible to have some hosted or available online, potentially via the FME Hub.As always, thanks in advance.
Hi all,I’m looking for assistance with calculating the Internal Rate of Return (IRR) in FME for a dataset containing annual cash flows grouped by a RecordID attribute.I’ve attached a sample CSV file ("Annual_cashflows_by_RecordID") that includes the data I’m working with. Each RecordID represents a unique group of annual cash flow amounts. My goal is to calculate the IRR for each RecordID.From my research, it seems the best approach is to use a PythonCaller transformer, but I’m not familiar with Python coding or how to configure this transformer for the task.If anyone has experience with similar calculations or can provide guidance on setting up the necessary transformers (or Python script), I would greatly appreciate your help!Cheers,
Hello!I am new to using FME and I am working on converting an FBX file storing a 3D terrain model into a CityGML format. I have come across with two questions. How to generate a TINrelief from an FBX file in FME? Does a TINrelief have/need a GML/JSON encoding in CityGML/CityJSON for conducting further geospatial analysis? Can it be a TIN file or a Geotiff file?Thanks!
Hi!I have a list, containing between 5 and 50 values (varying). How can I append a value to this list? I can only assume there has to be a non-pythonic way, but I struggle to find one. My approach was to use AttributeCreator, but I can't dynamically specify the position in the list. Had the list size been fixed, then that's a solution - but not in this case.Any ideas?
Hello Forum, I have two polygon datasets, each with just one object in it. The edges of the two polygons abut in places. I’ve created a workspace where I‘m reading in the ‘Above’ polygon dataset and the ‘Below’ polygon dataset. I want to create a line feature of where they share a border. To do this I’ve used an Intersector which gives me a new _overlaps attribute… The exact line I require is where _overlaps = 2… So, I added a TestFilter to filter out where _overlaps = 2… But when I wrote that to a new feature no geometry was created. So, I added a LineBuilder, hoping that that would force the line to be drawn. But the resulting FeatureWriter is still not creating a line dataset - it creates a dataset, but with no geometry. Any ideas? Thanks,Stuart
Hello Forum, Is it possible to artificially create a polygon based on the lower edge of an existing polygon? Imagine I have an existing polygon, I’d then want to create a new polygon that snaps to the lower edge of the existing polygon. The depth of that polygon doesn’t matter, for example it could just be roughly 50 metres away from the shared boundary. What really matters is that is snaps to the lower edge of the existing polygon. An alternative approach could be that the artificially created polygon is a doughnut polygon which wraps around the existing polygon to say, a depth of 50 metres. I could then split it manually where required… I hope this makes sense. Any ideas? Thanks,Stuart