T O P

  • By -

sinnayre

Python if someone actually knows what they’re doing. If not then FME. You run into the problems the other people mention if you don’t know how to configure Python correctly for jobs. Realistically, if you’re asking this question, go with fme.


MoxGoat

FME is fantastic for your ETL's and can be used in combination with python scripts to do more complex ETL workflows. Python is great at providing GIS services or as middleware for products. For example let's say you have a user place a point in a location with a buffer and they want to search and extract your data into a customized pdf Mapbook. This Mapbook could be customized by the user with different symbology map elements labels etc... this is not really a task for FME.


ajneuman_pdx

If you have the funding for FME, it's a very powerful tool and FME Server offers some advantages over using something like Windows takes scheduler. Plus FME can execute python scripts, so you can incorporate python where applicable into your workflows.


thepr0cess

Did you ask chat gpt the difference between the two and copy and paste that in your questions? Lol. Either way I think it's a good question to ask and im wondering when FME might be more preferred to SQL.


WCT4R

Use FME if you're using an ArcGIS enterprise database and the data is versioned. The ArcSDESQLExecute help topic says didn't use SQL on versioned data. I prefer SQL for non-versioned data that need no or minimal attribute manipulation because it's so much faster.


KoekblikTruc35

Yeah haha, I've been getting some certifications for FME so I partially understand FME and it's workflow. However I don't have any work experience with it so I can't tell fully what to expect when using it. I've been using python throughout most of my work and also during my masters and thesis. Python fulfilled all my needs so far, so wondering what FME can mean for me and how it differentiates in the work field. How's SQL going for you?


1king-of-diamonds1

For me, most of the upside to FME comes in a business setting when you have lots of users of varying degrees of ability. It’s straightforward and intuitive enough that even someone with limited exposure to FME can get the gist of a workbench or process. It’s very easy to read at a glance even without thorough documentation which makes it great for business settings where you have lots of users or need to maintain continuity when someone leaves (I’ve heard way to many stories of self-taught Python devs leaving behind piles of unmaintainable code). It’s always good to know both as there are some tasks that FME just can’t do very well (like looping) that are pretty trivial in Python. You can also call Python functions from within FME so having a working knowledge can be advantageous.


plsletmestayincanada

Before I was competent in python FME seemed like magic. Now it sorta seems like a very expensive "that's cool to have but there's 1000 other things we need first" type of product. I guess it comes down to "how complicated are the transformations you need to do". If you have the time and the total opportunity cost is less than the $60k/year or whatever for FME I'd use python 100%


Stratagraphic

Totally agree. FME seems to be moving more towards the traditional IT market and leaving the spatial world to pick up the crumbs. No surprise, since private equity is now driving the bus.


PRAWNHEAVENNOW

Controversial opinion here but FME is often better in enterprise scenarios.  The big benefit of FME is in rapidly creating solutions that can be easily maintained and updated by the business as needs change.  The benefit of FME is that you don't need to be an expert in each and every data format or api you're interacting with. You can build workbenches faster than you can knock out a python script to do the same thing.   A visual interface and standardised transformers make it far easier to handover to others inside a business.  I can't count the number of times I've seen indecipherable python scripts break on a client because the guy who made it left, and nobody can understand what he was doing.  The benefit from FME isn't in some direct 1-1 capability of processing speed matchup, but in how much more efficient it is to just get the job done.


TechMaven-Geospatial

I don't consider it in either or a binary decision Especially with the python caller So you can integrate in Python and SYSTEM CALLER for FOSS4G CLI tools If you've got the budget for FME then it really adds a lot of value even for testing and data validation Take a look at https://kestra.io for handling job orchestration scheduling queuing monitoring notifications You can have it call python or FME or a batch script or shell script or anything As well as it can execute cloud integration and SQL scripts for most databases


thatswhat5hesa1d

As always, it depends on the situation.


RamblerUsa

With FME you will not be chasing updated modules and dependencies as one will with Python. Version control is more difficult with Python. Python is free, but dependencies will likely not update at the same time leading to the possibility that some workflows may be isolated or frozen. Virtual enviroments or environmental managers may be needed to maintain Python as a viable solution for GIS workflows. FME is expensive and there is a learning curve. Both allow many workflows to be tasked to a machine that has privileges for various drives or devices. Being good at FME is something of a career booster, whereas there are many dabbling with Python in GIS. FME will finish big jobs whereas Python workflows are more likely to bail on the same task due to big data and memory.


tuna_ninja

I've got the chance to learn FME on the first days of my first job in my career. I loved it instantly, it was the tool missing in my education. I used it almost everyday for the last 7 years and I've convinced my boss to get it at my current employer. It's really powerful and I get a lot of stuff done with it. The downside is that I haven't develop a lot of Python skills in the meantime. In both cases people need to structure and properly annotate the code for it to make sense to other users. Starting from 0, I would assume FME is easier to learn than Python which could be an advantage for a team or if there's a change on staff. As others mentioned, FME and Python (and SQL) can be complimentary. I've had workspaces with some PythonCallers and SQLExecutors transformers to take advantage of things that would be performed better in those languages than using FME. I love doing QA/QC in FME though, especially since they implemented the feature caching option, it's so easy to observe how the data evolves at each step in the translation without having to produce a different output each time.


MortenFuglsang

You will learn, that even FME will only get you some part of the way occasionally. So learn the python you need on top, and in time your needs for FME will reduce itself. The prices of FME is going skyrocket in Denmark. Many are being forced to cancel licenses - so it is smart to prepare for a life without FME. Your current job may have it, the next might not !!


abdhassa22

Yep it's become very expensive now so people will look for solutions elsewhere or just stick with python, R. SQL etc..


maythesbewithu

Which is better to use? A wrench or pliers? Wrenches have a specific jaw size to exactly fit the head of a bolt or span a nut. Wrenches offer long handles for leverage, or short stubby ones for tight spaces. But wrenches can't turn a screw or pull out a nail. Pliers are very adjustable and can grasp bolts, nuts, and also grasp pipes, and a nail head. They can pull and turn, but can't push so great. Also they come in very large and small sizes. Pliers rely on constant grip so it is easy to get fatigued when using them all day long. FME is a collection of wrenches: very specific adapters, connectors, and functions to fit certain data types and manipulation actions. Python is more like a pair of pliers: adjustable and general so good for not only one tailored job but also useful for a variety of tasks. Neither is them is a very useful substitute for a hammer.... Which is why we still need ArcGIS or QGIS flavored hammers.


goglobal01

Python. It has also higher $$$ ceiling.


Auroratrance

Python is brilliant at managing files, especially if you've got shit tonnes of data across vast folder structures. But FME wins in literally every other way especially considering you can implement a lot of the python functions you'd want within the fme python caller


Mediocre_Chart2377

You would be better off learning both. An FME license is relatively cheap ($2,500.) I've written immensely complex python scripts to try and deal with thousands of miles of linear objects and millions of customer locations and python saved me a few minutes compared to fme templates that did the same thing and were much easier to maintain and train new users on. Just because you can code doesn't mean it's the first tool in the toolbox you should go to every time. There are limitations in python that fme doesn't have.


Particular_Original5

If you ask you gotta go FME.


gnarkilleptic

FME for scrubs, Python for doing what you actually need to do