
Summary
In this chapter, we discussed many of the core concepts that underlie GIS development, examined some of the more common GIS data formats, and got our hands dirty exploring US state data downloaded from the US Census Bureau web site.
We saw that locations are often, but not always, represented using coordinates, learned that calculating the distance between two points requires you to take into account the curvature of the Earth's surface, and discovered why you must always be aware of the units used by geospatial data.
We then learned about map projections, which represent the three-dimensional shape of the Earth's surface as a two-dimensional plane, and saw that there are three main classes of map projection: cylindrical, conic, and azimuthal. We discovered that datums are mathematical models of the Earth's shape, and learned that the three most common datums in use are called NAD 27, NAD 83, and WGS 84.
We next examined the concept of coordinate systems and saw that these are used to describe how coordinates relate to a given point on the Earth's surface. We learned that unprojected coordinate systems directly represent points on the Earth's surface, while projected coordinate systems use a map projection to represent the Earth as a two-dimensional Cartesian plane onto which coordinates are then placed.
We examined the ways in which geospatial data can be used to represent shapes in the form of points, LineStrings, and polygons, and we looked at a number of standard GIS data formats you might encounter. We saw that some data formats work with raster data, while others use vector data.
Finally, we learned how to use Python to manually perform various geospatial calculations on data loaded from shapefiles.
In the next chapter, we will look in more detail at the various Python libraries that can be used for working with geospatial data.