Using transformers to modify data.
Recently active
New for FME 2021.0 is Group-By functionality on the FeatureWriter transformer. Group based transformers process data simultaneously based on data groupings. When Group-By Processing is enabled, the user can choose which attribute to use, which divides the data into groups. Additionally, if your data is pre-sorted into groups before entering the transformer, selecting “Process When Groups Change” can speed up the transformation as the transformer isn’t waiting for all of the data before sending the group of data out. In addition, when the groups change in this mode, the current writer will be closed and all its data will be written out before the next feature arrives. By adding this functionality to the FeatureWriter, data can be forced to be written out chunks at a time by using attribute values to define groups, instead of waiting for the entire transformation to end. This will avoid running out of resources such as file handles or memory in certain scenarios. One example is streamin
Hey, How do you split two differents feature type, like point and polygone, that went into a Tester together, back to being independant again. Thanks, Ian
Hi, I have a set of polygons (representing the street blocks) from which I was able to create centroids. I would like to create a grid from those points, meaning that points would represent grid intersections. Have already tried with triangulation but had no success.If it is helpful I can try and upload a sample. I would really appreciate any suggestion. Thank you. Edit:I believe I need to explain a bit more. In the current approach I am creating a "grid" based on the street centerlines and merge them with Neighbourhood Aggregator to 800x800m cells. The problem is that at the end grid borders are always on the centerlines (one side of the street is in one cell, where the other side of the street is in neighbouring cell). I would like to now try a different approach, where the grid borders would connect centroids of those blocks, this for example would be the output (red lines). Ideally, they would have a more rectangular shape, but not exclusively, it could also contain squa
Hi all, Feel like a regular here now, but after the success of my last question about keeping the lowest date in a series of entries, it appears that only some of these entries have values in. For example the reference field and date field will always have a value in, but the others? Not so much. Here's an example (attached). I've tried to use Aggregators and AttributeManagers to varying levels of success, which have ultimately caused more issues...but I wondered if there was a way of keeping the data from the populated rows and putting them into the others for that specific Reference number? Hopefully the attached screenshot will show what I mean. Apologies for the blanking out of data as it's confidential, but I've been wondering about this all day. It seems so simple, yet...not. Thank you
Hello, this topic is based on this initial post from me:https://community.safe.com/s/question/0D54Q000080hM3SSAU/what-are-the-fme-best-practices-for-modularization?t=1609774258752 However, the question is now a bit different. Therefore, I will open up a new topic. Goal: I would like to develop a linked custom transformerIssue: If the custom transformer has some sort of complexity, I have problems debugging it, since things like “feature caching run” is not available there.Used FME Desktop Version: 2020.1.3.0 (Build 20632) I tried 3 possible solutions, but I have some issues with all of them. Maybe you can help me out finding the “right way” to do it. Possible solution 1: Convert the linked custom transformer into an embedded one, develop inside the embedded custom transformer and then export it back into a linked custom transformer.Possible solution 2: Copy the content of the linked custom transformer into a new workspace, develop inside this new workspace and copy it after the develop
I'm struggling with the PythonCaller Transfromer regarding multiprocessing. The script below is a simple example to illustrate my problem. How can I get it running as a PythonCaller script? Currently the translation log says:File -c could not be openedProgram TerminatingTranslation FAILED.Error running translation.Translation Abortedimport multiprocessingimport randomimport time def worker(t, i, return_dict): print("Sleep {} seconds".format(t)) return_dict[i] = t time.sleep(t) def multiprocessing_test(n): print("in multiprocessing_test") manager = multiprocessing.Manager() return_dict = manager.dict() jobs = [] for i in range(n): p = multiprocessing.Process(target = worker, args=(random.randint(3,6), i, return_dict,)) jobs.append(p) p.start() for p in jobs: p.join() print(str(return_dict)) if __name__ == "__main__": def processFeature(feature=None): print("in processFeature") multiprocessing_test(10) #proces
I'm trying to extract all of the data from a table that lives on a webpage along with the hyperlinks that are embedded inside of one of the columns. The HTML table reader is only able to return the data that is displayed on the webpage, not the hyperlinks that are present. On the flip side, I can only get the HTMLExtractor transformer to collect the first record in the table. Attached is my workbench... what can I do to collect all of the records in the table?
Hi all,I'm trying to keep the highest date in a range, and each of these has the same reference number. For example - "Reference Number 1 has 8 dates and we need to keep the highest date for Reference 1", but repeat a few thousand times. I've had a method which worked before using Adjacent Attributes and sorting, but it doesn't seem to be working here. The dates are input in the %Y%m%d format (ie. 20120301) which I had hoped would make sorting easier. I didn't know, after a long search and trying methods out, if anyone had any pointers on how to achieve this highest date business? Thank you
Hi Everyone, I have problem with exporting textured OBJ file to other 3D files. Only geometry was exported. It is even possible?
Hello & Happy New Year Whilst testing this transformer I realised that if I set it to:Download "As File"Download To Folder "Intentionally set to wrong location" Then the invalid setting is not rejected nor the cog changing its colour to red.Is this by design? If I, of course, amend the ObjectID then the feature will be rejected.I also set the target folder (wrong location) as an attribute and same result ThanksSameer
I'm trying to write a a few 3D buffered lines into an IFC file. Buffering the lines to solids works fine, resulting in IFMEMultiSurface geometries which in itself consist of a good amount of IFMEFace geometries. When writing to IFC, I'm creating these features:1 IfcSite1 IfcProject1 PropertySetDefinition700 IfcProxy (my buffered lines) In the log I get the following warning while no features are written: IFC: Unable to write a geometry of type 'IFMEFace' with representation identifier 'Body'... Last line repeated 65059 times ... Any help would be appreciated. I can't find any documentation on 'representation identifiers' and how they influence writing IFMEFace geometries to IFC. FME 2020.1.2 b20620
I've had some issues regarding this Transformer: Dissolver.Using a dataset of polygons, after being worked, it is assumed that there are present a bunch of geo-issues as Gaps, Overlaps... Firstly, for GAPs, as my First option, I start dissolving the entire dataset to then extract "holes" or gaps with the transformer: DonutHoleExtractor. Here is my input: Consequently, and as I expected, all Holes were extracted and solved within the rest of the FME workbench, until I double-checked on the final output, where I mimic same transformer on Final Output, and surprisingly I got new Holes: Example: (I know, there are a bunch of holes... :_( )From the first Dissolver output, I'd get the Green ones, and with last final check (remember, same Dissolver transformer), I get the red ones, green ones were solved:Also, as you can appreciate, from the very beginning, there were green and red ones already on the dataset. The Dissolver parameters: My Second option was to try, on the sa
I want to add from excel file start and end point that are in Meters, to the road network(which is complex) and create line from it. attaching sample shapefile and excel file. Join field is RoadName. Does anyone solved such case? All suggestion will be very helpful. Thanks a lot.
I have a single band numeric raster on which I wish to cap the max values. I read in as tiff and then run through the RasterExpressionEvaluator with a simple if statement as follows:The output I send to the data inspector - but this is where it gets confusing as all the cells which have values greater than or equal to 20 are now set to NoData (0) and are NOT set to 20.0:In effect the @if statement seems to be ignoring the 'else' option. What am I doing wrong?
Hi, How I can test if unique values have different values in another field. Example: Field1 Field2AB1.... 1AB1.... 2AB3.... 3AB4 ....4AB5.... 5AB6.... 6AB7.... 7AB8.... 8So, AB1 has in field 2, values 1 and 2. So I want to filter that separately. Values can be changed, so I want generic solution. Can anyone help me with that? Thank you
Hi community,first of all, I whish you the best for the new year... Second, I have to create some report based on features retrieved by a first query.These features will be the "header" of the report page.I will have as much page as I have feature. The report "body" will be build according to query besed on the feature. So for example I will have: 1) 3 features : AAA- BBB- CCC==> 3 PDF pages with AAABBBCCC. The body of the pagze will be a query based on: Get info from AAA==> Create a table in the pageGet info from BBB==>Create table in the pageGet info from CCC==> Create table in the page... and At the end the 3 pages will look like: {MAIN_FEATURE_ID} TABLE WITH DATA---I already had a look at the PDFPageFormatter but I don't understand how it has to be configured. I hope you understand what I want to achieve.Thanks in advance for your help.Best regards,Steph.
Dear Sir or Madam:I am using FME to convert s57 to shapefile, but I cannot save the information below IFMEPloygon( the information in the red rectangle in the below picture).Can you give me some tips?Thank you very much.
HI there,I'm using S3Connector to download files from a bucket to a folder location defined in the "Download as File" parameter. These files may have special characters in the filename, such as: "%", "(" and ")" and they get converted to "_".Example: "1110716% - (Copy).dwg" --> "1110716_ - _Copy_.dwg" Is there some way to handle these characters?Or if there's a set list of characters that the transformer is treating these characters this way so I can set up rules down the pipeline to treat them as underscores? This is happening on FME Desktop and Server: 2020.2, Build 20787 Thank you,Janet
Hi,I would like to check if some points (around 2,000) overlap with building areas (around 54 million). When running the PonitOnAreaOverlayer it takes about 1.5 h to run as the transformer needs to count all the polygons, too. Is there a possibility to stop the transformer running after the points went through? I am still a beginner to FME, so there is probably only one single click to do...Best,Jo
I've noticed that FME converts AutoCAD text into a point at the bottom left justification of the text even though my CAD drawing has the text justified middle center. Is there any way to adjust where FME reads the text into a point? Thank you. Tyler FME(R) 2020.2.1.0 (20201130 - Build 20806 - WIN64)
Dear FME community, I have a question regarding a road network: I have a single road (top blue line) which is called "B 101". The road system has something like a positioning. Each road segment is divided into meters called "the stations", which are similar to a kilometrage on a highway, but the calculation of the stations restarts at every network point (the small red circles). They begin with the start position of 0 (attribute VST -> "FROM station"), and have different end positions (attribute BST -> "TO station") according to the length of the road. In the example the road goes from 0-1000, and therefore it is 1000m long in total. The station number increases with each full meter, the count direction is indicated by the ">" sign. In my workspace, I'm splitting these roads into smaller road segments. The blue road is split for example into the red road part, the brown and the green road part. The red part is not needed
Hi there, I have been using FME mostly for basic spatial and non spatial transformations, However this is my first time dealing with BIM formats. The case is that I am trying to transform an IFC file (extracted from a Sketchup project and georeferenced from a topographic survey) to a ESRI File Geodatabse (File GDB). Checking in Data Inspector, I noted the feature position is in Kara Sea, near the north pole, when It is supposed to be in the southern hemisphere, in Chile.Anyway, I generated a direct workspace and runs fine in the Workbench, and in ArcGIS I confirm the the same result of Data Inspector. Then I tried to reproject It to ArcGIS coordinate system; removed the original coordinate system and tried to set another one but I could not be able to match the proper position in both ways. What could I do to match the BIM file in the desired position?I have a point feature class with the coordinates of the BIM features, taken from a field survey. I can't edit or modify the IFC fil
Hey, we are working on ceiling grids in Revit and heard about FME can convert 2D grid objects to 3D and furthermore creat ceiling plates. Is there anyone who have worked on this before? I'm new to FME 😝
I have a lot of workspaces running off a lot of Oracle tables in a lot of different databases. When I run a workspace in which an attribute defined in a Reader doesn't exist in the source, I get this message in the log:2021-01-06 11:31:24| 1.4| 0.0|WARN |Oracle Reader: Column 'COLUMN_2' specified on Feature Type but does not exist in table 'TEST' and will be ignoredWhen I run a workspace in which the table no longer exists, or I lost access to it, I get no message at all and the workspace just treats it as reading 0 rows from the source. Is there a way to configure FME so that these cases will cause the translation to fail? I know I can do post reading checks to make sure rows came through and each attribute isn't missing, but I have a whole lot of these so it would be nicer if there was just a switch I could flip somewhere.
i tried to convert AutoCAD file with multiple views to MicroStation file using FME but the output file came with only one view ( which is model view) my question is can i convert this file and the output come with all view ?