logo资料库

Mastering QGIS.pdf

第1页 / 共420页
第2页 / 共420页
第3页 / 共420页
第4页 / 共420页
第5页 / 共420页
第6页 / 共420页
第7页 / 共420页
第8页 / 共420页
资料共420页,剩余部分请下载后查看
Cover
Copyright
Credits
Foreword
About the Authors
About the Reviewers
www.PacktPub.com
Table of Contents
Preface
Chapter 1: A Refreshing Look at QGIS
QGIS download and installation
Installing QGIS on Windows
Installing QGIS on Mac OS X
Installing QGIS on Ubuntu Linux
Installing QGIS only
Installing QGIS and other FOSSGIS Packages
Tour of QGIS
QGIS Desktop
QGIS Browser
Loading data
Loading vector data
Loading raster data
Loading databases
Web services
Working with coordinate reference systems
Working with tables
Table joins
Editing data
Snapping
Styling vector data
Styling raster data
Contrast enhancement
Blending modes
Composing maps
Adding functionality with plugins
Summary
Chapter 2: Creating Spatial Databases
Fundamental database concepts
Database tables
Table relationships
Structured Query Language
Creating a spatial database
Importing data into a SpatiaLite database
Importing KML into SpatiaLite
Importing a shapefile into SpatiaLite
Importing tables into SpatiaLite
Exporting tables out of SpatiaLite as a shapefile
Managing tables
Creating a new table
Renaming a table
Editing table properties
Deleting a table
Emptying a table
Creating queries and views
Creating a SQL query
Creating a spatial view
Dropping a spatial view
Summary
Chapter 3: Styling Raster and Vector Data
Choosing and managing colors
Always available color picker components
Changeable panels in color picker
Color Ramp
Color wheel
Color swatches
Color sampler
Managing color ramps
Managing the QGIS color ramp collection
Renaming a color ramp
Removing a color ramp
Exporting a color ramp
Importing a color ramp
Adding a color ramp
Editing a color ramp
Styling single band rasters
Paletted raster band rendering
Singleband gray raster band rendering
Singleband pseudocolor raster band rendering
Styling multiband rasters
Creating a raster composite
Raster color rendering
Raster resampling
Styling vectors
Single-symbol vector styling
Categorized vector styling
Graduated vector styling
Rule-based vector styling
Point-displacement vector styling
Inverted polygons vector styling
Vector layer rendering
Using diagrams to display thematic data
Parameters common to all diagram types
Diagram size parameters
Diagram position parameters
Adding attributes to diagrams
Creating a pie chart diagram
Creating a text chart diagram
Creating a histogram chart diagram
Saving, loading, and setting default styles
Saving a style
Loading a style
Setting and restoring a default style
Summary
Chapter 4: Preparing Vector Data for Processing
Merging shapefiles
Creating spatial indices
Checking for geometry errors
Converting vector geometries
Creating polygon centroids
Converting polygons to lines and lines to polygons
Creating polygons surrounding individual points
Extracting nodes from lines and polygons
Simplifying and densifying features
Converting between multipart and singlepart features
Adding geometry columns to an attribute table
Using basic vector geoprocessing tools
Spatial overlay tools
Using the Clip and Difference tools
Using the Intersect and Symmetrical Difference tools
Overlaying polygon layers with Union
Creating buffers
Generating convex hulls
Dissolving features
Defining coordinate reference systems
Understanding the Proj.4 definition format
Defining a new custom coordinate reference system
Advanced field calculations
Exploring the field calculator interface
Writing advanced field calculations
The first example – calculating and formatting current date
The second example – inserting geometry values
The third example – calculating a population-dependent label string
Complex spatial and aspatial queries
Summary
Chapter 5: Preparing Raster Data for Processing
Reclassifying rasters
Converting datasets from floating point to integer rasters
Resampling rasters
Installing and troubleshooting SAGA on different platforms
Rescaling rasters
Creating a raster mosaic
Generating raster overviews (pyramids)
Converting between raster and vector data models
Converting from raster to vector
Converting from vector to raster (rasterize)
Creating raster surfaces via interpolation
Summary
Chapter 6: Advanced Data Creation and Editing
Creating points from coordinate data
Mapping well-known text representations of geometry
Geocoding address-based data
How address geocoding works
The first example – geocoding using web services
The second example – geocoding using local street network data
Georeferencing imagery
Ground control points
Using the Georeferencer GDAL plugin
The first example – georeferencing using a second dataset
Getting started
Entering ground control points
Transformation settings
Completing the operation
The second example – georeferencing using a point file
Checking the topology of vector data
Installing the topology checker
Topological rules
Rules for point features
Rules for line features
Rules for polygon features
Using the Topology Checker
Repairing topological errors via topological editing
Example 1 – resolving duplicate geometries
Example 2 – repairing overlaps
Setting the editing parameters
Repairing an overlap between polygons
Example 3 – repairing a gap between polygons
Summary
Chapter 7: The Processing Toolbox
About the processing toolbox
Configuring the processing toolbox
Understanding the processing toolbox
Using the processing toolbox
Performing raster analyses with GRASS
Calculating shaded relief
Calculating least-cost path
Calculating slope using r.slope
Reclassifying new slope raster and the land use raster
Combining reclassified slope and land use layers
Calculating cumulative cost raster using r.cost
Calculating cost path using least-cost paths
Evaluating a viewshed
Clipping elevation to the boundary of the park using GDAL
Calculating viewsheds for towers using r.viewshed
Combining viewsheds using r.mapcalculator
Calculating raster statistics using r.stats
SAGA
Evaluating a habitat
Calculating elevation ranges using the SAGA Raster calculator
Clipping land use to the park boundary using Clip grid with polygon
Querying land use for only surface water using SAGA Raster calculator
Finding proximity to surface water using GDAL Proximity
Querying the proximity for 1,000 meters of water using GDAL Raster calculator
Reclassifying land use using the Reclassify grid values tool
Combining raster layers using SAGA Raster calculator
Exploring hydrologic analyses with TauDEM
Removing pits from the DEM
Calculating flow directions across the landscape
Calculating the upstream area above Fort Klamath
Calculating a stream network raster grid
Creating a watershed-specific vector stream network
R
Exploring summary statistics and histograms
Summary
Chapter 8: Automating Workflows with the Graphical Modeler
An introduction to the graphical modeler
Opening the graphical modeler
Configuring the modeler and naming a model
Adding inputs
Adding algorithms
Running a model
Editing a model
Documenting a model
Saving, loading, and exporting models
Executing model algorithms iteratively
Nesting models
Using batch processing with models
Converting a model into a Python script
Summary
Chapter 9: Creating QGIS Plugins with PyQGIS and Problem Solving
Webography - where to get API information and PyQGIS help
PyQGIS cookbook
API documentation
The QGIS community, mailing lists, and IRC channel
Mailing lists
IRC channel
The StackExchange Community
Sharing your knowledge and reporting issues
The Python Console
Getting sample data
My first PyQGIS code snippet
My second PyQGIS code snippet – looping the layer features
Exploring iface and QGis
Exploring a QGIS API in the Python Console
Creating a plugin structure with Plugin Builder
Installing Plugin Builder
Locating plugins
Creating my first Python plugin – TestPlugin
Setting mandatory plugin parameters
Setting optional plugin parameters
Generating the plugin code
Compiling the icon resource
Plugin file structure – where and what to customize
A simple plugin example
Adding basic logic to TestPlugin
Modifying the layout with Qt Designer
Modifying GUI logic
Modifying plugin logic
Setting up a debugging environment
What is a debugger?
Installing Aptana
Setting up PYTHONPATH
Starting the Pydevd server
Connecting QGIS to the Pydevd server
Debugging session example
Creating a PyDev project for TestPlugin
Adding breakpoints
Debugging in action
Summary
Chapter 10: PyQGIS Scripting
Where to learn Python basics
Tabs or spaces, make your choice!
Loading layers
Managing rasters
Exploring QgsRasterLayer
Visualizing the layer
Managing vector files
Managing database vectors
Vector structure
The basic vector methods
Describing the vector structure
Describing the header
Describing the rows
Iterating over features
Describing the iterators
Editing features
Update canvas and symbology
Editing through QgsVectorDataProvider
Changing a feature's geometry
Deleting a feature
Adding a feature
Editing using QgsVectorLayer
Discovering the QgsVectorLayerEditBuffer class
Changing a feature's attributes
Adding and removing a feature
Running processing toolbox algorithms
Looking for an algorithm
Getting algorithm information
Running algorithms from the console
Running your own processing script
Creating a test processing toolbox script
Looking at the custom script
Running the script
Running an external algorithm or command
Running a simple command
Interacting with the map canvas
Getting the map canvas
Explaining Map Tools
Setting the current Map Tool
Getting point-click values
Getting current Map Tool
Creating the new Map Tool
Creating a map canvas event handler
Creating a Map Tool event handler
Setting up the new Map Tool
Using point-click values
Exploring the QgsRubberBand class
Summary
Index
Mastering QGIS Go beyond the basics and unleash the full power of QGIS with practical, step-by-step examples Kurt Menke, GISP Dr. Richard Smith Jr., GISP Dr. Luigi Pirelli Dr. John Van Hoesen, GISP BIRMINGHAM - MUMBAI
Mastering QGIS Copyright © 2015 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: March 2015 Production reference: 1240315 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78439-868-2 www.packtpub.com Cover image by NASA Earth Observatory
Credits Authors Kurt Menke, GISP Dr. Richard Smith Jr., GISP Dr. Luigi Pirelli Dr. John Van Hoesen, GISP Reviewers Paolo Corti Abdelghaffar Khorchani Gergely Padányi-Gulyás Commissioning Editor Dipika Gaonkar Acquisition Editors Richard Harvey Rebecca Youé Copy Editors Sonia Michelle Cheema Jasmine Nadar Project Coordinator Kinjal Bari Proofreaders Martin Diver Maria Gould Elinor Perry-Smith Indexer Rekha Nair Graphics Valentina D'silva Content Development Editor Samantha Gonsalves Production Coordinator Alwin Roy Technical Editors Ruchi Desai Manal Pednekar Cover Work Alwin Roy
Foreword It has been my pleasure to witness the development of both this book, Mastering QGIS, and the QGIS software in the past 12 months. Who could have predicted the rapid development and adoption of QGIS in such a short time? QGIS is now on a par, in terms of its functionality and features, with the best of commercial GIS application software. With an aggressive code development schedule of quarterly updates, the QGIS project is adding new features faster than most GIS professionals can keep pace. To help with the dire need for professional training, this book has been created to provide you with the concise technical expertise that will serve you well, both now and in future versions of this powerful GIS software. I have enjoyed the privilege of working closely with the contributing authors of this book for the past 2 years. We have been engaged in an intense curriculum development process to create the first-ever national GIS curriculum that is based around a national standard—the U.S. Department of Labor's Geospatial Technology Competency Model (GTCM). This effort has resulted in a series of GIS courses, all based around QGIS, that provide a solid foundation upon which this book can be used to enhance your technical skills. Each of the contributing authors is a very experienced GIS professional and many of them serve as instructors for highly respected academic GIS programs. Dr. Richard (Rick) Smith, a certified GIS Professional (GISP), serves as an assistant professor for the Geographic Information Science program at Texas A&M University—Corpus Christi, Texas, USA. Rick has been onboard the curriculum effort since day one, where his expertise in GIS and cartography is highlighted. Kurt Menke is a certified GIS Professional (GISP) and operates his own GIS consulting business (Bird's Eye View GIS) in New Mexico, USA, where he teaches open source GIS software at the local college and universities. Kurt is well respected in both conservation and healthcare GIS and has completed numerous GIS projects in these disciplines. Dr. John Van Hoesen (GISP) serves as an associate professor of geology and is the Environmental Studies Community Mapping Lab Director at Green Mountain College in Vermont, USA. His passions include open source software, environmental science, and the great outdoors, where he leads students in the discovery of our natural world. Luigi Pirelli, from Spain, is a core contributor to QGIS and a contributing author of this book.
He provided us with the chapters on programming for QGIS. A huge thanks to our most capable editor, Samantha Gonsalves, for her management during the creation of this book. A former systems engineer at Infosys in Mumbai, India, and now an editor for Packt Publishing, her leadership kept the team on a tight deadline to complete Mastering QGIS while maintaining the highest editorial standards. For all of us, it has been a fascinating and rewarding experience and now you hold the results of our effort in your hands. Best wishes for success on Mastering QGIS, now and in the future! Phillip Davis Director, National Information Security & Geospatial Technology Consortium, Del Mar College, Texas, USA
About the Authors Kurt Menke, a certified GIS Professional (GISP), has been working in the GIS field since 1997. Prior to this, he worked as a professional archaeologist for 10 years in the American Southwest. He earned a master's degree (MA) in geography from the University of New Mexico in 2000. That same year, he founded Bird's Eye View (www.BirdsEyeViewGIS.com) to apply his expertise with the GIS technology to the world's mounting ecological and social problems. Toward this end, Mr. Menke's work focuses largely on wildlife conservation and public health. His specialties are spatial analysis, modeling, and cartography. He is a longtime advocate of FOSS4G. He began writing MapServer applications in 2001 and has been using QGIS since 2007. He is one of the coauthors of the curriculum at the FOSS4G Academy (http://foss4geo.org/) and has been teaching FOSS4G college courses since 2009. In 2014, Kurt began authoring an award-winning blog on FOSS4G technologies and their use in community health mapping (http://communityhealthmaps.nlm.nih.gov/). A special thanks goes to Phil Davis for his leadership in the development of the FOSS4G Academy and for his continuing efforts to promote FOSS4G in the U.S. educational system. I would like to thank Rick Smith for being such a joy to work with. I'd also like to acknowledge Karl Benedict for introducing me to the world of FOSS4G and Jeffery Cavner for his ongoing camaraderie. Finally, I'd like to thank my beautiful wife, Sarah, for her steady support and encouragement.
Dr. Richard Smith Jr., is an assistant professor of geographic information science at the School of Engineering and Computing Sciences at Texas A&M University Corpus Christi. He has a PhD in geography from the University of Georgia and holds a master of science in computer science and a bachelor of science in geographic information science degree from Texas A&M University Corpus Christi. Richard actively does research in cartography, systems integration, and the use of geospatial technology for disaster response. Richard is an advocate of FOSS4G and building FOSS4G curriculum. He is one of the coauthors of the FOSS4G Academy (http://foss4geo.org). Richard has collaborated with other writers in his field, but Mastering QGIS is his first book. I would like to thank my wife and daughter for putting up with my late-night and weekend writing sessions. I would also like to thank my coauthor Kurt Menke for being patient with my edits. I would especially like to thank the editorial team; you have made my first book-writing experience an excellent one. Outside those directly involved or affected by the writing of this book, I'd like to thank my academic and life mentors, Dr. Stacey Lyle, Dr. Thomas Hodler, Dr. Gary Jeffress, and Dr. Robin Murphy, for providing their support and good wishes as I begin my career. In addition to teaching me, you have inspired me to have the confidence to teach and write. To those of you reading this, I hope I do my mentors justice by providing a clear and useful text to assist you in mastering QGIS.
分享到:
收藏