Pages

7.12.2013

Python Geospatial Development (Chapters 1 - 4)

For Python developers, this is agreeably an essential book in understanding geospatial concepts and development techniques especially if you want to work and apply it within an opensource environment. I'm lucky enough to obtain a copy via Packt Publishing online. This is how I see it so far, in my first four chapters of the book.

Chapter 1: Geospatial Development Using Python
It is important to understand that the term Geospatial Development here refers to the process of writing computer programs that explore, manage, and analyze Geospatial information. My initial expectation about this book is to also look at Geospatial Development (GD) in a general, global administrative framework including initiatives of Geospatial applications be it commercial or open source. From the book's title it's clear that the reader will focus on Python applications of geospatial data, especially the Python Library for managing the geospatial database. It is noteworthy to consider in this chapter the importance of GD (Geospatial Devt) Applications thru various stages of analysis, visualization, and external, surface applications such as creating geospatial mashups using Google and Mapnik open source tools.

Chapter 2: GIS
A very important part of the book, the science of geographic information must be understood clearly if you want to practice GIS/Geospatial applications. It's so easy to get fascinated and conduct an endless talk about the progress of geospatial applications in your notebook, smartphone, tablet, desktop computer, or navigation device. But if you want to work in developing varied geospatial applications with Python, it's also important to know the science and principles behind the accurate measurement of earth's "surface." As much as you want your application bug-free, you dont want to develop an application that is geographically inaccurate.

Chapter 3: Python Libraries for Geospatial Development
Exploring both the GDAL and OGR Python libraries (p.52) is a good move, especially the differences between the two. The naming of the two libraries may be confusing, but it's important to see that the Geospatial data we know today (initially the GIS data) actually began with two parts (and will remain so), one is vector data and the other, the raster data. Both data complement each other and both are needed to make an effective, dynamic, and workable Geospatial application. The shared links on sample codes and documentation, including the sample computation class (Geod class) to measure and simplify geodetic measurement are all useful for programmers, mappers, and surveyors. I like the varied sources of mapping application technique in topology and design especially the Shapely tool in Python and the Mapnik open-source toolkit. How I wish for more of my free time exploring them all.

Chapter 4: Sources of Geospatial Data
The author said: "When creating a geospatial application, the data you use will be just as important as the code you write." I agree. But additional to making your maps look good, you have to make your maps accurate. Especially if you are making a navigation map. In the second chapter I said about the importance of accurate geospatial data source. Some projections may provide you with beautiful maps but they are not necessarily accurate, not even measurable. The better insight here is to identify first the objective and purpose of your geospatial project or map application, then it's up to you if you want to focus on the accuracy, aesthetics, or the balance between the two. If the purpose of your map is just to scan/visualize the surface territory, then you may not need to focus highly on accuracy. In my experience, maps that looked sound are usually measurable if not accurate.
It is good to know the freely-available online sources of geospatial data be it vector or raster. They may not replace the leading commercial sources of geospatial data but they provide a good alternative especially in learning. The given examples of vector data sources such as OSM, Tiger, Natural Earth, GSHHS, and WBD as well as the raster data sources such as Landsat, Natural Eearth, GLOBE, NED, GNIS et. al. are very useful especially in knowing how to obtain the data online. The sample table (p.109) of choosing your geospatial data source is very useful also.

I'm currently on Chapter 5 (Working with Geospatial Data in Python) and since this chapter is designed like a "cookbook" as stated by the author, it must be appreciated better by going through the coding examples (using Python 2.x) in integrating Python libraries with vector and raster data sets previously discussed. I expect to gain an insight in processing of vector and raster data, as well as performing geospatial calculations, transforming datums, converting distance and angular measurments(both in 2D and 3D) , and so on. I hope I will be able to practice coding up to the GeoDjango part of web map hosting.