7

I have an Excel spreadsheet which contains the file paths of MapInfo files that I want to convert to a File Geodatabase using FME. Is it possible to send this spreadsheet to the MapInfo reader so that it only converts those files?

So the spreadsheet might look something like this:

File Path
C:\Temp\File1.TAB
C:\Temp\File2.TAB
D:\Folder\File3.TAB
G:\Other Folder\File4.TAB

All file paths are in column A of the spreadsheet.

  • If you fast forward 18 minutes into this movie you'll see an example of how to use FME http://youtu.be/ejszB6VWnKE hope it helps. – user28787 Apr 3 '14 at 6:57
  • this is not an answer, but I am looking to do something similar. I have file paths for a ton of microstation files i want to process.. I tried using the workspace runner but am stuck. I read the excel file into the workspace runner but then don't know what to do from there! – kflaw Jun 5 '14 at 21:02
  • Please post this as a new question with more detail about your workflow and where you're getting stuck screenshots help. As it stands, your "answer" will get deleted. – Fezter Jun 5 '14 at 22:42
6

One way is read excel file as feature , then pipe output to WorkSpaceRunner which takes file name as input . WorkSpaceRunner runs another Workspace which takes file as input and does it magic there.

I have used WorkSpaceRunner is case where ineeded to read hundreds of las files and reproject and export them to database. Normal workspace which loaded all input files didn't have enough memory , so i created WorkspaceRunner workspace. Runner read all files names from dir , and then processed 8 files at time in workspace, which read only one las file and imported data to database

  • This worked surprisingly well and was very easy to implement. It was also the same advice that was given to me by Safe Support. Thanks! – Fezter Jan 22 '14 at 6:43
2

AFAIK FME currently doesn't have an out of the box way to do this (dynamically processing data within multiple arbitrary datasets) within a single workspace. If they implemented this feature though, you could do it with a FeatureReader: http://fmepedia.safe.com/AnswersQuestionDetail?id=906a0000000coPaAAI

It has to be initiated by another controlling process, e.g. another workspace, a batch script, a Python script, an executable, etc.

One possibility that avoids using a controlling process might be using a PythonCaller and reading the datasets using the FME Objects API and the FMEUniversalReader.

Basically you would read the Excel spreadsheet with an FME reader as usual, send each row of that spreadsheet into the PythonCaller, and the PythonCaller would read the MapInfo file specified by the current row and output the features of the MapInfo file to be subsequently processed by other transformers or writers.

I haven't tested this but it should be possible.

The next obvious problem then would be writing to multiple arbitrary datasets, which is also not possible with a single FME workspace. This I think is going to be much harder, but again, probably possible using the FME Objects API. For that reason I tend to stick to using a controlling process.

0

If you feel comfortable with writing Python this exampel shows you a way to go.

  • These examples won't work because the inputs are in different datasets (directories). I will add an answer to elaborate this point. – blah238 Jan 21 '14 at 16:44
  • The third example technically does this, but requires the geodatabases to be in the same directory and uses a wildcard to process them, rather than an arbitrary directory per feature type, so it is "cheating" a bit :) – blah238 Jan 21 '14 at 16:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.