Monday, August 15, 2016

How to learn GIS Programming with Python by self-taught

Hello,

Let me guide you on how to learn GIS Programming with python by yourself (self-taught).

Self-taught GIS programmers often use Python, JavaScript, SQL, VB.NET, C++, R, Java, C, HTML, CSS etc… in that order for their day to day GIS workflow (Gisgeography.com). The focus in this article is going to be on Python Programming Language. Python has gained a lot of visibility as the primary scripting language for the big players in GIS industry: ArcGIS and QGIS.

 Gisgeography.com

There are several places you can learn GIS Programming with Python which I broadly classified them into any othe following:-
1) Attending a Formal School (Degree, MSc., PhD.)
2) Certification courses/trainings/workshops
3) One-on-one mentoring
4) Self-taught - read and study Books, Videos, Tutorials

If you are like me, who uses the 4th option, then this article will help you achieve your goal of being a GIS Python Programmer.

So you prefer to self teach yourself GIS Programming? I know so many questions will be ringing in your mind at the moment. Don't worry, I am going to shear with you the best way to master Python for developing geospatial applications. In this post I will try to quickly summarize what is the best way to go in my opinion. It will also show GIS people who are interested in learning more about Python how easy it is to get started, and how useful Python can be to their specific needs.

I have summarized the way into four (4) easy steps as follow:-

1) Learn Python basics
If you are completely new to Python, first things to check out, are some very basic and popular resources. You should start by understanding the basics of the language, libraries and data structure.

Python basics includes the following topics from "a" to "f". Learn them in that order:-
a- Writing and executing code
b- Basic structure of a script
c- Variables
d- Data types
d.1- Booleans
d.2- Numeric types
d.3- Strings
d.4- Lists and tuples
d.5- Sets
d.6- Dictionaries
e- Control flow
e.1- If statements
e.2- While statements
e.3- For statements
e.4- break, continue, and else
f- Functions

2) Learn Python Regular Expression
You will need to use them a lot for data cleansing, especially if you are working on text data.


3) Learn Python Object Oriented Programming
Python is an Object Oriented language, so most of the libraries you will be using are build upon OOP concepts.


4) Learn Python GIS library
As soon as you have some basic skills for writing simple Python programs, Regular Expression and OOP, start using the Python core library with some of the most popular GIS Python libraries, choosing the ones that are more relevant to the context of your background.

Read and Study Books, Videos, Tutorials

You have buy GIS Programming books, and videos materials to read and relate with the authors in cases where you have difficulties. Also you should try to get involved in any python community nearer to you as great tutorials are often delivered on geo-processing with python.

Most of the authors who publish books on GIS Programming do deliver great talk/presentations in some of these python community confrences (listed below). They also provide tutorial on their blogs, social medias etc, so trace them and follow them. Join GIS software vendors (such as ArcGIS, Geomedia, SAGA, GRASS, QGIS etc) mail lists, blogs, forums, social handles etc.

Some really good places to learn GIS Programming with Python are listed below. They are great python community confrences for Learning "GIS Programming with Python".

~ FOSS4G
~ FOSS4G-NA
~ PyCon
~ PyData
~ PyLadies
~ SciPy
~ OSGeo
~ EuroPython
~ EuroScipy
~ Python US
~ Python UK
~ GeoPython
~ Python India, etc

Another advice I will state here is to study the documentations that come along with the various geospatial python libraries out there and also follow there authors anywhere you can.

Please, if you think I forget anything from this post, drop me a comment and I will be very happy to integrate it with yours suggestion.

Happy GIS Python Programming.

No comments:

Post a Comment