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

Searching for data and crossing information


Now that we have our database populated with some data, it's time to get some information from it; let's explore what kind of information all those POIs hold. We know that we downloaded points that contain at least one of the amenity or store keys.

Amenities are described by OSM as any type of community facilities. As an exercise, let's see a list of amenity types that we got from the points:

  1. Edit your geodata_app.py file's if __name__ == '__main__': block:

    if __name__ == '__main__':
        amenity_values = Tag.objects.filter(
            key='amenity').distinct('value').values_list('value')
        for item in amenity_values:
            print(item[0])

    Here we take the Tag model, access its manager (objects), then filter the tags whose key='amenity'. Then we separate only distinct values (exclude repeated values from the query). The final part—values_list('value')—tells Django that we don't want it to create Tag models, we only want a list of values.

  2. Run the code...