Using transformers to modify data.
Recently active
I'm trying to read select multiple survey123 form responses dynamically to create a JSON template. The number of selections from a list of 24 values of tree diseases is in the survey, The feature service captures these multiple responses as comma-separated values. each comma-separated value is represented in JSON format for the HTTP caller to make an API request. each disease type has a unique answerIDHow to dynamically create JSON template from the number of list elements in the attribute splitter
I'm reading and writing LAS files. There are warnings in the log files about X,Y,Z and being converted from Real64 to int32. How do I tell (with confidence) if this is important? Are the numbers being changed in a way that meaningfully changes the result?LAS writer: Converting component 'x' from type 'Real64' to 'Int32'. If this conversion is undesired, consider changing the type explicitlyLAS writer: Converting component 'y' from type 'Real64' to 'Int32'. If this conversion is undesired, consider changing the type explicitlyLAS writer: Converting component 'z' from type 'Real64' to 'Int32'. If this conversion is undesired, consider changing the type explicitlyhttps://knowledge.safe.com/questions/47749/combine-tilling-and-compress-las-files-without-con.html has a recipe for counter-acting the conversion, but it's not clear to me if that is needed. That discussion links to another page that says only int32 supported in the output format. If that's the case then why go through the ext
Hi, I am trying to fix an issue in the workbench. It takes a lot of time for the buffer tool to run, even though have chose the fast option for processing. There is no grouping done and this has happened since we upgraded to FME 2020. Any help is appreciated
Hi All, I'm having problems looping a custom transformer I've created that makes use of adjacent feature attributes.The workbench I'm working on is intended to smooth DTM data and then identify trends in gradient along a set line. I've tested the process by manually replicating the transformers I'd like to loop but when I add them to a custom transformer and try to loop them I get an error (please see attached image).Before the data enters the loop I expose the adjacent z value and calculate: IF z-z+1 >=0.01 then z-(z-z+1) else z. I then write the result to an attribute 'bicubic_smoothing' so that the data entering the loop doesn't use adjacent attributes. The 'AttributeCreator_15' in the loop uses adjacent features to asses the difference between the first 'bicubic_smoothing' attribute and the second 'bicubic_smoothing' attribute and so on. 'StatisticsCalculator_2' assess the range of the values created by 'Attribu
Quiz! Difficulty: Hard. Make a recursive Clipper I want to clip 2000 partially overlapping areas with each other. And they are sorted and given a priority in the order they need to be clipped. Attached is an example workspace that uses text as a sample. Shown below are the result. The letter "F" is the first clipper, then "M", then "E" etc. Så every area/letter is behind the other one. The attached workspace shows the approach. How can I wrap the equal processes within the "New Bookmark" into a custom transformer that works recursively so I dont need to copy/paste these bookmarks x number of times. Good luck!
So I've had such a blessed, successful 24-hour run getting good advice on this forum, I'm going out on a limb and will keep it going... As an FME Server shop, we leverage FME Server notifications quite a bit. Mostly the success/failure type with a custom template to inform the support team if things completed on schedule and whether everything is running normally. Show me when something is wrong and leave me alone the rest of the time. This is quite helpful. In addition, I need more fine grained reporting for specific workbenches especially those powering integration with other teams. Oftentimes, that's basically an 'Emailer' transformer that sends out a custom message to custom audience. I posted about a related subject a while back. Now, I've recently put together a workspace that tries to gather various record counts across separate data streams. The easiest way I've found to do this is create any number of counters, starting at 0 and of type 'Local&
Hi all, this seems almost too straightforward, but I've got data going through a number of AttributeKeepers as I'm trying to build a Database Table from other Tables, which then go through an AttributeManager to get them in the right order. Unfortunately as soon as they hit the AttributeManager, all bar 1 input are set as <missing>. Any thoughts on why this may be? I've attached screenshots as I'm no stranger to FME, but this is just odd. Thanks
Hello all,I am facing a change in the behavior of the transformer Bufferer. I created a script in 2017 using Bufferer to generate eroded polygons with the same number of points as the original polygons. When I wanted to use this script with FME 2020, I found that the eroded polygons had more points, which disrupted the rest of the processing chain. Is there a way to recover the previous behavior? Here are some pictures to illustrate the problem I am facing.
Hello, I have two geojson files, available [here] (until the 21/04/2021). Each one contains a MultiLineString feature, converted to IFMEMultiCurves with FME. I would like to be able to detect any overlapping segment, with some tolerance, no matter their directions, and set a property to any overlapping (or "close-enough") segment from one dataset with any segment from the other dataset.I have tried various transfomers, but I am not able to detect overlapping segments, nor to break my datasets into segments ... Any advice about how to do this ? Thanks in advance :)
I am trying it via Quick Translator but I am not getting a printout. I want to be able to convert the IMDF standard to IndoorGML. Thank you in advance for your help.
Hi guys, I have been having an issue where some Base feature attributes where an attribute is Null are being populated with the attribute of the first Base feature that passes through the transformer.... the Candidate doesn't have this attribute so i can't be from that. I've run the workbench on FME 2020 and 2021 and get the same result. Cheers, Dave.
I was considering the possibilities working on large datasets by doing transformations as needed, in stead of clogging down the system with one big run. One way to do this would be to extract the required area, conducting the desired transformations and writing the result to a new table. Repeat when required, at some time in the future the new table would be completely "transformed". Assuming a dataset in postgis that has no county codes or similar ways to easily group adjacent features. And assuming it is huge and vectorized with many tables and gigabytes of data. From my experience the clipper transformer is pretty slow and would not perform well on the large datasets in this example. Q: Is there a efficient way to create a system of tiles covering a huge area, like a country or similar? And then writing these "tilecodes" to the features spatially covered? Can this be done with SQL? This is a follow up question to one I had a few days ago: https://community.safe
Hi all, I’m working on an FME script and I’ve hit a wall I can’t seem to get over. Basically, I’m using a custom transformer (PointClusterer) to cluster a bunch of points by proximity. The number of clusters I want is however many it takes to have groups of 300 plus remainder. So if I have 1500 points, I have five groups, 1501 points, I have six, 1499 points, I have five etc. The problem is that the PointClusterer transformer wants the number of clusters, not the cluster divider, and I want this field to be filled in dynamically based on the characteristics of the data I'm loading in. Theoretically, this shouldn’t be a problem. There are a bunch of different ways to get FME to calculate the number of clusters I want based on the total feature count I load in. Here’s an example of a really basic way I cooked up. I take the total count of features, divide that number by 300, round down, then add 1 and write that number to a field as an integer. Unfortunately, when I connect this f
I need to check a match between two output fields. The order of the data is inconsistent, and therefore ABC is not flagging as a match with CBA. I want to alphabetize the text strings so that the order is consistent and can be picked up via the equals or contains function in TestFilter.
Hi, could somebody please help me to understand the optimization parameters in the ShortestPathFinder? Here are my questions:Why does it take longer to calculate with a lower number of "Number of Iterations" (Options: When any condition passes, Number of Verifications: 1, all other empty) In my workflow (reorder 200 points) with a value of "100"iterations it runs forever, with "1000000" runs less than a 1 minute)What is the purpose of the "Iteration Rounds" option? Is there a link to the "Number of Iterations"?Thanks
I have a list of features. Each has a number of columns with a date as name and as value a numeric value. I want to use the date columns as a new column's attribute value, and write the date column's value into another field, like this: In this example I'd end up with 3 features. Furthest I've gotten so far was with the AttributeTransposer, however it returns every other field's value as missing and I can't get them back. Any ideas how to accomplish this?
Hi All, i've a dataset of points along a road network. What i'd like to do is either : Get the specific travel direction for each point using the angle from the previous point(NW, S, etc)or Get an overall direction for all points by merging the points of the same road(road_name) and getting the direction of the subsequent lineEach points id is incremented so i can tell the order, i'm just not sure how to go about it. For Option 2 i have tried a LineBuilder -> HorizontalAngleCalculator with some success but i'm seeing inconsistencies with lines that should be the same. Still the same when I tried using a sorter first to make sure the start and end points were arriving in order sorting by ID.
Hi everyone, Apologies if I'm asking in the wrong section, but I've been stumped with a geospatial problem and I have no idea where to even begin solving it. I'm working on a project where I have a bunch of lines inside of polygonal land parcels. Here's a rough sketch of what I'm talking about: I need to further subdivide these parcels into sections that contain ~80km of line each, while trying to maintain line connectivity as much as possible. So as an example, I'd want the finished subsections to look like this (very rough) sketch here, where the blue line represents the boundary of each subdivided polygon that contains ~80km of line:I've used FME a fair amount, but I have no idea where to even start creating a workflow that can handle this. I know I can use LengthCalculator to get length attributes for each line, but I'm completely clueless on where to go after that. If I can get the lines selected and attributed into discrete groups using length tot
Using the GeometryPropertySetter to set Traits to IFC files needs to use an AttributeExposer to be able to select the right attributes to put on the trait. This does not work well on Dynamic Workspaces with 20-100 attributes. Is there a way to use the GeometryPropertySetter in a dynamic way? For instance submit a list of attribute names or some other "hack" to make this dynamic for "more IFC-files"?
Hello,I'm creating a collection of building models from an ESRI file GDB feature class. I'm writing eachmultipatch to a Wavefront OBJ file. Any number of these OBJ files may be imported into a modeling program at the same time. I've had problems when different models refer to texture files that have the same name. My workbench assigns a unique name to each OBJ file. I want each texture associated with a model to employ the unique obj name in the name of the texture image: eg: bosYU9732_[n].jpg Currently, FME names each texture "noname[n].jpg where [n] is a small integer. I found this thread from 2014 which seems to include tips for hacking the .mtl file. https://community.safe.com/s/question/0D54Q000080hE7FSAU/rename-material-and-texture-from-wavefront-obj-to-obj Unfortunately many of the links are broken, and it is not clear whether any of the replies were useful to the original poster. Has anyone got updated tips or an example for me? Thank you!
I have a workflow last run about 2 years ago that uses several html extractors to get information form various parts of a website. I went to run it again without changing anything and got the following error `fme_rejection_message' has value `PowerPlants_HTMLExtractor: <class 'soupsieve.util.SelectorSyntaxError'>: Malformed attribute selector at position 0 line 1:[id=Height_of_the_Dam_(m)_nbr_rng1]^'I have other CSS selectors configured the same way that are still working. Any ideas
I want to convert a file (.las) to format (citygml), but when performing the task in the software (FME QUICK TRASLATOR), it generates an error. the file in (.las), is a file made with drone
Hello ! I have MultiCurve objects (GeoJson MultiLineString) that represent routes along roads, and which have some geometry issues : sometimes lines are overlapping, and some lines meet at a point but with opposite direction.Here is the overall dataset :And here is a problematic area :Exemple dataset is available [here].So my question is : is it possible get a cleaner file, with no overlapping lines or segments, and with a better global direction consistency ? And how to do so ?I tried to use Deaggregator, Intersector, Snapper, LineCombiner; and a few more, but so far I don't fully understand what I am doing, and don't get closer to what I want. Thanks in advance for any tip or help :)
Hi, thank you for reading my question! And maybe you have an idea? Please let me know! It's about: filling the nodata gaps in a raster.So, I have downloaded a DTM raster file. It's based on a pointcloud and some classes are filtered out, like water, building, vegetation, bridges. That leaves some nodata holes in the raster. I like to recalculate them, based on the nearest cell values. In the past, I did this with GIS and some neighbor tools for rasters, but I can't really find how to do this in FME. I have tried the RasterDEMGenerator and also the RasterConvolver, but without any good results... maybe I don't use them well or maybe I should use a completely different approach? No clue anymore. Any help is appreciated! Best,Harmen
Here is the error :Python Exception <TypeError>: 'NoneType' object is not iterableError encountered while calling function `removeDiacritics'StringDiacriticRemover_3_PythonCaller_2 (PythonFactory): PythonFactory failed to process featureStringDiacriticRemover_3_PythonCaller_2 (PythonFactory): A fatal error has occurred. Check the logfile above for detailsA fatal error has occurred. Check the logfile above for detailsFeatureJoiner (FeatureJoinerFactory): A fatal error has occurred. Check the logfile above for detailsFeatureJoiner (FeatureJoinerFactory): A fatal error has occurred. Check the logfile above for detailsA fatal error has occurred. Check the logfile above for details