Using transformers to modify data.
Recently active
Last week a colleague asked me to help him to help him change his dependency of an Esri licence for his workspace, which in this case meant changing from an Esri GDB reader to an OpenAPI GDB reader. In his initial implementation, an Esri GDB FeatureReader was used, in combination with a Where Clause (constructed from incoming attributes), to only read in a portion of the GDB. So for example:However, when we switched from Esri GDB to OpenAPI GDB in the FeatureReader, I noticed that the Where Clause of the FeatureReader was greyed out, so unfortunately using a where clause directly at the FeatureReader was not possible. e.g.:So from there I assumed that a Where Clause would unfortunately not be possible for the OpenAPI GDB Reader, and when using the OpenAPI GDB reader, we should just read in the whole GDB, and then filter out only the relevant features later on. This week however I am attending the FME Server Authoring course of Safe (based on the corresponding trail in the FME Academy),
Hello everyone, I have an issue with an automatic process generating PDFs since an upgrade of FME server from FME 2017 to FME 2021. The process is quite complex but basically it creates network maps on demand. My issue is that, since the upgrade, the symbols rasterized on the maps are not rendered as usual. The symbols are imported from SVG files generated from an AutoCad dwg (because the network information is from an Autocad/Oracle DB). It uses MapnikRasterizer to produce a raster version of all the information, including the symbols as markers. I have identified the source of the difference in the rendering, it is how MapnikRasterizer handle the SVG. But I don't think it is directly related to the developement of MapnikRasterizer but how FME is integrating it and how FME handle the SVG. The SVG are made from Autocad blocks and most of them have an outline/contour of a slightly different color. So even a plain round symbol is constituted of two shapes. My issue is that FME 2017
FME Desktop 2022: Polygons fail to be saved in esri geodatabase polygon feature class, In the screenshot below, and the attached data and workbench, I couldn’t figure out why polygons fail to be stored in esri geodatabase polygon feature class
I'm attempting to dynamically map 141 different excel files containing attribute names (but no attributes) to the corresponding files that contain the actual attributes. There are 51 different files (.txt files in csv format) containing attributes for the 141 "schema" files, so a total of 7191 files containing data - none of which have attribute names in them (they all come in as col0, col1, col2...). Because there are 141 different schemas and because there might be new schemas added over time, I don't want to manually map the attribute names using an AttributeManager or AttributeRenamer. Also, they can change each year, so manually creating a schema file to use in a schema mapper doesn't make sense (the schema file containing the attribute names is horizontal, not vertical as well). I have been trying to use the FeatureReader to map the attribute name files to the attribute value files, as well as the FeatureWriter but I'm not having any success. Does anyone
Hi, fellow FME-ers! I have a NetCDF-file I have exported from ArcGIS Pro that I have attached (zipped). It was exported using the settings in the png-file in the same zip-file. I want to export every grid point in the file as a 3D-point with the Prediction as an attribute. Can anyone help me? I saw other threads about this but still couldn't figure out how to do it... Kind regards,Peter
Hi, I will calculate the average z-value of a ground surface based on a point cloud.So at the moment I am using SurfaceDraper to drap the ground on the surface. After that I am using BoundsExtractor. But here I have only the possibility to get the min_zvalue. I will get the average z-value calculated on all z-values of the polygon. How can I do this? I saw thatt there is also an elevation extracotr. But this transformer only extract the first z-value of the first coordinate. I cannot calculate the average on al z-values. Can anyone give me some help or hints?
For example, we have walls lines, but some times the room has only 3 wall lines. Or sometimes there is gap between wall lines. Is there way to create room shape(area or polygon)? Please see attached Sample CAD Cleaned File.dwg. This is my input dwg file. And I want to create a new layer called _Plines, this layer will have the enclosed polygn created based on the wall lines. The out put is something like CAP Level 1_RevC_MB.dwginputresult
I am experimenting with an aerial raster over a river delta trying to find the fastest way to extract centre lines over the water ways. Creating a point cloud with some sorting has resulted in a multipoint geometry that does a decent representation of the shore lines. Up until this stage the workspace is blazingly fast. But in the next step it becomes painstakingly slow. I have tried both creating a hull around the multipoints as well as buffering them. The former was slightly faster but still very slow. Are there other methods that might process faster?
My data is all in LL84. I'm curious if I should reproject into UTM or other coordinate system before I use Buffer and Dissolver? This is due the answer that I got for my other question https://community.safe.com/s/feed/0D54Q00009LDzFBSA1 The solution was changing LL84 into UTM and then everything found correct matches for nearest neighbor. I'm doing additional work with same data but this time applying a 4 foot buffer to each point and then running them through dissolver to see which points are near each other. It appears to work fine but after my last answer I'm thinking I should reproject the data to UTM and then do this work. Thoughts?
However, if an old verison of file is already present in the path, then it is able to rewrite the file. But i want each time it creates a new file. Kindly suggest
Hi FME'ers, I have access to Ordnance Survey's CodePoint with Polygons through the PSGA. I am trying to write a workbench that would dissolve the individual postcode polygons into the areas (DN), districts (DN1) and sectors (DN1 1). The issues here are vertical streets (sometimes stacked) and islands postcodes. I haven't had too much issue with areas and districts, they iron themselves out at these scales, but sectors are just a mess. I have been playing around with the Dissolver, Clipper, DonutBuilder and DonutHoleExtractor but each approach has it's issue. I would be very grateful if anyone could share how they have achieved the above. Many thanks,David.
Dynamic attribute name reading does not seem to work still (FME 2021). I'm trying to extract attribute names from certain excel row. I don't know the attribute names beforehand and workflow should be completely automatic. Basically I have attribute names like Extra1, Extra2, Extra3... and if there is any extra attributes, those names would be changed in excel: "Extra1" --> "car". What I'm trying to do is reading those changed attributes automatically, but can't get excel reader to dynamically detect changing attribute names. I know there is a work around with generic reader (link to question below) but that really don't work because I have to read specific cell range from excel and can't determine that cell range with generic reader. Any ideas how to work around this? https://community.safe.com/s/question/0D54Q000080hFpiSAE/dynamic-excel-sheet-reading-without-having-to-reload-the-reader
I am using the DuplicateFilter to remove features with the same attribute. It does work well but I am having an odd issue with the geometries behind each feature. The features that gets filtered out somehow 'still exists in the background'. It doesn't get counted as a normal feature if loaded in GIS, nor appear as one, but when using transparent symbology it is visible, as if it hasn't been fully removed. Just the attribute seem to be removed. The filtered out feature still seem to exist hidden in the dataset (a shapefile in this case). How can geometries be filtered out properly with their attributes?
I'm sure this is really basic but I'm stumped. How do I take some sort of action based on the number of features emitted by a previous transformer? In this particular instance I need to abort the final write (and send an email) if the number of features are less than 2000. I have a Counter, and can see the number of features. I have a Tester, but it appears to be testing each feature instead of the total count.
I have a shapefile of the road and I want to convert it into GeoTIFF But I want the GeoTIFF should show the road name
If I use a Counter Transformer in my workspace, I often find myself using a 'Local' Count Scope, and also I prefer to start counting at 1 (instead of at 0). Also, I would prefer to use the count functionality through Count() FME Feature Function(s) as opposed to using Counter Transformers, as this makes my workspace a bit more compact. Unfortunately, I haven't been able to combine both of these goals. In particular, I haven't been able to use the 'Count()' FME Feature Function in combination with a Local Count Scope and a Count Start of 1. See below screenshot and the attached workspace (FME 2021.2.2.0 b21806, Counter Version 3)). I had a look at the FME Feature Function documentation page, and I thought that the NO_LOG option could be similar to the Local Count Scope. If I look at the indicated Syntax of the Count() function, i.e.@Count([<domain>[,<startVal>[,<modulo>]]][,NO_LOG]),I'm tempted to believe that it should be possible to us
I have Esri SDE writer that is not updating a representation domain. I am trying to update two fields, a string for color and the rep field with an integer. If I remove the color field it writes the domain field fine. If I "enable" the color field it nulls out the domain field and writes the color. The log is not showing any errors. The workspace is super simple. I don't understand why it is doing this.FME 2021.1Esri 10.6.1Oracle 12c
Currently I have an XFMap file to parse attributes, but I'm looking at creating an attribute with the raw XML of the item to write out as a CLOB. Is there an easy way to add this into the xfmap to include it as an attribute when parsing out all the other attributes? I've tried mapping match=".", mapping match="*.", mapping match="*" all which don't work correctly.Thanks in advance!== Feature-Map to parse out each item ==<feature-map multi-feature-construction="true"><mapping match="item"><feature-type><literal expr="Feature"/></feature-type></mapping></feature-map>== Feature-Content-Map (what I'm trying to get to work ==<mapping match="."><attributes><attribute><name><literal expr="RAW_XML"/></name><value><extract expr="." /></value></attribute></attributes></mapping>
Hello,Here is my situation. I have nearly 500 gdbs with exactly the same schema (each gdb contains 7 feature classes). I need to merge only two feature classes. My process also involves a loop and because I do not want to read all the gdb everytime, I have an index shapefile (one feature = one gdb extent) which I intersect with the area of interest in order to extract the names of the targeted gdbs. Right now I have come down to creating a custom transformer which is able to select the good 2 features classes but in order for my filters to work, I need to be able to input the list of the previsouly selected gdb names in my epxression. So far this is what I manage to do. I know there is something missing but I can't seem to figure out what. Basically, what I need is a way to feed the list of attributes to build the expression that will filter what I need. Thank you for your help!
Hi, my attributes to expose in an jsonfragmenter comes from an user defined parameter, but I have to insert array brackets (like "WIND_6H{}"). How can I do this? It is only possible to edit this list manually or to take userdefined parameters, but not to edit the parameters dynamically.Thank you for your help!Christoph
I encountered something peculiar and I was wondering how/why this is the case. When I build a JSON document, I am able to fetch a number parameter, and parse that to a string.When I however try to do the same with a text parameter, and try to parse that to a string, I get an error. See below: Also seems related to this old community thread. In some sense I get the error 'undeclared variable' (since in XQuery the '$' is used for variables), but it seems odd that this error does occur for a text parameter and not for a number parameter, and I was wondering how that is possible. Of course there are easy solutions. I generally try to enclose user parameters in double quotes in these situations, like e.g. { "key": "$(IN_Text)"}In that case, (data type parsing) functions also can be used, like e.g. { "key": xs:string("$(IN_Text)")}But in this case that's a bit of a redundant example, as without that data type parsing function, the parameter is already inserted as a string. Just as a ca
Hello, I'm currently reading multiple data sources with a File/DIRECTORY reader and then using the path to read data whether its from a gdb, shp or json. I'm having trouble understanding how I can manage to read ONLY features that have a POLYLINE geometry. I'm guessing there is something to do in the constraint parameters of a FeatureReader transformer but, for the life of me, I can't seem to figure it out.Thanks for your help!Anne-Marie
I'm currently working in FME 2021.2 and trying implement a workbench that can do some dynamic filtering, etc by using a user parameter that defines which fields to act against. The workbench reads in zipped shp file(s) that can have different schemas each time it runs and I want to use a parameter to define which fields I wish to analyse. I can successfully get it to work when one field name is entered but never with 2 or more.Does anybody know what the parameter type should be (eg. text) and what format the field names need to be entered as (eg. VM_STATUS,R20AH or VM_STATUS R20AH)? When 2 or more fields, only 1 feature is returned. I know for a particular datasets that I should expect 207 which is what I get by manually selecting the fields when the data is cached while debugging the workbench. Thankyou for any time spent looking at this
I'm struggling to understand why I get different results for what should essentially be the same transformers. I created a set of sample data and workbench to demonstrate my question. Using NeighborFinder I'm getting points about 6 miles away from my test point. Using the same test point and using GeographicNeighborFinder I find the correct nearest points only 5 miles away. Since all my data is in same LL84 I don't understand why NeighborFinder isn't giving identical results. I'm asking because I eventually have to run millions of features and GeograpicNeighborFinder is nice but has a lot more overhead and will take much longer to complete. I don't need the extra features if NeighborFinder would give identical results.
A while back I developed a workspace in which I wanted to calculate the 'outsideWallArea' of buildings. That is, whenever buildings are directly next to each other, the touching wall that they both share, shouldn't be counted as an outsideWall. So for example, consider these 3 buildings (cubes with sidelength of 1);Now both building 1 and 2 would have an outsideWallArea of 3, and building 3 would have an outsideWallArea of 4 (note, the floor and roof do not count as wallArea). For this purpose, I used a SurfaceOnSurfaceOverlayer on the buildings. In this way neighbouring buildings fall apart in individual IFMEFaces, and by using the _overlaps attribute neighbouring walls can be excluded from the (outside)WallArea. The 'problem' now is that disjoint buildings are not overlayed to other buildings, and these keep having an IFMECompositeSurface geometry, where neighbouring buildings fall apart in IFMEFace geometry features. So after this step I need to distinguish betwe