This book is ideal for Python programmers who are tasked with or wish to make a special-purpose GIS application. Analysts, political scientists, geographers, and GIS specialists seeking a creative platform to experiment with cutting-edge spatial analysis, but who are still only beginners in Python, will also find this book beneficial. Familiarity with Tkinter application development in Python is preferable but not mandatory.
Author(s): Karim Bahgat
Year: 2015
Language: English
Pages: 192
Cover
Copyright
Credits
About the Author
About the Reviewers
www.PacktPub.com
Table of Contents
Preface
Chapter 1: Preparing to Build Your
Own GIS Application
Why re-invent the wheel?
Setting up your computer
Installing third-party packages
Imagining the roadmap ahead
Summary
Chapter 2: Accessing Geodata
The approach
Vector data
A data interface for vector data
The vector data structure
Computing bounding boxes
Spatial indexing
Loading vector files
Shapefile
GeoJSON
File format not supported
Saving vector data
Shapefile
GeoJSON
File format not supported
Raster data
A data interface for raster data
The raster data structure
Positioning the raster in coordinate space
Nodata masking
Loading raster data
GeoTIFF
File format not supported
Saving raster data
GeoTIFF
File format not supported
Summary
Chapter 3: Designing the Visual Look
of Our Application
Setting up the GUI package
Creating the toolkit building blocks
Themed styling
Basic buttons
Buttons with icons
Toolbars
The Ribbon tab system
The bottom status bar
The layers pane
The Map widget
Popup windows
Dispatching heavy tasks to thread workers
Using the toolkit to build the GUI
Testing our application
Summary
Chapter 4: Rendering Our Geodata
Rendering
Installing PyAgg
A sequence of layers
The MapCanvas drawer
Individual layer renderings
Vector layers
Raster layers
Interactively rendering our maps
Linking the MapView to the renderer
Requesting to render a map
Resizing the map in proportion to window resizing
The LayersPane as a LayerGroup
Adding layers
Editing layers in the LayersPane widget
Click-and-drag to rearrange the layer sequence
Zooming the map image
Map panning and one-time rectangle zoom
A navigation toolbar
Putting it all together
Summary
Chapter 5: Managing and Organizing Geographic Data
Creating the management module
Inspecting files
Organizing files
Vector data
Splitting
Merging
Geometry cleaning
Raster data
Mosaicking
Resampling
Weaving functionality into the user interface
Layer-specific right-click functions
Defining the tool options windows
Setting up the management tab
Defining the tool options windows
Summary
Chapter 6: Analyzing Geographic Data
Creating the analysis module
Analyzing data
Vector data
Overlap summary
Buffer
Raster data
Zonal statistics
Weaving functionality into the user interface
Layer-specific right-click functions
Defining the tool options windows
Setting up the analysis tab
Defining the tool options window
Summary
Chapter 7: Packaging and Distributing Your Application
Attaching an application logo
The icon image file
Assigning the icon
The application startup script
Packaging your application
Installing py2exe
Developing a packaging strategy
Creating the build script
Adding the visual C runtime DLL
Creating an installer
Installing Inno Setup
Setting up your application's installer
Summary
Chapter 8: Looking Forward
Improvements to the user interface
Saving and loading user sessions
File drag and drop
GUI widgets
Other variations of the user interface
Adding more GIS functionality
Basic GIS selections
More advanced visualization
Online data services
Converting between raster and vector data
Projections
Geocoding
Going the GDAL/NumPy/SciPy route
Expanding to other platforms
Touch devices
Summary
Index