Geospatial Python Course V1

  • blog

I started blogging on in May 2016 and since then (at the time of writing in January 2020) I have gone on to write over 120 blog posts. I write loosely around the topic of Earth Observation and Satellite imagery but also more generally on Geospatial topics. GIS is my background. I am a Geographer (mainly Physical Geography) who is also super interested in computing. My degree, which started in 1998, gave me virtually no exposure to computing, and in 2002 I took a MSc in GIS. That year, the programming side of the course was in Java and it was enough to put me off programming for many years.

I got interested in customising ArcView 3.2. Building a GUI was fun and as ArcView migrated to version 8 (to match ArcInfo), vba and ArcObjects became more important. I was still interested in building tools to use within Arc. When ArcGIS moved to Python I was slow to move… another language to learn!
Slowly though, and increasingly driven by open source (but not entirely open source GIS), I started using Pyton 2.7. Setting up was a killer; getting it compatible with ArcGIS and GDAL was costing many work hours. I didn’t want to dive head first into a package manager, I just wanted to get it working. GIS wasn’t an enabler, it was an outsider still.

Fortunately, things have changed significantly now and GIS functions in many widely available Python libraries. You don’t have to rely upon proprietary software any more, virtually everything you want to achieve can be done open source. I started off just wanting to get something working and then I discovered other things on the way. My blog is a good example of how and when I discovered new ideas, programming techniques and interfaces etc. I was slow to use Jupyter Notebooks, but now they dominate (though I realise they are not without their limitations). I was also slow to anaconda – but now I only use anaconda as a package manager.

Why then do I say all these things? Firstly, its hard; look around and people are shouting about cool stuff they have done with machine learning or image processing. What people don’t tend to share is that it has taken them five hours to get one piece of code working. It’s not magic; it’s hard work, it’s practice, it can be fun, it can be frustrating, it can sometimes just not be worth it. Secondly, it’s a reminder to me, I am still learning. The best way I have learnt is to share what I have done, and then later to teach it. I am open to help, though I don’t ask for it enough. I am indebted to stackoverflow – without it I would have given up; also to the community of bloggers and youtubers who share content. I don’t intentionally steal any content, I do however try to build and integrate ideas I have seen, especially outside of the Geospatial world, and apply them to what I am interested in.

That was alot of waffle, perhaps you read it. If so, thanks, it took me a while to type. This repo on github is all about me reorganising the I have been updating it periodically for about two years. I don’t really pay attention to the number of stars and forks on github, but I just looked; 33 stars and 21 forks is beyond my comprehension. The fact that over 160 people follow my github account astonishes me. Thankyou.

I am going to periodically update this until a time comes when a V2 is more suited. This is not a bespoke Geospatial Python course, more a collection of blog posts combined into some order. I hope it is useful.

If you like this Geospatial Python Course please do share it. I run Geospatial Python courses. For more information head over to