Using transformers to modify data.
Recently active
In the source json file values.available_sf was null. i created a json templaterand assign this null value to BuildingSqFtTotal jason object. but after templater I got this "BuildingSqFtTotal" : ""I need "BuildingSqFtTotal" : null @david_r or anyone can you pls help "BuildingSqFtTotal": fme:get-attribute("values.available_sf"),
The spatial predicates for the SpatialFilter and SpatialRelator transformers do not seem to be working as expected. For example, after using the LineOnAreaOverlayer transformer to split candidate lines where they intersect any filter area boundary, a SpatialFilter ("Filter OGC-Contains Candidate") fails to pick up a candidate line which falls wholly within an area filter. Likewise, after creating candidate midpoints of filter lines using the Snipper transformer, a SpatialFilter ("Filter OGC-Intersects Candidate") fails to pick up on the midpoints which intersect their originating filter lines. After reading the documentation of these transformers, I'm struggling to understand why this is occurring. Is this issue related to projection / coordinate systems? Using the 'Select by Location' tool in ArcGIS Pro does yield the expected results (i.e. all the midpoints are selected when an intersect query with the lines is applied, and all split lines are selected
Hello everybody, I have a Python script that allows me to interact with an API of an application called KIZEO. Lately I wanted to automate data recovery by FME. So I had to use the HTTP CALLER transformer which allows me via a URL to retrieve the first level data, i.e.: Entity identifier. Dated. ETC. I stored all the identifiers retrieved by the script in a list (LISTE_ID). Then in order to access the detail of each entity (Level 2) I should call back the HTTP CALLER by entering the URL box: https://www.kizeoforms.com/rest/v3/forms/{formId}/ data/{LISTE_ID}. But unfortunately, the HTTP CALLER does not accept me to enter the URL containing a list, it asks me to give it just a single element. Link of API: https://kizeo.github.io/kizeo-forms-documentations/docs/fr/data
I have synchronising the data between 2 (source & destination)enterprise GDB on SQL server (2 separate SQL Server virtual Nodes) both tables are non-versioned & archieved. My challenge is while synchronising the data into the destination table it's taking long time to writing, due to this it has huge performance delays.For around 6600 records updating from Featureclass(A) from Enterprise GDB-A to Featureclass(B) from Enterprise GDB-B it's taking around 15-24 minutes. I would like to reduce the time for wririntg the features into the destination table.(GDB tables are indexed and using by other usersthrough services & arcgis clientS) You are assistance,advice or any piece of help is highly appreciated , @Takashi Iijima ,@david_r ,@theodrogo RegardsVIPLA
Hi all, I am trying to extract the following attributes from my JSON file: "area": "perimeter""laFeatureType" (plus some others) from the attached JSON file. I am using a JSONFragmenter with the query json["data"][*] but it isn't extracting as expect (all returns with "missing" data although I can see the data within the JSON file) .Screen shot of my fragmenter attached. Any help much appreciated. Thanks
Hello. I have a question. Does anyone know how to check inside the workspac that the workbench has processed all the data at the beginning of the WS? It happened to me several times that during a large WS the workbench looked like it was finished properly, but not all the data was retrieved during the data transformation. I came up with a counter at the beginning and end of the WS, but it's probably not the perfect solution. Another thing is that the counter reads over and over again, if WS is automated, I would need to somehow reset it when it's done. I need something that will be obvious at first glance, the search in the log will take me a long time. Thanks a lot
Revit files seems to have a non linear time to process. Is there anything I am doing wrong or anything I can do to speed this up. Currently a:8MB file ~ 10 minutes70MB file ~ 1 hour 10 minutes+200MB file ~ waited over 12 hours before cancelling. I have many of these files I need to process so just 1 file taking over 1 hour is way too long. What is the best way forward? I have a similar pipeline with civil3D files however they are processed fairly quickly, it seems to be just revit files take a long time.
I have a dynamic replication workspace which reads the contents of one file gdb and uses its schema to truncate/overwrite another. I've added some contour datasets to both gdbs that are static, and don't want them being included in the replication because of the time overhead they add in reading and writing. Mid-workspace workaround is the humble Tester, but not reading at all would be better. I've had a google of regular expressions to use for this, rubular rejected the solutions here ( https://stackoverflow.com/questions/2078915/a-regular-expression-to-exclude-a-word-string ), and couldn't think of how the merge filter would be used for it. I need to exclude feature classes like '%Contour%' and also those like '%0_5m' - in the latter case it can be an 'ends with' scenario as it is always at the end of the feature class name.
I am trying to understand why, when using the FME RasterResampler (cell spacing) for multiple datasets at various resolutions, the output is variable resolutions rather than just the cell spacing I have defined (10m). For example one dataset with a native 2m resolution does not get resampled to 10m when I use the RasterResampler setting cell spacings to 10m, but instead is is resampled to 14.3561626759533. All datasets are resampled slightly differently and only a few to the requested 10m. What I want is the resample output to be the same as resampling in arcmap, would I need to use a python caller to do that?
If a execute this workspace: Using an existing (and empty) database with this trigger on parcel table: I get this error: There seems to be a conflict between the "prepared statement" used by FME and the trigger. Are they incompatible? Note: This project is a simplified version of another in which the database schema and the logic implemented by the trigger are considerably more complex.
In FME desktop I have a geometry extractor which converts simple polygons to FME binary and stores them in the attribute _geometry. I need to use this geometry in another workspace. I pass the attribute _geometry to the other workspace using a workspace runner and a parameter. In the child workspace the Geometry Replacer fails. The error is INVALID_PARAMETER_GEOMETRY_SOURCE. Does anyone know if it is possible to pass geometry as text from one workspace to another or what I might be doing wrong? I've attached a simple example of the problem.
Hello everyone,In my workspace, I have one point cloud feature (IFMEPointCloud). The points have x y and z components , but many of these points have unnecessary digital precision. My goal is to round all coordinates up to two decimal digits. After reading the FME documentation and checking the FME Forum, it turns out that: "CoordinateRounder" does not work with point cloud datasets;"PointCloudExpressionEvaluator" only rounds float components using ceil and floor expressions, thus resulting in integers.As a workaround, I am trying to use "PythonCaller" to go through each individual point of the IFMEPointCloud and then round their xyz components. The documentation for IFMEPointCloud is, however, limited, and I don't know how to reach the point/component levels.Any ideas? Thank you in advance!
Hello.I am looking to split some of the attributes of a filed into 2 separate fields while rest stay in the main field contents. even the split one part goes to separate field and rest stays in.example I have following data:Banana 24Banana 25Banana 26Banana 27Apple 01Apple 02Apple 03Apple 04Pear PearI want it like Banana stays in original field and 26 goes to separate field.but nothing happens to pear.I tried using tester to filter them out then attribute manager with string function to replace but length is not same for all attributes how do I handle different length?Thank youNikki
Hi All, Hoping an extra set of eyes on this might solve this.I am using XMLUpdater to update geodb_metadata_string and everything works fine until I use a Conditional Value. Then I produce the error below. I have tried several different conditional statements, with and without quotes and have run it as PlainText and as XQuery but always the error. Pics from the Updater and Conditional Value below. Thanks for any ideas.Starting translation...Unbalanced quotation marks encountered on line 438 of file E:\GIS\FME\test\wb-xlate-1644023348637_43516 -- line was `FACTORY_DEF {*} XQueryFactory2 FACTORY_NAME { XMLUpdater } INPUT DOCUMENT_FEATURE FEATURE_TYPE AttributeExposer_OUTPUT INPUT QUERY_FEATURE FEATURE_TYPE Sheet1_XLSXR_2 FLUSH_WHEN_GROUPS_CHANGE { <Unused> } XML_TEXT { "@EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>geodb_metadata_string<closeparen>,XMLUpdater)" } COLLECT_CONTEXT_ITEM_NAMESPACES YES SEPARATE_DOCUMENT_FEATURES YES
The ultimate goal here is to orient overlapping lines in the same direction so that later offsets will come out neat. The lines have been processed in multiple steps and when I apply a OrientationExtractor it says: no_orientation. Is there another way to get the orientation, other than the Topologybuilder which is quite slow and requires a few extra calculations? Also is the Orientor the only way to rewrite orientations to a line, or is it possible to copy it somehow with something like a FeatureMerger?
We can't seem to get it to work using any of the available transformers, nor any of the help we've searched for online. We just end up with either the data in the output table staying the same, or an error in the transformation. We are using a standard file GDB in ArcMap with a FC containing about 10 million records, and we want to replace about 200,000 of those records with updated info that is located in another FC in the GDB (based on a common field (county)). Is there a way to do this??
Hi Guys, any ideas of how to solve this please (I'm a novice so take it easy please, I have a workbench that has 2 readers and 2 writers, the first part of the process reads and SDE featureclass , manipulates some attributes and writes to another SDE Featureclass - it has a run before and a run after sql for dropping indexes and constraints and recreating indexes and constraints and running a stored procedure. The second part of the process reads the updated featureclass and filters by query like value=1 then writes to a csv file. This all works however the second part does not select the correct number of records - its 6 records short. Its possible due to the before and after sql scripts taking a while to finish and commit. _ I can brake this into 2 workbenches and its all perfect but I'd like to keep them together - is it possible? Thanks Paulg
I want to do some transformation on a schema/datamodel of a GDB and write it into a new GDB (which should be basically the same schema with these adaptions). But i do not get any output if i use Format: schema (any) and feature reader. Does anyone has some ideas for me? I´m a newbee using FME.
I'm using FME 2021 to convert Environment Agency 2m DTM data into either shapefile or mapinfo tab, primarily for consumption in InfoWorks. I've used the RasterToPolygonCoercer to produce shapefiles but my users cannot import them in Infoworks. They receive the attached error. Not sure if its because I'm using a TIFF reader rather than GeoTIFF? The original files look like this: Any help appreciated - new to this aspect of FME!
Hi! I'm validating geometry of the CityGML files and I want to find out the errors and the smallest corresponding parts of the same feature for visualization purposes. According to the GeometryValidator documentation, features from the InvalidParts output port should contain attributes explaining what issue the smallest part(s) correspond to. With the help of the ListExplorer transformer I can get the error name (i.e. issue_found), but not the details. So the question is, how can I access the details attributes from the InvalidParts output port? That is very relevant because usually error name does not contain all needed information (e.g. what is the subtype of error). Of course, I could get the error details easily from IssueLocations output port, but then I get only point features instead of surfaces or solids. Is there any solution for this or am I understanding something wrong? Thank you!
I have a citygml file with detailed solid models and surfaces. I'm looking for a Workspace to convert to 3d SHP in separate layers, can anyone help?
Hi all. I ran multiple spatial filters to identify intersects between two layers, and now have around 70 attributes (custom named to the name of the layer, rather than the default name), that contain either INTERSECTS or Null. I want to now replace all INTERSECTS with the name of the attribute, using String Replacer or the like. What is the best way to do this? I have attached an example screenshot below of what I have vs. what I want to do. Thanks!
Hi, I want to extrude my cad data using point cloud. (airborne LiDAR)When you look adding pictures there is 2 shapes. I drawed that in Microstation programme. I want to do:1) The light blue one will extrude from the ground. I mean ground class (orange that) of airborne lidar.2) The dark blue one will extrude to up .Minumum elevation of the building (red dots) class in airborne lidar.The note that my light and dark blue shapes are the same elevation. My last product should be pic "3Dd1".
Hi,The KAFKAConnector works fine und provides me features with a filename "key"and the file itself "value". In my case "value" holds a zip-file with Shape-Layers. How can I access the features in the zip-Files? The content of "value" starts e.g.:"504B0304140008080800117242540000000000000000000000000C00000036313231396E67722E646266A4BD49AEB5C9921C5622454D04021A68016F2EBC83E89B2121160942608352092047DA8776A389D629B3F81AF76391F578322A1F2A2BF2FEFFBDD74F34DE9A9BFFCBFFE75FFC8B7FF53FFEDDDFFDBFFFC3FFF777DB3FFFCBDFFDDDBFF987BFFF37F77FFD3BFEEB7FFD57DF7FE5BFFCFD3FFC87FFF8F7FFF8F7FFF04FFCF9BFFF87FFEB3FFDDBFF7B2DFF13FFF53.... I think, I have to write this somehow to the filesystem. Maybe using the FeatureWriter Format: DATAFILE And then use the FeatureReader. Any Ideas? regardsHerfried
Hello there the data we have looked like this as a sample as you can see each end value of the r-name is the start of the next feature the goal is to group them based on this relationshipend result should look Thanks