Book Image

Geospatial Development By Example with Python

By : Pablo Carreira
5 (1)
Book Image

Geospatial Development By Example with Python

5 (1)
By: Pablo Carreira

Overview of this book

From Python programming good practices to the advanced use of analysis packages, this book teaches you how to write applications that will perform complex geoprocessing tasks that can be replicated and reused. Much more than simple scripts, you will write functions to import data, create Python classes that represent your features, and learn how to combine and filter them. With pluggable mechanisms, you will learn how to visualize data and the results of analysis in beautiful maps that can be batch-generated and embedded into documents or web pages. Finally, you will learn how to consume and process an enormous amount of data very efficiently by using advanced tools and modern computers’ parallel processing capabilities.
Table of Contents (17 chapters)
Geospatial Development By Example with Python
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Importing lines


As we did with the geocaching points and political boundaries, we will implement the ability of the program to import lines (that is, linestrings). These lines can represent roads, rivers, power lines, and so on. With this kind of features, we will be able to search for points that are close to a given road for example.

The lines and the collection of lines will also be the subclasses of BaseGeoObject and BaseGeoCollection. Let's start by making a LineString and a LineStringCollection class, as follows:

  1. Insert this new class into the models.py file. It could be anywhere after the base classes' definition:

    class LineString(BaseGeoObject):
        """Represents a single linestring."""
        def __repr__(self):
            return self.get_attribute('name')

    Again, we only implement the __repr__ method. The other functionalities are inherited from the BaseGeoObject class.

  2. Now, add the class representing a collection of linestrings and its _parse_data method:

    class LineStringCollection(BaseGeoCollection...