Using transformers to modify data.
Recently active
When writing my data to an Excel spreadsheet, then I thought to get the attribute names in the first row of the spreadsheet.According the the documentation, the parameter ‘Output Field Names’ only has an effect ‘[...] only if the sheet or named range is being created or has been dropped or truncated prior to insertion. Otherwise, attribute names will not be added to existing worksheets or named ranges.’So, I drop and truncate what ever I can… 😂 However, while ‘Overwrite Existing File’ can be set to yes or no, and it sticks to the writers settings, the in the documentation mentioned parameters can be set to yes, but the next time you open the writers parameters dialog, your setting is back to no.The problem is most likely related toand I tried to set the row height to 0, where the name s are written.
Hi, few days ago I open a post :Best answers it was ok when I try with just one watercourse, but with 2 or more it’s not working. I tryed many days but without success, I don’t know how to set the accumulative lenght custom transformer to work with many watercourses. All segments that are part of a watercourse share an identifier (gwlnr) In attached there is a gpkg and .fmw. with the project in FME thanks in advance Custom transformer accumulative lenght
Hi all, Is there a way of exposing the transformer name as an attribute value? I'm trying to create a generic Emailer in which all the transformer "rejected" ports feed into, allowing easy identification as to where the error occurred in the workspace. Currently I'm creating a separate Emailer and writing the transformer name in by hand for each point of failure. I'm running FME Desktop 2019.2 :)ThanksAlex
I have a scan of an old map, that I want to geo-rectify so that it sits neatly under a vector dataset of property boundaries.I am following the example at this link “Adding GCPs to a scanned topographic map”RasterGCPSetter (safe.com)I have picked three GCPsI have a JPEG Reader for the scanned mapI use a RasterGCPSetter to set the three GCPsI then use the RasterGCPApplier to apply the GCPs (I downloaded GCPApplier from the hub)At this point it all looks great. The Inspector shows that the scanned map has rotated about 10-15 degrees. I am only using three GCPs, so this is an expected result.I then use a GeoTIFF WriterBut the GeoTIFF output has no rotation :-(What am I doing wrong? How do I write out a raster that is rectified?
Hi all,I have geometries (roofs) and I will use the transformer donutbuilder for further processing. The incoming polygons are all planar. The transformer “DonutBuilder” stopped with this rejection code:INVALID_GEOMETRY_DEGENERATEI was hoping to solve the problem with the “Geometry Validator” (fix degenerate or corrupt geometries). But all geometries were ok according to the validator.How can I avoid this error?Does anyone have an idea how I can solve this?
I have a process that includes the GeometryValidator transformer with a check on for self-intersections in 2D. The validation rightly captures those overlapping or crossing segments, but it also incorrectly catches vertices that snap to another segment. These kinds of geometries can be correct, as in the case of a trail that has a T-intersection and loops back onto itself.I’ve not found a mechanism to allow these kinds of errors to be considered valid. Does anyone have a work-around?
Hi,I have a layer of hydrographic network lines. A watercourse is composed of one or more segments, which share an ID. I have two attributes, abscissa_start and abcissa_end, which correspond to the length of the segment in a sequence. For example, in the attached image, I have a watercourse, where the first segment measures 50m, so start_abscissa is 0, and end_abscissa is 50, the second segment measures 80m, so start_abscissa must be 50, and end_abscissa must be 130, and so on. I need to find a way to be able to calculate the two fields abcissa_start and abcissa_end in FME automatically.The segments are always digitised from the origin to the mouth, and the calculation must be done taking into account as the first segment the one at the mouth. They already have a lenght field. Thanks,
Hello, I want to cut a layer (buffer zone) according to another layer (urban zones), so I set up the transformers clipper but the cutting does not take place and the entities that emerge are the same as at the input (cf. attachment) :Before Clipper :After Clipper : Would you have an idea to make this cutting work so that my buffer zone does not exceed (that it must therefore be cut) according to the urban areas present in the second layer? Thanks!
Hi all,I am using Change Detection to compare 2 geodb_tablesAt the delete ports, the correct number of deleted rows is 2But it is not being cleared in my writer, the result in the output table is still 11Please let me know how to fix this error.For the geodb_point and geodb_line data, the result is completely correct, only geodb_table has an error as I showed above.
Hi,This is a question that is really related to another piece of software (lastools) but it is using a product of FME.Basically in lastools you can colour a point cloud by an aerial image (the same as PointCloudOnRasterComponentSetter). I want to set up a script to do it in lastools because that is faster for this task.Anyway, lastools only accepts one raster (tif) as an input. I have multiple overlapping rasters. The overlapping parts are identical. What I want to do is merge these rasters and chop to the extents of each input point cloud.That is all easy but I’m having a little trouble getting it to work. It seems that lastools doesn’t like the RasterMosaicker transformer. The input (pre merged) rasters work fine, and even the clipped rasters (clipped but not merged). Which I’m taking to mean my writer properties are correct. I can’t see any difference in properties between ones that work and a mosaicked raster. I.e the bands/palettes are all the same because the source rasters are a
Hi,I was wondering if you could please provide me with a sample FME script that uses PythonCaller or PythonExecutor transformers.I’m trying to setup FME Form to ensure PythonCaller is working. As well, would greatly appreciate any instructions you could provide to configure FME and Python and ensure that PythonCaller would work.Thanks, Wilfredo
Hi All,Today’s million dollar question: I have created a workflow to process some polygon and table data into a template GDB. The process isn’t too complicated but I think the most consuming transformers in the process are the DataTimeConverter and the FeatureWriter. I have done some tests but assume that processing around 94M of records will takes days. Mainly, writing 94M of records into a gdb template will be a nightmare.Here is a screenshot of the workflow, I have also attached a version of it:How can I improve the performance of the workflow and process around 94M of records in a clever way?Open to suggestions :)Thanks
Hello everyone , I am willing to combine 2 cityGML files that has the same CRS but with different LODsi need this in my studies project and i wonder which transformer shall i use , can someone help I am still new to FME software .I’ll be so thankful to any feedback ! Regards,
Hello!I created a workbench using FME 2022 and then updated to the FME 2024 version. After the update, I also updated some transformers.Now, I need to revert to FME 2022, but some transformers are incompatible and not visible on the workbench.Is there a possibility to restore those transformers to a previous version to be compatible with FME 2022?Thanks!
I am using inspection point before and after the CoordinateRounder transformer to notice that only few coordinates are rounded while others are left untouched. Is it something others have noticed?
I have an XML file generated by a specific SW, and there is an issue with one element, which content I cannot influence as I would like to. So I decided to try to update it with XMLUpdater, but I am just walking in the circles.The (very simplified) file looks like this:<?xml version="1.0" encoding="UTF-8"?><gdb:Utilities xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:atr="atr"... etc.> <gdb:Data> <gdb:BiogasStations> <bgs:Records> <bgs:Record> ... <atr:IDZone>58KVK-96</atr:IDZone> <atr:IDSpecific>0</atr:IDSPecific> ... </bgs:Record> <bgs:Record> ... <atr:IDZone>58KVK-07</atr:IDZone> <atr:IDSpecific>0</atr:IDSPecific> ... </bgs:Record> <bgs:Record> ... <atr:IDZone>18LIK-15</atr:IDZone&
The images are successfully uploaded, but the server assigns the incorrect mime type. This causes the images to download, and not display in browser. I have tried setting the 'content_type' manually to 'image/jpeg' - but the server seems to assign the mime type to 'application/octet-stream' every time. my config is below. am I using the wrong syntax/config? thanks.... Multipart upload is as follows:
Hello there, I feel like this should be incredible simple, but I feel like I am banging my head against a wall. I am trying to update the name value in this JSON, ‘cp2regions’ to ‘new_name’ for example: { "featureType": { "name": "cp2regions", "nativeName": "cp2regions"}} Using this this workbench;Set up like this : I can’t seem to find a good tutorial/example workbench on how this Transform works. Many Thanks!
Hello everyone,I'm looking to place the maximum number of points within an irregular polygon, ensuring a minimum distance of 250 meters between each point. Initially, I considered using a grid, but I've realized that this method doesn't optimize the space within the polygon very well.Do you have any suggestions or more effective methods for solving this problem?Thanks in advance for your help!
I am trying to write polygon features into a Esri Geodatabase writer where the layer name is NV_NATURRESERVAT. But, the writer is trying to add a suffix “surface” so the output name will instead be NV_NATURRESERVAT_surface. This is not correct.First of all I dont want the a layer with a name like that. And second, before it reaches the writer the script filters out if theres a need to create a layer or not in Esri Geodatabase.If theres a need to create a layer it will create on in another writer. If there exist a layer with that name the flow will continue to the second writer. In this case the layer exist, I just want to update it with new data. So, up until writer(s) the layer name is set to NV_NATURRESERVAT. But when it reches the writer it gives me error messages saying that no such layer exist:“Esri Geodatabase Writer: Feature Class or Table 'NV_NATURRESERVAT_surface' must exist when Table Handling is set to 'Use Existing'GEODATABASE_SDE writer: An error has occurred. Check the lo
Hi guys,I am trying to automate a process which requires to write into a new file-geodatabase everytime I run a translastion. Essentially I am reading data from 1 database trying to stage it in a new geodatabase and then moving it to its final destination. I am using FeatureWriter to continue the translation but i am getting a geodatabase is locked error. That is why I am trying to create a new file geodatabase for the staging part of the process as this is where the error keeps on occurring. Is there a way that FME workbench can create a new file geodatabase for my feature classes in a same workbench?Thanks!
Good morning,I am trying to do a spatial join between two polygon files. One is the property boundaries and the second is conservation easements. The goal is to combine the parcel id from the property boundaries to the conservation easement polygon, where a new polygon will be created for each intersection. I am trying to recreate a model I built in ArcGIS Pro. Screen shots below.
Hi, This subject is discussed already quite some times but I don't get it working. I have a loop where a feature enters with 3 fields (field_name, field_value). I want to use the AttributeCreator to make a field that is named after the value in "field_name" and gets the attribute value from "field_value". As there is an option inside the AttributeCreator "Attribute Name from Attribute Value" is supposed this would do the trick. But this does not create a new attribute. If I type the actual field name in the "Attribute Name" field in the transformer it just works fine. The attribute names are like this: net_elements{0}.xlink_href net_elements{1}.xlink_href net_elements{2}.xlink_href net_elements{3}.xlink_href ...
Hi All,Im trying to do a spatial join of attributes from the red line (running parallelish) to the black line, not the attributes from the red line running down Duke Street.I have tried a range of thingsbuffering the black line and seeing what it contains ( it contains a piece of Duke Street) and the parallel red line but i cant work out which record to take getting the polar angle of the lines and looking at the list of records that spatially join it - im struggling to sort the list to find the correct record. I think i need a Spatial Angle Join but am struggling with the logic on the listsAny help or suggestions appreciated. Thanks Steve
I am using an SQLExecutor to write spatial data into an ArcGIS Enterprise database table.It took me a while to get it done, and there is still more work to do but currently a smaller chunk of data is for the first time written into the table. What bugs me is the 4 lines of warning that I get for every feature written.Microsoft SQL Server Spatial Reader: Getting Custom SQL schema failed. Custom SQL query 'INSERT INTO building (OBJECTID,SHAPE)VALUES (27, geometry::STGeomFromWKB(here is of course the binary, 25832))' may execute in an unexpected manner. Make sure all columns are named (any ambiguous columns, e.g. GEOM.STBuffer(1), must have an AS clause). If there is an ORDER BY clause, either remove it or add a TOP clause. If this warning is generated in a SQLCreator or SQLExecutor, you can avoid it by picking Data Features in the Features to Read field the message coming from Microsoft SQL Server Spatial Reader seems strange how can I avoid this in the SQLExecutor? Should I set th