Using transformers to modify data.
Recently active
Hello everyone, I would really appreciate your support.I have a CSV file that contains a column named "LINK" (file attached), which includes the URLs to download orthophotos (.tif).I’d like to understand how to download them all using FME: How should the HTTPCaller transformer be properly configured? Is it necessary to create an attribute to assign a name to the orthophoto files? Could someone share an example script or workflow? Thank you very much for your help and support!
I want to transform a geotiff to an ecw while removing the nodata. The geotiff has just one band (band 0: Gray8). I do not have a clipper, so I think cannot use option 2 or 3 mentioned here, but only the first: use a rasterbandnodatasetter.So I used a rasterbandnodatasetter to set 0 as nodata, but when writing to the ECW this is not retained and still a black border is shown around the georeferenced image.What should I do to remove it definitely?
Hi, Just wondering: Is there a transformer that reads Esri *.pagx layout file? Greatly appreciate your help. Thanks, Willy
I have a point dataset representing the locations of streetlights. I want to replace each point with a small line drawing that symbolizes a streetlight. This symbol is stored as a set of line geometries and can stay line geometry.I suspect I may not be using the correct approach, but here’s what I’ve tried so far:I used a GeometryExtractor to extract the line geometry of the symbol, and a GeometryReplacer to apply that geometry to each point. This almost works — however, instead of placing the symbol at the location of each point, the points are being moved to the location of the symbol. As a result, I end up with over 4000 symbols stacked on top of each other at the original symbol location.I’ve included an image of my workspace to illustrate the issue.
I have a building footprint layer that I am using an oriented bounding box transformer (blue line) and trying to keep the result as close as possible to the original polygon (black line) but for some reason the bounding box is getting squeezed out of shape. Does anyone have any suggestions as to why the bounding box is not aligning better?I am using it to try and automate the georeferencing of a CAD drawing and using the AffineWarper with lines that come from the corners of the bounding box. I am using the long side angle in the bounding box to rotate the CAD drawing, which in this example is still correct but the length of the long side is incorrect which puts out the affine points and scale calculation. This is a case where the footprint is a basic rectangle but there are many cases where the footprint is an irregular shape.
I have an Excel spreadsheet that serves as a data dictionary. After reading a shapefile in FME Workbench, is it possible to use this spreadsheet to dynamically define the data type of each field in the shapefile?
Hello there, I really have a hard time to understand how to use the "Geometry Validator". I checked the "help" and still not sure how it works. I checked an example in IMDF validator and not sure what is the column of "Issue to detect" does, such as "contains -0, NaN, or infinity". I really hope someone can give me a light introduction on this transformer. Thank you and I am really appreciate your help.
Hi! I'm new to FME and I have an issue with published parameters in a CustomTransformer.I created a CustomTransformer name "TeamsConnector" which need to use the published parameters "Message" in a pythoncaller: Now in my main flow I use twice my custom transformer with different published parameters value. "Message 1" as a value for the first use of my transformer: "Message 2" as a value for the second use of my transformer: My issue is when I run the flow instead of having "Message 1" and "Message 2" as expected, I have twice "Message 1":
Hi, It seems to me that there might be an issue when I'm trying to fetch a parameter value of a Custom Transformer, from a PythonCaller inside that Custom Transformer. If I do so, I obtain an error. When I try to do so in the main workspace, or when I add the name of the CT in the parameterfetcher, I don't get an error, and it works. See below screenshot and the attached demo workspace for an example.This seems like a bug to me, but it would be nice if the community can have a look alongside me. Kind regards, Thijs Ps. as a sidenote, I came across this Community Question in which the best practice for accessing parameter values inside a PythonCaller is discussed. In it, it is mentioned that best practice is to use param = fme.macroValues[‘parameterName’] in favour of param = FME_MacroValues[‘parameterName’] Additionally, it is mentioned that DaveatSafe created a problem report 4 years ago to make sure that this best practice is also honoured in the script editor for the Python
Probably splitting hairs here but I’m wondering what peoples preferences are for Tester vs TestFilterI have a Tester where I’m testing for someAttribute = someValue. this is case one. case two is where is fails the test.As it is on it’s own it’s not clear at all why or what the point of the test is. Using a TestFilter would let me define the output port names making it much clearer as to the purpose of the test without needing an annotation.Thoughts? Does anyone do this for the sake of clarity in a workspace?
Hi, I have a dynamic workspace where I am reading in multiple csv update files for multiple feature types to upsert into our database. I had set the primary key dynamically dependent on the target table in the database. I cannot set a where clause on an UPSERT (which I do use with other feature types that have the ability to do I, U, or D) so went to use the "Row Selection: Columns:" section instead. This parameter does not work in the normal way with attributes. It presumes the selected attribute is the primary key field (no orange left arrow in front of the name), rather than using the value. I tried manually adding @Value(primary_key) (the attribute that stores the primary key column name) in the parameter but the feature writer also presumes it is literal and obviously can't find a column called "@Value(primary_key)" and errors. This is something that I would like to do, and is very much a part of a dynamic workflow. Otherwise I will have to create one dynam
After adding FeatureReader_2, the reading order started prioritizing the XML block. Then, a join occurs with the Data Dictionary block, but since the XML is fully read first, when the flow reaches the FeatureJoiner, the data dictionary has not yet been processed, causing an error.This started after I added FeatureReader_2, because I need it to read shapefile files to extract the name and coordinate system, which are parameters defined in my spreadsheet with the paths to each shapefile.Is there any way to make the XML and Data Dictionary blocks read simultaneously? Or, since the FeatureReader is a reader, will it always have priority?
Hello,A DWG is converted to SHP with a Schema Mapper and Schema Scanner (This is a POC for a more complex workspace.). Output FileWhat is the Q_schemam attribute that is automatically created ? (I removed it from the writer but I am curious about it). How do I remove the original attribute from my Schema Mapper ? I selected ‘Source Attribute: Remove’ in the schema mapper, but the original attribute is still outputted. My output also contains Source Bra and Source Fea, how do I avoid writing this attributes? What are they ? Thank you
The FeatureReader for Esri ArcGIS Server Feature Service seems broken in 2024.0. I try to read the following feature type : "Zones de gestion intégrée eau par bassin versant - ZGIEBV";and I get the following error message : ArcGIS Feature Service Reader: Could not find a layer/table matching feature type 'Zones'Python Exception <FeatureTypeNotFoundException>: FMEException: 928219: ArcGIS Feature Service Reader: Could not find a layer/table matching feature type 'Zones' It seems to me like the feature type cannot contain spaces. This worked fine in FME 2023.
I'm using a FeatureReader to read an ArcGIS Server Map Service. The map service has a lot of layers (AKA: Feature Types) which I can choose from to read.If I choose a feature type name which doesn't have a space then it works but if I choose one with a space then FME Desktop errors saying it can't find the feature type with the truncated feature type name at the first space. Here is an extract from the logs below for "Fish habitat areas" as an example of it incorrectly reading "fish" as the feature type name ArcGIS Feature Service Reader: Could not find a layer/table matching feature type 'Fish'A fatal error has occurred. Check the logfile above for detailsStoring feature(s) to FME feature store file `C:\\tempDir\\wb-cache-DownloadFishHabitats-C19216\\Main_map_service_-_FeatureReader -1 3 fo 633 _lt_REJECTED_gt_ 0 85bd7267ad00c49a5eda9b6f99fe095bbe050483.ffsupdating' Is there a way I can get around this? (I can't remove the spaces in the
Hi All,I am working on data with Line Geometry and would require some help to solve the below scenario,While plotting them on map, I see there is small gap between lines in some scenarios and would like to join them together if the distance between two lines is less.(Reason for this gap - There is an asset in between the lines which has Point geometry.- Not sure if this statement will help, JFYI)Below is an example of different line geometries joining with each other, and there are small gap in some scenariosI would like to join gap between Line 3 and Line 4.gap between Line 5 and Line 6I am not interested in joining parallel line, as they are far from each otherAny help regarding the above would be much appreciated. Thanks
I’m seeing some weird behaviour on FME Flow (2024.2.2)I’m trying to debug a process on FME Flow which isn’t working properly. I wanted to see what was going on so I threw down a logger, republished, reran.To my surprise the feature never made it to the logger...now I know what you’re thinking. “oh you must be doing something wrong”. Well maybe.But the workspace is so simple. Creator>AttributeManager>Logger>File Copy Writer Here’s a snippet of the log:2025-08-22 12:19:45| 0.0| 0.0|INFORM|Creating writer for format: 2025-08-22 12:19:45| 0.0| 0.0|INFORM|Creating reader for format: 2025-08-22 12:19:45| 0.0| 0.0|INFORM|MULTI_READER(MULTI_READER): Will fail with first member reader failure2025-08-22 12:19:45| 0.0| 0.0|INFORM|Using Multi Reader with keyword `MULTI_READER' to read multiple datasets2025-08-22 12:19:45| 0.0| 0.0|INFORM|Using MultiWriter with keyword `PRIMARY_DEST' to output data (ID_ATTRIBUTE is `multi_writer_id')2025-08-22 12:19:45| 0.0| 0.0|INFORM|Wr
I have a texture embedded in a binary file. I’m trying to extract the textures and apply them to the geometry I’m loading. I figured the easiest way to do this is to read the textures in with the FMEUniversalReader. I quickly found out that I need to pass the input file as a string (filename). Ideally I’d pass this as just a BytesIO object as the library I’m working with already loads the data as a PIL object.At this point I don’r really see a way around writing out the textures to disk and then reading them again with FME. Any other ideas?
HiI have an attribute value derived from an Excel sheet. The input attribute name is “Vægt”. FME data type is number(20,2). An example value for a feature is “2.95”. I’m trying to retrieve this value using the xml templater using <Cell><Data Type="Number">{fme:get-attribute("Vægt")}</Data></Cell> But the output value in the xml is 2.9500000000000002 Could anyone explain why this is happening and suggest a fix? I have tried attribute rounding and changing the input Data Type but nothing seems to work. Thanks
I am using a python caller to read paths for files from my Input folder. Files in the input folder are ordered in a ClassName and AssetName folders. There is a variable number of AssetName folders under each class name folder. I am transforming data and using a schema mapper to read transformed schema A series of shapefiles is written with a dynamic writer.How can I copy the input ClassName and Asset Name folder structure when writing the output ? I tried using shp dataset fanout but I can’t get the configuration right.
I'm doing a relatively simple task using a RasterCellValueReplacer, im filtering a few rasters by a defined filter parameter.However, if the filter value is typed into the transformer it works fine, if i try and pass the filter value by either user parameter or attribute the result is completely different and incorrect.What's a bit more of a concern, when i use an attribute or a parameter, the process seems to be making its own filter value out of thin air, the raster passes through as if filtered randomly
I am trying to use the ChangeDectector to compare datasets before loading. First set is AGOL data, new set is SDE data. Every features is considered “changed” because of unexposed attributes that I don’t want to compare. When I have it set to “compare all except”, I am excluding attributes like “last_edit_user” and “last_edit_date”. There are only 4 to exclude and they are the same 4 for all the datasets so I am able to duplicate the transformer. But all records are exiting the “Updated” port because of these unexposed attributes: geodb_type, multi_reader_type, geodb_oid, etc. I dont want to compare these and I also don’t want to expose them first becuse the AGO layers don’t have some of them so I would have to create them and then exclude them. Alternatively, I could use “Only compare these attributes”, but because each set of data to compare have different attributes, I would have to fix the ChangeDetector transformer for each set. Is there a way to discard attributes that are NOT ex
Hello, The goal is to convert a large amount of DWG CAD files to SHP files.Each DWG file is located in a specific folder and subfolder corresponding to it’s location and level. Each DWG name has a prefix component indicating the plan’s specific location and a basename indicating it’s feature type. The prefix component is identical in SHPs and DWGs The basemap depends on a combination of layer(s) and geometry type. There is also a conversion matrix identifying which combination of DWG basename, layer and geometry type result in which SHP basename.Schema mapper & scanner are used to convert schemas based on basename only.I can output the corresponding shapefiles as Prefix_Basename.SHP in one global output folder.However when I try to set the dataset fanout, the folders are created but the files aren’t. I created two separate shapefile writer for comparison. The general parameters are exactly the same, on the writer parameters change.For the dynamic output folderFanout Directory= \o
Guys, I need some help with my XML. In some parts of my document, characters like "&gt" and "&lt" appear. Specifically inside the <data_dictionary></data_dictionary> tag, where I perform an update using the xmlUpdater transformer. What could be causing this?
Good day, I have some line segments that I aggregate based on an attribute in common. After the aggregation I would like to extract the coordinates of the first and the last vertex of the aggregated line (in green). I am using the coordinate extractor at coordinate index -1 and 0. The coordinate values I get as the result are not the first and last vertex of the combined line. I think the problem is that the new line is a multi curve. How can I extract these coordinates (in green) ?