Using transformers to modify data.
Recently active
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
Hi there, I have installed the pandas library into my workstation using the following command:fme.exe python -m pip install <package_name> --target <package_destination_folder> and got following message:Successfully installed numpy-1.18.1 pandas-0.25.3 python-dateutil-2.8.1 pytz-2019.3 six-1.14.0 However, when in python Caller I tried to import pandas using the following command:import pandasand ran the transformation, it throws an error message:Python Exception <ModuleNotFoundError>: No module named 'pandas' Could anyone help me in fixing the error?
Hello! Is it possible to extract coordinate pairs (lat/lon) that are within an actual shapefile boundary as opposed to using a bounding box of a shapefile? When I use the BoundsExtractor transformer I'm getting more points than warranted. Thanks.
I would like to change the table names of my citygml file. How can I realize that? I need it in order to transform my citygml to an imx file. thank you in advance.
I hope the title is already quite self explanatory.To illustrate the issue,I generated some (lowercase) text strings with 10 to 50 characters, using the methodology that was described by cwarren in the topic https://knowledge.safe.com/questions/88643/random-letter-generator.html.I first used a stringsearcher transformer with the pattern '.*?a.*'I then also used the FindRegEx stringfunction in an attributemanager for the same expression, with various combinations for configuring the optional parameterswhile including or excluding "" characters around the regex patternwhile including or excluding the ^ and $ anchors (for 'start of string' and 'end of string')I tried searching for only part of the string in the stringfunctionwhile also trying various combinations of greedy vs nongreedy searches.i.e. '.*?a' is a non greedy search to match 'zero or more' (i.e. '*') of 'any single character' (i.e. '.'), until the first
I have a data set with multiple repeated values such as thisADAADAADABentonCanyonCanyonDearbornDearbornDearbornDearborn and I want to increment a count every time the preceding value is different than the next value.so my 'count' would be like1 - ADA1 ADA1 - ADA2 - Benton3 - Canyon 3 - Canyon4 - Dearborn4 - Dearborn4 - Dearborn4 - Dearborn
Hello - I have a file geodatabase where most feature classes contains an attribute 'text_desc'. I would like to extract all unique values, and concatenate those into a single comma-separated attribute to generate a report. Due to slow gdb read times in FME, I would like to do this in PythonCaller for efficiency. Is this possible?
Hello, Is there a way to change the style of bullet points in a word written with fme? Thanking you in advance
I think bei Problem is to handle the traits and to attach them to the Objects.
I want to trigger a FEATUREREADER to run only if there are records that pass a tester. But I don't want to pass all the records to the FEATUREREADER, only trigger the reader to start. The passed tester records will be used in a different transformer but I also want to trigger the reader to start if there are any records that pass the tester. What is the best way to accomplish this? Thanks, David
I'm having an issue with the FeatureWriter where it writes to a database successfully but the features don't come out of the Output Port which I need to continue the transformation. Why aren't the features coming out of the Output Port? In the screenshot, 3 records are written to the database but do not come out of the Output Port. Since I'm writing to an ArcSDE database and I can't control the GlobalID, I have to write to the database then re-read the features after the GlobalID have been written.
The counters have to all be on the detailed data. I have tried putting the attributes to group in the counter name but this second counter is restarting each time and I want it to be incremental - as per the attached.Both counters are set to Local and have different counter names.I'm sure its something very simple I am missing but I just cant work it out
How can I expose the raster feature information? Looking to expose the band values.