Using transformers to modify data.
Recently active
In postgis i can flatten compound geometries like soSELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('COMPOUNDCURVE (CIRCULARSTRING (576285.49817038781 7034469.7208286244, 576325.10797829565 7034483.5911118472, 576367.02 7034485.76), (576367.02 7034485.76, 576396.53 7034483.05), CIRCULARSTRING (576396.53 7034483.05, 576447.15568394249 7034473.94116881, 576495.46 7034456.26, 576500.76470677822 7034454.0120333815, 576506.21 7034452.13, 576508.88920362911 7034451.3602161128, 576511.59 7034450.67), (576511.59 7034450.67, 576517.82000000007 7034449.45), CIRCULARSTRING (576517.82000000007 7034449.45, 576521.86965882347 7034448.9300352931, 576525.94000000006 7034448.61, 576543.62140925834 7034449.5502338214, 576560.694903961 7034454.2419341141))')))But how do i do the same thing in FME?ArcStroker can only flatten Circular strings, but not compound geometries?
I noticed that the WKT output from GeometryExtractor is not the same as the feature in the source data.If i run Geometri_SPA.STAsText() on a feature from in SQL Server Management Studio my return is CIRCULARSTRING Z (576285.5719837358 7034448.923522126 0,576284.6966432678 7034459.3191996245 0,576285.4981703878 7034469.720828624 0) But i run the same feature through GeometryExtractor with Geometry Endocing OGC Well Known Text my return isLINESTRING Z (576285.5719837358 7034448.923522126 0,576285.1277140373 7034452.078045797 0,576284.8387646212 7034455.250568986 0,576284.705831592 7034458.433448807 0,576284.729235197 7034461.619017426 0,576284.9089190548 7034464.799600528 0,576285.2444502913 7034467.967535808 0,576285.4981703878 7034469.720828624 0)Why is the geometry type changed by the transformer?I want to identify features of type compoundcurve, circularstring, curverpolygon etc and flatten dem to pure line og polygons. But as for now i am not sure how i can validate the results of
I had a look at this documentation:gtfs-measures/docs/GTFS_Script_Documentation.md at master · VolpeUSDOT/gtfs-measuresAnd it is exactly what I would like to do in FME. I already found the script to create lines from shapes, routes and stop text files, the problem is that those lines follow the stop coordinates. I need it to follow an existing road network. I couldnt get the Python script to work and it is pretty old as well. I tried snapping the bus stops to the road network before I run the script, creating a bus_stops_snapped but it still doesn’t really follow the road network. Any idea of how this would be done? I have the road network as both shp or geoDB. I creates line using this FME scriptTranslating from GTFS – FME Support Center
Hello,I am reading a folder with two shapefiles.I am exposing fme_dataset.fme_dataset takes the first values of the two shapefiles and does not change.I’m using FME(R) 2024.2.3.0 (20250130 - Build 24825 - WIN64
Hello everyone, I'm currently imitating this example from FME to generate 3D buildings from 2D polygons, but with my own data. I expected that, being 4 perfect squares, I'd get 24 tiles after running the deaggregator, but instead I have a few more.It looks like some walls have been wrongly divided. I need to "simplify" these parts into an unique wall or else the appearence setter will not correspond. The issue is that I can't seem to find the transformer or process to do this. I've tried changing the parametres to deaggregator and planarityFIlter, I've tried using Orientor and OrientorExtractor, I've been looking for some patterns in the orientation, surface coordinates or other attributes that could allow me to join them together… but none of them have worked. Has anyone got an idea how to solve this?BTW the original 2D polygon comes a FGDB and it's a fme_composite_surface by the time the geometrycoercer is run. The behaviour may be different from Mesh Objects, CityGML or Interpolis,
I have a point cloud with a certain class. This class will be scattered and in clusters within the point cloud, and I want to a) identify these clusters and b) create a point feature layer for the lowest point within these clusters and get the height. Is this possible with FME?
Hi All, I have been getting my head around FME Server and Webhooks with Survey123 data collection, and I am loving it! I can competently capture data via a Survey123 form, then trigger some FME automation to manipulate the data and email a specific user results dependant on what was captured in the Survey123 form. This is working well. I would now love to take this to the next level by using the formal Survey123 Report rest API. So ideally I want to get a copy of the Survey123 report PDF that is generated each time the webhook is triggered, and email this PDF to particular people. I have been searching this forum and I do not see any tutorials or any mention of working with the Survey123 Report API itself. Has anyone had any experience with setting up an automation that works with the ESRI Survey123 Report creation API, that they would be willing to share with me? note: I know with FME I can do pretty much everything the Survey123 report generator can do, in the long run with the doz
Is there a way through FME to automate the creation of plates (3D planar surface), from the following data:XYZ position (centroid) Shape: Always has 4 sides but not necessarily always a rectangle Dimensions info: Width and Length Orientation info: Azimut (DipDIR) and DIP
In the reader file I have multiple full names “John Doe”. I want to ensure my Writer 1 / Output 1 should only have the first entry of John Doe and the rest of the John Doe entry should be mapped to Writer 2 / Output 2. Ex.Name Address John Doe 31 xxx st John Doe 41 yyy st John Doe 51 zzz st John Doe on 31 xxx st should go to output 1, and other two John Doe should go to output 2
Remove space and Space* from the name ensuring John Doe*/ John Doe * converts to John Doe. What transformer and parameters should be implemented? Tried to use the Attribute Trimmer but it only removes either of it.
I can't subtract solid geometry with the fme csg-builder.My goal ist to subtract the terrain (extruded by -10m) from buildings, to evaluate the volume that is above the terrain (subtract the basement under terrain). 3D-View:2D-View: I tried several fme-transformer before plug them into the csg-builder. I used combinations of geometrycoercers and solid-builders with no success. My approach is to negative-extrude the terrain convert it to a solid and then substract it from the building-solids.The result ist always “nothing” (rejected):Or i just get one building dissolved (union) or cut (difference) when i dont use grouping:
I have a FME 2022.1 Desktop workspace with dynamic reader and dynamic writer. The reader generates several lists in some feature classes, in addition to attributes.How can I parameterize e.g. ListIndexer or ListExploder transformers to treat all appearing lists within various features of various feature classes streaming through my dynamic workspace at once, not explicitly knowing their list names (and hence not being able to indicate them as transformer parameter) ?
I have error messages when trying to run python script. I installed fme.exe python -m pip install pywin32 before import win32com.client but encountered a lot of error messages. Please see script attached. Please help. Thank you.
Does FME support reading Geosoft Geodatabse with the extension .gdb? If yes, which reader can be used?
For some reason when I run inlinequerier on FME server 2022 I get the following error. 64 2025-3-31 16:49:13 | InlineQuerier (InlineQueryFactory): The clause 'USE_FMEOBJECTS Yes' within 'FACTORY_DEF {*} InlineQueryFactory FACTORY_NAME { InlineQuerier } USE_FMEOBJECTS Yes TABLE_DEF Swap_Data Title<comma>text<comma>Hyperlink<comma>text<comma>Region<comma>text<comma>Status<comma>text<comma>Event_ID<comma>integer<comma>Usid<comma>text<comma>Market<comma>text<comma>SubMarket<comma>text<comma>ClosedOut<comma>text<comma>ErcNode<comma>text<comma>SSD<comma>text<comma>SSV_Ready_Date<comma>text<comma>Q_5640T_Date<comma>text<comma>FA<comma>integer<comma>County<comma>text<comma>SSV_Rejection_Note<comma>text<comma>sharepoint_item_id<comma>integer QUERY_DEF Swap_Data SQL_ENCODED Select<space><
I would like to create clusters of line data (geometry) for sampling, the geometry would be connected within each cluster. So far I’ve thought of:Create a bounding polygon > split it into X polygons using Tiler or some other transformer > SpatialFilter. This would be the easiest I guess, but this would create dead ends at the geometry around the polygon boundary. Ideally, I would like a closed/self-contained ‘route’ but not really necessary. SpatialSorter > group every X rows. But I realize this doesn’t give a nice closed-off route either and you would have to manually see how many rows to pick to create a nicer cluster so probably better off with the first option.Any better ideas? Additionally, it would also be good to be able to define a criteria for sampling like having X km of main roads and Y km of small roads in each cluster but I suppose that can come afterwards by calculating the counts per cluster and choosing clusters to hit the quota.
I’m using FME Workbench 2023.1. I have a workspace where I am trying to use a FeatureReader with a Spatial Filter for a constraint to limit the number of Parcels I bring in from the Parcels layer by running them spatially against the Corporate Boundary layer. I’m new to FeatureReaders and I’m not sure what I am missing to get this to work as intended. I have my Corporate Boundary layer connected to the Initiator Port on the FeatureReader. The settings for the FeatureReader point to the ESRI REST Service URL of the Parcels layer. And no matter what Spatial Filter selection I use: Initiator OGC - Contains Result, Initiator OGC - Intersects Result, Initiator OGC - Within Result...I only get 1 output to the Schema and 1 output to the Initiator port. See the image below. Can someone please explain what I might be doing wrong or missing when trying to use the FeatureReader? FeatureReader_Parcels Parameters view with FME Workspace in the background.
Hi all,I’m attempting to create a python script to encrypt a file for transfer to a bank.We need to be using PGP encryption, and as I understand the only way to encrypt using FME is by way of python.Having only recently joined the organisation, I was not here when the installation of the latest Form and Flow was undertaken, (otherwise I would have advised that the Flow installation 2022.1.1, should at least match the Form version 2023.2). But that’s only part of the problem I believe.First, I would like to attempt to figure out if the libraries are available from a Form workspace running on my desktop.When I check the INTERPRETER settings in the Options menu, it appears I cannot change or make reference to any alternative path.So far I have had very little luck, and would like to know if anyone hasa simple python script that can run in a workspace PythonCaller/PythonCreator that will provide a test (so far the script produces an error any way I attempt to write to the log). I must admi
Hi All, I've replicated a print call to a public mapping application using HTTPCaller. I've done this to try to capture some metrics on intermittent print errors we are seeing.However, complicating this, the response body results URL (from which the pdf would be retrievable) is formatted slightly differently between the HTTPCaller and the browser Dev Tools response. For example:In the browser I see: "url": "https://utility.arcgisonline.com/arcgis/rest/directories/arcgisoutput/Utilities/PrintingTools_GPServer/x_____xW6zDASkYrE9-8aNcJmscBA..x_____x_ags_e458af6a-0932-11f0-acf5-0e5ef779a06f.pdf"However in the HTTPCaller response I get: "url": "https://utility.arcgisonline.com/arcgis/rest/directories/arcgisoutput/Utilities/PrintingTools_GPServer/_ags_10f9db8b-0934-11f0-84d5-0afff93c372b.pdf"What would be the explanation for this difference?Thank you!
Hello FME Community,I am working with a Utility Network Model (UNM) in ArcGIS Pro and need to perform a subnetwork trace using FME. Since FME does not have a dedicated transformer for UNM traces, I am exploring options using the Python Caller or Python Creator to execute this operation.What I Need Help With: Python Script Guidance: How can I use the arcpy module (or another approach) within FME's Python Caller/Creator to perform a subnetwork trace. Are there any specific UNM functions or ArcPy methods that work best for this? Input/Output Handling in FME: i need to pass subnetwork name from FME to Python? How can I return the traced features back into the FME workflow? Environment: FME 2021.x ArcGIS Pro 3.x Python 3.x
I am working on feature and attribute extraction from an AutoCAD Architectural file, namely the extraction of room polygons and their attributes from AEC blocks that represent rooms. I have tried the Civil 3D reader and the reader actually sees the layer with the room AEC blocks and it shows me the available attributes correctly, alas the reader does not return any features. There are no errors, only a lot of warnings about attribute renaming because of scpecial characters.Has anyone ever succeeded in reading AEC block features and attributes? If so, how did you do it?
I'm trying to create a re-usable template that uses a dynamic reader to allow it to read a table from a database, the 'connection', 'feature types to read' and 'where clause' attributes would be defined before the reader but this approach seems to be causing me problems. The process so far looks like this... The FeatureReader looks like this...If I define the connection, table and where parameters within the feature reader everything works fine, the reader recognises the schema and creates an appropriate output port. Using the above approach and defining the same parameters as attributes doesn't create a output port (which I understand as how can it create a port for a feature type it hasn't read yet), next stop was the generic port but I can't seem to get anything useable out of this. I've read numerous articles on here about using a feature merger to merge the schema and the generic ports but this doesn't seem to give me anything useab
Hi All,I’m working on a workbench to help my team to convert E57 point cloud data into SLPK and publish these into a 3D Scene in Portal for GIS. Initially I was converting the E57 into LAS files and then use ArcPro to convert the LAS files into SLPK and upload them into Portal.Before doing any publishing on Portal I wanted to do a simple test on my machine to makesure the E57 point cloud export fine to my machine,I have read the slpk can be created in FME by using ‘Esri Indexed 3D Scene Layer (I3S)’ but, for some reason, I can’t get it to work. Below a screenshot of basic workflow that read the E57 and tries to export to slpk….but it doesn’t export anything? there’s no slpk at all, see below: Any ideas if I’m missing something?Cheers
I am getting the following error in a FME Form Workspace:Starting translation...ERROR : INCLUDE -- failed to evaluate TCL expression ` if { {-1} == {0} && {ORIGINAL} == {ORIGINAL} } { puts "MACRO REAL_MODE LAST"; puts "MACRO REAL_RATE <Unused>"; } else { puts "MACRO REAL_MODE ORIGINAL"; puts "MACRO REAL_RATE [expr <Unused> * ( -1 ? -1 : -1 ) ]"; } ' -- missing operand at _@_in expression "_@_<Unused> * ( -1 ? -1 :..." (parsing expression "<Unused> * ( -1 ? -1 :...") invoked from withinexpr <Unused> * ( -1 ? -1 : -1 ) invoked from withinif { {-1} == {0} && {ORIGINAL} == {ORIGINAL} } { puts "MACRO REAL_MODE LAST"; puts "MACRO REAL_RATE <Unused>"; } else { ...Program TerminatingTranslation FAILED.In a general context , what does this error mean? What are examples of issues that can trigger it and what FME form workspace design approach
I have a collection of geopackage files, several of which have different feature attribute schemas (attribute names, numbers of attributes). I have read the schemas using a FeatureReader, and created a list for each FME_Feature_Type_Name. (I’ve built a concatenated text string here just for visibility): Where I am getting stuck is in using this in a subsequent FeatureReader to define the attributes to expose for each file. I’m using fme_feature_type_name in the read location to grab one file at a time. But am struggling to use the Schema list or concatenated attribute to drive the attribute exposure. I can get all attributes exposed via AttributeExposer, but then I have to use a TestFilter and an AttributeManager to remove the attributes that don’t apply to particular files (because ‘expose all’ picks up all attributes from all files). Is there any way this will work?