Creating and organizing workspaces. How to use Workbench.
Recently active
Hello, I have a simple workbench script that reads in one shapefile. Using the DuplicateRemover I remoev all features that have a exact value. My writer is going to another shapefile. How do I keep the original columns/attribute values of the orginal input shapefile why removing the duplicate features. thanks
Hello everyone: Now I have an excel,the item in it has fild " ID ?GID... "?the“ ID” sometimes has same value.if the “ID” is unique ?set “GID = 1”?And if there are two items have same “ID“?set the first item's "GID = 1",set the second‘s “GID = 2“? I use the DuplicateRemover one after another can sove it?But I want use a Loop then there's somthing wrong . the Loop features can't be check by the DuplicateRemover ,they all transom output from the duplicate cort? Any one can tell me something about this
Hello FMErs, I have a dataset with a large number of attributes I want to write to KML. Since most of the fields for any one record will be empty I'd like to check each field of each record and remove the field if it does not contain data. The search criteria for each field are the same so I'd like to loop the attributes from an array of some sort. I've looked at lists and looping in custom transformers but I can't quite see a path. Any suggestions would be greatly appreciated, Alan
We have more than one FME Engine installed on our FME Server host. The Engines have different Versions, e.g. one Engine is 2012 and one 2013. This is inevitable in order to keep older workbenches functioning due to a lacking downward compatibility. So far with FME 2012 Server I was able to define on which of the engines a service will be run by assigning a parameter such as 'tm_fmeInstance Engine1' on the FME Server Console command (line). With FME 2013 Server this does no loger work. How am I to control the engine on which a service will be executed?
Hello My question refers to the What's New Info which comes with FME 2013 SP1 The What's New in the "latest" official FME 2013 says for the latest change: BUILD 13264 20130207 The What's New for FME 2013 SP1 starts with the oldest entry: BUILD 13400 20121109 and ends with the latest entry: BUILD 13448 20130319 My questions: Why is Build 13400 from Nov. 2012 when Build 13264 is from Feb 2013 ? I thought Build numbers are counted upwards ;-) What happened between 13264 and 13400 ? I' m sure there is a simple answer, but still I am confused ... Michael
I have tested the TopologyBuilder in FME 2012, FME 2013 and FME 2013 Server (64bit). Processing the data of approx 3milj. lines (street network) in FME 2012 takes approx. 5 hours. With FME 2013 it takes over 22 hours and in FME server it takes over 50 hours (has not reache the end yet). I noticed that the transformer has been rewritten in the new FME version (since it is different from before). I suppose it is a bug! Does anyone know of some other way to build the topology with FME?
Hi, I would like how to group and ungroup feature types from reader groups in the navigator pannel I have a 150 shape files in a work bench split over about 40 groups (Readers), however I would like to alter the readers are grouped without breaking the work bench model. Presently they are in the groups based on what shape files i selected to add a single time Thanks Matt
Hello: I have this code on my python shutdown script. I am invoking a second workbench, but I would like FME to prompt for the parameters upon execution, so the second workbench runs with its own parameters, according to whatever the client decides to enter: import pyfme import os import subprocess logger = pyfme.FMELogfile() fmeExecutable = os.path.normpath(FME_MacroValues['FME_HOME'])+'\\fme.exe' workBench = os.path.normpath(FME_MacroValues['Workbench_To_Run']) # initiate materialized view refresh if changes to either source if FME_TotalFeaturesWritten > 0: logger.log('Eecutable '+ fmeExecutable) logger.log('Updates detected, executing materialized view refresh script - ' + workBench) args = [fmeExecutable, workBench] p = subprocess.Popen(args) Unfortunately, the call to the second workbench runs with the default parameters, and never prompts for values. How can I : - Make FME
Hi I have a custom transformer F(a,b) I wish to 'chain' or loop an unknown number of times. (Its a customized raster overlay basically putting b on top of a) Example For six inputs features (images): 1,2,3,4,5,6 the followin should be done: result = 1 result = F(result,2) result = F(result,3) result = F(result,4) result = F(result,5) result = F(result,6) bangs head in wall :p How can this be achived? best regards!
Can you document this transformer? The help text only says: ListFromFilteredKvpList Creates a new list with all element which match a filter condition. FME Function Used: @Tcl2 Keyword: Lists
I'm trying to run a batch process using the cmd prompt and am stuck on an FME_EncodeText error for my input source shapefile. The workspace just reads in a shapefile datasource then converts it to various formats and fanouts based on basename. Any ideas Y:\\web_processing\\Projects\\Teranet\\postgis_clipper>fme.exe shp_parcel2multi_2013_02_18.fmw --src_shp Y:\\web_processing\\Projects\\Teranet\\postgis_clipper\\parcel_tiles_2013_03\\parcels_1\\parcel174355474302013tera\\Label.shp --FEATURE_TYPES "" --kml_fanout_directory parcel_tiles_2013_03_fme_kml --dwg_fanout_directory parcel_tiles_2013_03_fme_dwg --dgn_fanout_directory parcel_tiles_2013_03_fme_dgn Feature Manipulation Engine 2009 (20090106 - Build 5658) FME Professional (node locked-crc) Permanent License. Machine host name is: server17 Copyright (c) 1994 - 2009 Saf
Hello: I am trying to implement this portion of Python code on my shutdown script, but I don't get it to work: import pyfme import fmeobjects import os import subprocess logger = pyfme.FMELogfile() fmeExecutable = os.path.normpath(FME_MacroValues['FME_Executable']) workBench = os.path.normpath(FME_MacroValues['Workbench_To_Run']) # update the File Change and Population logs if translation successful if str(FME_Status) == "True": myWorkbench.updateFileChangeLog(FME_MacroValues['FMW']) myWorkbench.updatePopulationLog(FME_FeaturesWritten) # initiate materialized view refresh if changes to either source if FME_TotalFeaturesWritten > 0: logger.log('Updates detected, executing materialized view refresh script - ' + workBench) args = [fmeExecutable, workBench] p = subprocess.Popen(args) -- Runtime errors: FME_END_PYTHON: evaluating python script from string... Pyt
Hello: I have two FME programs: 1) Loads data in one spatial table 2) Loads data in another spatial table I would like to : - Keep these scripts independent, so script 1 can run on demand and to its thing, and - Script 2) can call script 1), for extra processing. My problem is, how do I invoke Script 1) from Script 2)? They both do different data processing, but it will be great if one can call the other. I am struglling with how to invoke Script 1, because there is no way "to trigger" its processing. I would like that, once Script 2 is done, it automatically triggers Script 1. Is this possible to do? I have been trying to do this with WorkspaceRunner, but I don`t get it to "run" Thanks again. Richard.
Kia-ora all, I am trying to use FME to implement a pseudo regression analysis. I have a workbench that performs a core process that comes up with 1 output value to tell me how well various parameters are corellated to a known result. This depends on a bunch of parameters (8 in all), and I need to run through testing each possible combination of parameters (256), turning them on and off, to find the best combination. Now I can create this scenario quite well with nested custom transformers, with each one just setting a parameter to 0 moving to the next nest level, then setting to 1 etc. Last level of nests is the bit where the core processing actually happens. This effectively loops through all 256 possibiities, without technically looping in FME. But I am discovering that this is probably not the most efficient way to do it, as each extra nest adds a load of time to actually working in workbench, as presumably it always has to think of how anything I do affects any nests undern
Hi, Me again. I want to use the date and time the workspace is run as the output file name. At the moment, I am using a creator, timestamper and featuremerger to add the datetime attribute, then using fanout dataset on the datetime. This seems a bit of a clumsy way of doing it, as the featuremerger is slow when processing lots of features. Can anyone think of a better way? Really I want to tag all features with the same value. I could do this by creating a published parameter, but cant think how to populate it with date/time. Thanks, Owen
Hello, Is it possible to only prompt for a published parameter choice depending on the input of another? An example would be, only ask for an input parameter if a particular format was chosen. Owen
Good afternoon. I need to pass in as a published parameter the WHERE clause to the ArcSDE Geodatabase reader. I have created a published parameter named SQL and when creating the ArcSDE Geodatabase reader I attempt to use the parameter in this manner: WHERE Clause: $(SQL) However, attempting to do so causes the below error: Undefined macro `SQL' dereferenced in file `C:\\DOCUME~1\\rolan002\\LOCALS~1\\Temp\\FME_1362421243497_6256' Program Terminating Is it possible in FME to use a published parameter with the ArcSDE Geodatabase reader? Also, is it possible to pass in the SELECT and FROM clauses to the reader, too? (I would need to do this because my statements are coming from a web page and are highly dynamic; if I can't do this, I could live with just passing in the WHERE clause and having a slew of workspaces to handle the possible user inputs from the form). Thanks much. Joe
I have recently had occasion to need to iterate my workspaces; that is, to run them multiple times on varying inputs. When I need to do this on a group of files, I can pretty easily write a shell script to launch the workspace with a different input and output dataset for each of the input files. However, I am now trying to extend this method to iterate over the feature types (in this case, Microstation .dgn levels) within a single file. I can't seem to figure out a way to implement this, though. I need to publish a parameter that controls which level is processed. However, I can't seem to do that. I can't create a reader for a single feature type and publish the parameter that picks which one (it is greyed out), and I can't read the whole file and filter it, because I can't seem to link the actual filter variables to a published parameter. There is probably a way to do this, probably not even using shell scripts, but I can't figure out what it is. Any i
Sometime back with in FME Desktop, if I am correct FME 2003 X2 release there was this cool option in FME to enable in Windows Explorer, summary information on the reader, writer and transformers used in mapping files and workspaces. I am unable to see this functionality in FME Desktop 2013. Am I missing something or is this functionality not available now! Regards SRG
Has anyone had to import a feature class' from a GeoMedia SQL Server Warehouse and maintain the rotation? I have some Water Valves as a reader and I am simply importing into an GeoMedia Access dbf. When I re-add the feature class from the GeoMedia Access dbf the valves all come in at 90deg. I want them to maintain their geometry rotation..... any thoughts.
Prior to FME 2012 I have created custom transformers that have a published parameter of an attribute name that is passed to the custom transformer. If I wanted to set the value of the attribute passed as a parameter I used the AttributeSetter transformer with the Attribute set to the published parameter containing the attribute name. How do I accomplish this in FME 2012 given the AttributeSetter has been replaced with the AttributeCreator? I tried manually typing in the parameter name into AttributeCreator Attribute Name field but no luck. I feel like I am missing something obvious and hopefully some one can fill me in. Thanks, CA
Hi, I am using FME 2012 and would like to write a startup python script in which I can import a python module and call that module's function. I used to be able to do this with pyfme but with FME 2012 I have to use fmeobjects and it throws an error when I do. Two simple test cases below. What might be causing the error? Looks like when I import the custom module, fmeobjects is not getting recognized. Embedded script (works): import fmeobjects def audit_start(): logger = fmeobjects.FMELogFile() logger.logMessageString("audit_start()") for name,val in FME_MacroValues.iteritems(): logger.logMessageString( " %s:%s" %(name,val)) audit_start() Imported script (error): import audit audit.audit_start() audit.py import fmeobjects def audit_start(): logger = fmeobjects.FMELogFile() logger.logMessageString("audit_start()") for name,val in FME_MacroValues.iteritems(): logger.log( " %s:%s" %(
Hello! I have CSV data which contains triangles. Each row contains one triangle. The triangle is defined by 6 attributes, x0, y0, x1, y1, x2 and y2. Is there a way to create polygon geometry using a transformer from those 6 attributes? I'm using StringConcatenator to create FME XML Geometry and GeometryReplacer. It works, but it would be useful to have a transformer, which could do that, something like Creator, but with INPUT port, since Creator doesn't have INPUT.
I have a pretty general question. I want to run FME in batch mode. Where can I get more information on doing so and what is the best way. The article I found on FMEpedia was empty: https://safe.secure.force.com/articles/How_To/Batch-Processing-Method-1-Command-Line-or-Batch-File
Hi Gurus, We are in the process of transiting from MapInfo v7 to Arc 10 and have written a bunch of workspaces to produce Feature Classes in the new SDE. This all works fine. The problem comes now we are about to switch our "point of truth" from TAB to the SDE and we need to run some legacy MapInfo Systems in the process. No problems right? Just author some more workbenches to write TAB files back from the SDE Feature Classes and use the MapInfoStyler to generate their symbology based on the LYR files we already created as part of the migration. Easy-peasy! The problem comes when we have some Branches using custom True Type Fonts to symbolise their data. When we did the migration we got the data custodians to sign off on a symbology change to use standard Esri symbols, but they want to see their old symbols in the legacy systems! Grrrr. Long-winded, but here's the question: How do I use a custom True Type Font library to assign symbology to data being output to a