By the end of the book, you should be able to use your GIS application as a template for further development, with the potential to expand and customize it to suit your needs.
Karim Bahgat holds an MA in peace and conflict transformation from the University of Tromso in Norway, where he focused on the use of geographic information systems (GIS), opinion survey data, and open source programming tools in conflict studies. Since then, he has been employed as a research assistant for technical and geospatial work at the Peace Research Institute Oslo (PRIO) and the International Law and Policy Institute (ILPI). Karim was part of the early prototyping of the PRIO-GRID unified spatial data structure for social science and conflict research, and is currently helping develop a new updated version (https://www.prio.org/Data/PRIO-GRID/). His main use of technology, as a developer, has been with Python programming, geospatial tools and mapping, the geocoding of textual data, data visualization, application development, and some web technology. Karim is the author of a journal article publication, numerous data- and GIS-oriented Python programming libraries, the Easy Georeferencer free geocoding software, and several related technical websites, including www.pythongisresources.wordpress.com.
Geospatial Development By Example with Python is intended for beginners or advanced developers in Python who want to work with geographic data. The book is suitable for professional developers who are new to geospatial development, for hobbyists, or for data scientists who want to move into some simple development.What You Will LearnPrepare a development environment with all the tools needed for geo-processing with PythonImport point data and structure an application using Python's resourcesCombine point data from multiple sources, creating intuitive and functional representations of geographic objectsFilter data by coordinates or attributes easily using pure PythonMake press-quality and replicable maps from any dataDownload, transform, and use remote sensing data in your mapsMake calculations to extract information from raster data and show the results on beautiful mapsHandle massive amounts of data with advanced processing techniquesProcess huge satellite images in an efficient wayOptimize geo-processing times with parallel processingIn Detail
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.Style and approach
This easy-to-follow book is filled with hands-on examples that illustrate the construction of three sample applications of how to write reusable and interconnected Python code for geo-processing.
Do you know the basics of Python and object oriented programming? Do you want to go an extra mile and learn techniques to make your Python application robust, extensible, and efficient? Then this book is for you.What You Will LearnBuild a robust application by handling exceptions.Modularize, package, and release the source distribution.Document the code and implement coding standards.Create automated tests to catch bugs in the early development stage.Identify and re-factor badly written code to improve application life.Detect recurring problems in the code and apply design patterns.Improve code efficiency by identifying performance bottlenecks and fixing them.Develop simple GUI applications using Python.In Detail
Python is one of the most widely used dynamic programming languages, supported by a rich set of libraries and frameworks that enable rapid development. But fast paced development often comes with its own baggage that could bring down the quality, performance, and extensibility of an application. This book will show you ways to handle such problems and write better Python applications.
From the basics of simple command-line applications, develop your skills all the way to designing efficient and advanced Python apps. Guided by a light-hearted fantasy learning theme, overcome the real-world problems of complex Python development with practical solutions. Beginning with a focus on robustness, packaging, and releasing application code, you'll move on to focus on improving application lifetime by making code extensible, reusable, and readable. Get to grips with Python refactoring, design patterns and best practices. Techniques to identify the bottlenecks and improve performance are covered in a series of chapters devoted to performance, before closing with a look at developing Python GUIs.Style and approach
The book uses a fantasy game theme as a medium to explain various topics. Specific aspects of application development are explained in different chapters. In each chapter the reader is presented with an interesting problem which is then tackled using hands-on examples with easy-to-follow instructions.
This book is intended for developers who want to use features of the Kivy framework and develop multi-touch applications. Prior experience with Kivy is not required, although familiarity with Python is expected.What You Will LearnAccess widgets defined inside Kv language in your Python codeHandle Kivy events to control widgets, touches, the mouse, the keyboard, and animationsRecognize touch shapes and detecting multi-tappingCreate custom events and declare propertiesOrganizing your layouts while working with the ActionBarStore and retrieve the coordinate space contextCreate your own shader and render in a framebufferLeverage Factory objects, multi-touch in iOS and multi-touch in AndroidIn Detail
Kivy is an open-source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps. It is a promising Python framework to develop UI and UX apps in a cross-platform environment, under the Python philosophy.
Kivy Cookbook is a practical book that will guide you through the Kivy framework to develop apps and get your apps ready for distribution in App Store and Android devices.
You will start off with installing Kivy and building your interfaces. You will learn how to work the accelerometer and create custom events. Then, you will understand how to use the basics, buttons, labels and text inputs and manipulate the widget tree. Next, you will be able to work with manipulating instructions, create an atlas and layouts. Moving on, you will learn packing for Windows and packing for iOS, and use TestDrive.
By the end of the book, you will have learnt in detail the relevant features and tools in Kivy and how to create portable packages to distribute your apps in the most used platforms.Style and approach
This is an easy-to-follow practical guide packed with graspable recipes that cover important tasks to be performed while developing multi-touch applications with Kivy. All the code used in each recipe is explained in detail.
This book guides you from QGIS installation through data loading, and preparation to performing most common GIS analyses. You will perform different types of GIS analyses including density, visibility, and suitability analysis on practical, real-world data. Finally, you will learn how to become more productive and automate your everyday work with the help of the QGIS Processing framework and by developing your own Python plugins.
By the end of this book, you will have all the necessary knowledge about handling and analyzing spatial data.
Inside, you’ll find complete recipes for more than a dozen topics, covering the core Python language as well as tasks common to a wide variety of application domains. Each recipe contains code samples you can use in your projects right away, along with a discussion about how and why the solution works.
Topics include:Data Structures and AlgorithmsStrings and TextNumbers, Dates, and TimesIterators and GeneratorsFiles and I/OData Encoding and ProcessingFunctionsClasses and ObjectsMetaprogrammingModules and PackagesNetwork and Web ProgrammingConcurrencyUtility Scripting and System AdministrationTesting, Debugging, and ExceptionsC Extensions
Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.
This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work
You Will Learn Python!
Zed Shaw has perfected the world's best system for learning Python. Follow it and you will succeed-just like the hundreds of thousands of beginners Zed has taught to date! You bring the discipline, commitment, and persistence; the author supplies everything else.
In Learn Python the Hard Way, Third Edition, you'll learn Python by working through 52 brilliantly crafted exercises. Read them. Type their code precisely. (No copying and pasting!) Fix your mistakes. Watch the programs run. As you do, you'll learn how software works; what good programs look like; how to read, write, and think about code; and how to find and fix your mistakes using tricks professional programmers use. Most importantly, you'll learn the following, which you need to start writing excellent Python software of your own:Installing a complete Python environment Organizing and writing code Basic mathematics Variables Strings and text Interacting with users Working with files Looping and logic Data structures using lists and dictionaries Program design Object-oriented programming Inheritance and composition Modules, classes, and objects Python packaging Debugging Automated testing Basic game development Basic web development
It'll be hard at first. But soon, you'll just get it-and that will feel great!
This tutorial will reward you for every minute you put into it. Soon, you'll know one of the world's most powerful, popular programming languages. You'll be a Python programmer.
Watch Zed, too! The accompanying DVD contains 5+ hours of passionate, powerful teaching: a complete Python video course!