Let's talk about Python
Matt Forrest
?? Helping geospatial professionals grow using technology · Scaling geospatial at Wherobots
It's no secret that Python has become one of, if not the most popular, programming languages for modern GIS. Beyond geospatial, the demand for Python and the supporting ecosystem has grown and continued to grow in recent years, driven in part by the rise of data science and broader analytics.
Geospatial and modern GIS have seen that wave grow as well. Year over year, core libraries for geospatial Python have grown in terms of downloads and usage. More workflows are using Python, both in a stand-alone workflow and with other core tools like QGIS.
In a recent poll, Python was by and large the winner as the modern GIS language of choice. And this was the result I was expecting for the most part. As modern GIS mostly deals with data and analysis, Python is a natrual choice (or R depending on your background and training).
With that said, why should you learn Python? There are many great reasons to invest time and energy into learning Python, but also some reasons not to. If you leave this post with one message it is this:
Languages and tools are methods to provide value and insight from geospatial data. Focus on providing value first, then build the necessary skills to support that.
Below are my three reasons why you should and three reasons why not to learn Python for modern GIS.
If you are looking for some resources to get started with Python, here are some of my favorites:
? Flexibility and interoperability
Python is popular first and foremost due to it's flexability to work across multiple different job functions, making it interoperable for so many data teams to use and work with. Python can be used for spatial data science, geospatial data engineering, GIS analysis, geospatial developers, and more. You can use the same language and tools to perfom machine learning and to build APIs and application backends. Learn it once, use it many times over.
Additionally, Python give you complete flexability to create scripted workflows with different purpose built libraries. These can be repuropsed and changed by swapping datasets and variables to quickly reuse analysis with ease. This is one of the more valuable components of a modern GIS workflow in Python.
Not to mention that outside the geospatial world, Python allows your work to seamlessly with many different workflows and teams already using Python. Many different services also use Python to connect to their APIs to move and query data, as well as common data science frameworks are leveraging Python.
Learning Python to be more flexible both within your modern GIS workflow as well as within other teams you collarborate with is a great reason to focus on learning Python.
? Immediate speed and scale (locally)
Python can help you gain speed in your analytical workflows, both in the cloud but more importantly locally on your machine. In terms of using Python locally, you should see some performance gains just by using Python. That said, there are many ways to futher optimize your workflows using compressed file formats like parquet or create spatial indexes over your data. Even tools like Dask and other parallel processing methods can be used locally to scale the amount of data you can work with.
领英推荐
Other indexing methods like H3, Quadkey, or S2 provide even further controls for larger data and you can also leverage Docker containers and other fine grained controls over resources on your machine to speed up different processes.
? Accessible and learnable
Python is a very accessible language which, by design, is easy to learn and use for many different purposes. More and more, Python is being taught for even basic data analysis, over other traditional tools like Excel or BI tools like Tableau.
Python will continue to grow and become almost a lingua franca amongst fields working with data. As with many things in geospatial, there is a lag between changes taking place in general data fields, so while this change may only be starting to see hockey stick growth in modern GIS, that trend (should it follow the trends in other fields), is likely to continue.
? Riding the data science wave
Data science has and continues to be a growing career choice. There has been booming growth in the space in the years since the Harvard Business Review deemed data science the "The Sexiest Job of the 21st Century" in 2012. With ample demand, high salaries, and career prospects at some of the most interesting tech companies, data science, and now it's supporting fields like data engineering and others, will continue to grow in demand. And Python is one of the most central languages to this career.
In recent years, I have noticed a major rebranding of many career titles to focus on spatial data science, in addition to those who have trained in spatial data science. As university programs race to keep up with demand to make data science and analytics programs, so have traditional GIS programs by adding spatial data science courses or programs. This can lead many to have some sense of "fomo" around not having specific skills.
That said, there are so many ways to add value with modern GIS, and first and foremost I recommend focusing on the value you provide rather than adding Python to ride a wave. The work you do (no matter how you do it) should strive to provide value to your organization and solve problems. You can do work and analyze data outside of Python, and support other data science job functions (and learn those skills via collaboration). Of course, if your work demands the need for Python then it makes total sense to learn it, but don't learn Python if it doesn't provide value or to jump on a trend.
? Adding it to your skills (and resume)
Another reason for not learning Python, or any language for that matter, is to simply have it as a skill on your resume. Please, please do not learn a language just to learn it and never use it. Like I said first and foremost focus on providing value through the work you are currently doing.
If you are trying to break into a career or company that has Python heavy work, while learning Python do two different things:
This practical experience is far and away more valuable than simply taking a course and listing a certification on a resume.
? Another tool for data management
While Python can be great for managing and reading data, don't just add it as another tool in the toolkit for doing so. Pick the right tools for the job (if this is Python that is great) but choose tools for specific reasons and purposes, and in doing so (and having reasons for doing so) that shows your knowledge and grasp of different modern GIS workflows and architectures. Even if that is managing data in a local file system, PostGIS database, or creating a library of parquet files on your machine, this reasoning and forethought is critical to using the full modern GIS ecosystem to it's greatest extent.
Portfolio Manager at Sea Point Capital | Founding Partner of Longitude Solutions | Founder & CEO of UCapture
2 年Thanks for sharing?Matt ??
Geospatial Developer | Data Analytics
2 年Couldn't agree more. I started my Python journey 4 years ago, and it dramatically changed my approach to data. Now I'm performing quite complex tasks using Python, like multiprocessing for RPA, but still learning every day (at the moment diving into Django). I'm also learning JavaScript, and Python has paved this way for me. Python is extremely versatile and has tools for almost every business.
Data Professional | Location Intelligence | Geospatial Services
2 年Love the value driven approach. Don't learn Python - or anything else - just to tick a box. Learn it for the value it brings to yourself and the work you stand behind.
Consultor senior en desarrollo urbano y SIG | Ayudo a las personas e instituciones a dise?ar proyectos de inversión de carácter inmobiliario y urbano.
2 年In the last 8 months we have developed a web geoviewer with folium, it has filter and information search functions and has the help of flask, pandas, numpy. Python has it all for spatial data science
Cofounder @ TrendSights | Cofounder @ LeadScoring.ai | AI | Start-ups | Podcaster
2 年Great post Matt