T H E G E O S PAT I A L D E S K T O P
|
|
|
- Alexander Phillips
- 9 years ago
- Views:
Transcription
1 G A R Y S H E R M A N T H E G E O S PAT I A L D E S K T O P O P E N S O U R C E G I S A N D M A P P I N G
2 The Geospatial Desktop: Open Source GIS and Mapping by Gary Sherman Published by Locate Press Copyright 2012 Gary Sherman All rights reserved No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. Direct permission requests to or mail to Locate Press, PO Box 4844, Williams Lake, BC, Canada V2G 2V8. Editor Tyler Mitchell Cover Design Julie Springer Interior Design Based on Tufte-LATEX Publisher Website Book Website
3 Contents Table of Contents Forward 5 15 GIS Scripting GRASS QGIS To get the book, see
4
5 5 1 Forward Locate Press is proud to bring this second edition of Gary s book into print. The original title, Desktop GIS, published by Pragmatic Press successfully sold out, yet there is increasing pressure to have it back in print. It is special in another way too. It is the first title being published by Locate Press. As our flagship book for this new venture we are thrilled to have such a well-known and competent author as Gary Sherman. His enthusiasm and inspiration have been a pivotal influence in helping us start our publishing endeavour. Thank you Gary! We ve found that it is particularly sought-after by academics looking for a text book for introducing open source GIS into their courses. Seasoned open source GIS users also have been looking for copies to give to their friends. The demand for having long term stable access to titles like this won t be going away anytime soon. Open source geospatial technology continues to take root around the world and across sectors. Financial crises tend to encourage open source adoption due to the
6 6 CHAPTER 1. FORWARD low price tag. Likewise more organisations need to adopt open standards for interoperability and open source geo applications have proven themselves regularly on that front. So now, more than ever, users are seeking out high quality training material from subject matter experts such as Gary. The movement toward both cloud computing and mobile application platforms also puts increased stress on those products that cannot operate in a free and open source operating system. Fortunately, most open source geo applications are available across all major desktop and server operating systems. So when you need to move from one operating system to the other, your experience will still be similar to what you will learn in this book. You are likely to find that this book will fill gaps in ways you didn t expect, from practical everyday tips for selecting software to indepth examples for completing obscure tasks. I believe this is a special book, without comparison, as few other authors have yet taken on the challenge of covering this broad landscape with significant depth. Enjoy the book, Tyler Mitchell Publisher
7
8 GIS Scripting (Partial Excerpt from The Geospatial Desktop) Most GIS users that I know end up doing a bit of programming, regardless of the software they are using. There is always some little task that is easier done with a script or a bit of code. In this chapter, we ll look at some methods for automating tasks in OSGIS software. You don t have to be a programmer to do a bit of script writing, especially when you can get jump-started by downloading examples and snippets. The script languages available to you depend on the application you are using. Applications and tools with a command-line interface (CLI) can be scripted with most any language available. Others have bindings for specific languages. Some nonexhaustive examples include the following: GRASS: Shell, Tcl/Tk, Perl, Ruby, Python QGIS: Python GDAL/OGR: Shell, Perl, Ruby, Python PostGIS: Any language that works with PostgreSQL, including Perl, Python, PHP, and Ruby
9 270 CHAPTER 15. GIS SCRIPTING Some OSGIS applications even provide bindings that allow you to write a custom application using a language such as Python. In this chapter, we will explore some of the techniques used with these applications GRASS Since the real core of GRASS is comprised of CLI applications, it s pretty easy to use most any scripting language to perform tasks. From Perl, Python, Ruby, and Tcl/Tk, you can call an application and capture the output. This makes GRASS easy to automate. Shell Game What do we mean by a shell? It s a command interpreter provided with your operating system. If you use OS X, Linux, or a Unix variant, you likely have bash, csh, and/or ksh available to you. Windows has cmd, which has its own language and probably isn t going to be real helpful in shell scripting. Check out MSYS (mingw.org) and Cygwin (cygwin.org). Probably the simplest way to automate GRASS tasks is using the scripting capabilities of your shell. On Linux and OS X, this is a pretty natural thing to do, because both come with a fully capable shell. On Windows, you may have to install a Unix-like shell such as MSYS or Cygwin to be able to accomplish the same results QGIS Since version 0.9.x, QGIS has included support for scripting with Python. QGIS provides the following options for using Python: Use the Python console from which you can run scripts using the objects and methods in the QGIS API.
10 15.2. QGIS 271 Write plugins in Python instead of C++. Use PyQt 1 to build complete mapping applications using Python and the QGIS libraries. 1 riverbankcomputing.com/ software/pyqt/intro Why would you want to do any of this? You d be surprised at the things you might dream up. QGIS has been designed to make the libraries easily usable in your own plugins and applications. With the Python bindings, this brings a whole new world of possibility from simple plugins to complete applications. There is a large assortment of Python plugins for QGIS. To find out what s available, view the current list from the Plugins Fetch Python Plugins menu. We re going to take a look at a simple plugin to help us get an idea of what can be done with the PyQGIS bindings. Using Python to get started is pretty easy, so don t be afraid if you aren t a programmer. Let s start by looking at the console. The Python Console The console is a bit like using Python from the command line. It lets you interactively enter bits of code and see the result. This is a good way to experiment with the interface and can actually be helpful when you are writing a plugin or application. To bring up the Python console, go to the Plugins menu, and choose Python Console. The console looks similar to a terminal or command window. Make sure you read the little tip at the top. The console is not of much use if we don t know what to enter into it. Let s try a simple example and change the title of the main QGIS window. The iface object provides you with access to the QGIS API. Using it, we can reference the main window and set the title: qgis.utils.iface.mainwindow().setwindowtitle( Hello from Desktop GIS! ) In Figure 15.1, on the following page, we can see the result of our
11 272 CHAPTER 15. GIS SCRIPTING Figure 15.1: Changing the window title with Python little example, with the console in front and the new title showing on the QGIS window behind it. Changing the title isn t all that useful, but it shows you how to access the interface to the QGIS internals. The console is a good exploratory tool for learning about the QGIS API. To manipulate the map canvas, we can try: qgis.utils.iface.zoomfull()
12 15.2. QGIS 273 This will zoom the map to its full extent. Now you re probably wondering how to find out what functions are available. The answer is the QGIS API documentation, available from the website The API may be a bit intimidating at first, but it s very useful, in fact essential, to our Python exploits. When you use the iface object in the Python console, you are actually using an instance of the QgisInterface class. 3 If we look at the documentation for 3 classqgisinterface.html QgisInterface, we find functions such as the following: zoomfull(): Zoom to full extent of map layers. zoomtoprevious(): Zoom to previous view extent. zoomtoactivelayer(): Zoom to extent of the active layer. addvectorlayer(qstring vectorlayerpath, QString basename, QString providerkey): Add a vector layer. addrasterlayer(qstring rasterlayerpath): Add a raster layer given a raster layer filename. addrasterlayer(qstring rasterlayerpath, QString basename=qstring()): Add a raster layer given a QgsRasterLayer object. addproject(qstring theproject): Add a project. newproject(bool theprompttosaveflag=false): Start a blank project. We already used the zoomfull method to zoom to the full extent of all the layers on our map. You can see there is a lot of potential here for manipulating the map, including adding layers and projects. We can use these same methods in our plugins and stand-alone applications as well. As you dive into PyQGIS, the documentation will be your friend. You should also keep a copy of the PyQGIS Developer Cookbook 4 handy as well. It contains a lot of information for doing common operations like adding and working with layers, dealing with projections, styling layers. 4 pyqgis-cookbook/ Think of the Python console as a workbench for trying methods and using classes in the QGIS API. Once you get that under your belt, you re ready for some real programming. We ll start out by creating a little plugin using Python.
13 274 CHAPTER 15. GIS SCRIPTING A PyQGIS Plugin Writing plugins in Python is much simpler than using C++. Let s work up a little plugin that implements something missing from the QGIS interface. For this exercise, you ll need QGIS 1.0 or greater, Python, PyQt, and the Qt developer tools. MooseFinch: A mythical creature Harrison just received the latest Birding Extraordinaire magazine, and in it he finds an article that describes locations for the exotic MooseFinch. The locations are in latitude and longitude, which don t mean much to Harrison unless he s in his backyard. He fires up QGIS, adds his layer containing the world boundaries, and begins hunting for the coordinates. Sure, he can use the coordinate display in the status bar to eventually find what he wants, but wouldn t it be nice to be able to just zoom to the coordinates by entering them? Well, that s what our little plugin will do for us (and Harrison). Before we get started, we need to learn a little bit about how the plugin mechanism works. When QGIS starts up, it scans certain directories looking for both C++ and Python plugins. For a file (shared library, DLL, or Python script) to be recognized as a plugin, it has to have a specific signature. For Python plugins the requirements are pretty simple and, as we ll see in a moment, something we don t have to worry about. Regardless of your platform, you ll find your Python plugins are installed in the.qgis subdirectory of your home directory: Mac OS X and Linux:.qgis/python/plugins Windows:.qgis\python\plugins For QGIS to find our Python plugin, we have to place it in the appropriate plugin directory for our platform. Each plugin is contained in its own directory. When QGIS starts up, it will scan each subdirectory in our plugin directory (for example, $HOME/.qgis/python/plugins on Linux and Mac) and initialize any plugins it finds. Once that s done, our Python plugin will show up in the QGIS plugin manager
14 15.2. QGIS 275 where we can activate it just like the other plugins that come with QGIS. You can also specify an additional path for QGIS to search for plugins by using the QGIS_PLUGINPATH environment variable. OK, enough of that, let s get started writing our plugin. Setting Up the Structure Back in the old days (around version 0.9) we had to create all the Boilerplate: standardized pieces of boilerplate for a Python plugin by hand. This was tedious and basically the same for each plugin. Fortunately that s no longer the case we can generate a plugin template using the Plugin Builder. The Plugin Builder is itself a Python plugin that takes some input from you and creates all the files needed for a new plugin. It s then up to you to customize things and add the code that does the real work. To use the Plugin Builder, first install it from the Plugins Fetch Python Plugins menu as seen in Figure text for use as clauses in contracts or as part of a computer program When you click on the Install plugin button the Plugin Builder will be installed and you ll find a tool for it on the Plugins toolbar and Figure 15.2: Builder Installing the Plugin
15 276 CHAPTER 15. GIS SCRIPTING menu entries under Plugins Plugin Builder Let s generate the structure for our Zoom to Point plugin by clicking on the Plugin Builder tool or menu item. We are presented with a dialog that contains all the fields needed to create the plugin. On the left side of the plugin dialog you ll see some hints about what is expected for each field. Figure 15.3 shows all the fields needed to generate the Zoom to Point plugin. Figure 15.3: Plugin Builder Ready to Generate the Zoom to Point Plugin When we click on OK, the Plugin Builder generates a bunch of files: icon.png A default icon used on the toolbar. You will likely want to customize this to better represent your plugin. init.py This script initializes the plugin, making it known to QGIS. The name, description, version, icon, and minimum QGIS version are each defined as Python methods.
16 15.2. QGIS 277 Makefile This is a GNU makefile that can be used to compile the resource file resources.qrc and the user interface file (.ui). This requires gmake and works on both Linux and Mac OS X and should also work under Cygwin on Windows. metadata.txt The metadata file contains information similar to the methods in init.py. Beginning with QGIS 2.0, the metadata file will be used instead of init.py to validate and register a Python plugin. resources.qrc This is a Qt resource file that contains the name of the plugin s icon. ui_zoomtopoint.ui This is the Qt Designer form that provides a blank dialog with OK and Cancel buttons. It s up to you to customize this to build your plugin s user interface. zoomtopoint.py This is the main Python class for your plugin that handles loading and unloading of icons and menus, and implements the run method that is called by QGIS when your plugin is activated. You ll need to customize the run method to make the plugin do its magic. zoomtopointdialog.py This Python class contains the code needed to initialize the plugin s dialog. You ll notice the naming of a number of the files is based on a lower case version of the name you provide for your plugin, in this case zoomtopoint. After the plugin generates the needed files, a results dialog is shown that contains some helpful information, as shown in Figure 15.4, on the next page.
17 278 CHAPTER 15. GIS SCRIPTING Figure 15.4: Results of Generating the ZoomToPoint Plugin The results dialog contains helpful information including: Where the generated plugin was saved The location of your QGIS plugin directory Instructions on how to install the plugin Instructions on how to compile the resource and user interface files How to customize the plugin to make it do something useful At a minimum the only files we have to modify to get the plugin functional are the user interface file (.ui) and the implementation file (zoomtopoint.py). If you need additional resources (icons or images) you will need to modify resources.qrc.
18 15.2. QGIS 279 Defining Resources If you use the Plugin Builder you don t have to modify the resources file, but you do have to compile it. Let s take a look at what s in the resource file: <RCC> <qresource prefix="/plugins/zoom_to_point" > <file>icon.png</file> </qresource> </RCC> This resource file uses a prefix to prevent naming clashes with other plugins. It s good to make sure your prefix will be unique usually using the name of your plugin is adequate. 5 The icon is just a PNG image that will be used in the toolbar when we activate our plugin. You can create your own PNG or use an existing one. The only real requirement is that it be 22-by-22 pixels so it will fit nicely on the toolbar. You can also use other formats (XPM for one), but PNG is convenient, and there are a lot of existing icons in that format. 5 Plugin Builder created the prefix for you based on the plugin name. You don t have to change the icon during development the default created by Plugin Builder works fine. Once we have the resource file built, we need to use the PyQt resource compiler to compile it: pyrcc4 -o resources.py resources.qrc The -o switch is used to define the output file. If you don t include it, the output of pyrcc4 will be written to the terminal, which is not really what we re after here. Now that we have the resources compiled, we need to build the GUI to collect the information for ZoomToPoint. Customizing the GUI Plugin Builder created the GUI for us, but it needs to have controls added to it in order to get our plugin working. To do this, we ll use the same tool that C++ developers use: Qt Designer. This is a visual design tool that allows you to create dialog boxes and main windows by dragging and dropping widgets and defining their properties. Designer is installed along with Qt, so it should be already available on your machine.
19 280 CHAPTER 15. GIS SCRIPTING Figure 15.5: Plugin dialog box in Qt Designer
20 15.2. QGIS 281 Our dialog box is pretty simple. In Figure 15.5, on the facing page, you can see the dialog box in Designer, along with the widget palette and the property editor. It s already complete, but let s take a look at what we had to do to build it. It s going to be a quick tour since we won t go into all the intricacies of Designer. If you want to get into the nitty-gritty, see the excellent documentation on Designer on the Qt website 6 or in your Qt documentation directory. 6 We start by opening our generated dialog box using the File menu and selecting ui_zoomtopoint.ui. Then we add text labels and text edit controls, as shown in Figure 15.5, on the preceding page. We also added a spin control for scaling the view. You don t have to set any properties of the text edit controls, but it can be convenient to name them something other than the default. In this case, I named them xcoord, ycoord, and spinboxscale. This makes it easier to reference them in the code (for those of us with short memories). For our dialog box, we don t need to change the default actions of the OK and Cancel buttons. Once we have all the controls on the form, we re ready to generate some code from it. To convert our completed dialog box to Python, we use the PyQt pyuic4 command to compile it: pyuic4 -o ui_zoomtopoint.py ui_zoomtopoint.ui This gives us ui_zoomtopoint.py containing the code necessary to create the dialog box when the plugin is launched. It s important to maintain the naming convention as the generated Python code relies on specific names in order to find the components it needs. For example, the Python script that initializes the dialog imports ui_zoomtopoint.py: from ui_zoomtopoint import Ui_ZoomToPoint If the compiled dialog is not named properly the plugin will fail to initialize. Our GUI is now ready for use. All we need to write now is the Python code to interact with the QGIS map canvas.
21 282 CHAPTER 15. GIS SCRIPTING Getting to Zoom Up to this point we ve been laying the groundwork for our plugin. Before we write the code to zoom the map, let s take a brief look at some of the requirements for our plugin that are found in zoomtopoint.py. The Plugin Builder generates this code for us but it is good to get an idea of what it does. Every Python script that uses the QGIS libraries and PyQt needs to import the QtCore and QtGui libraries, as well as the QGIS core library. This gives us access to the PyQt wrappers for our Qt objects (like our dialog box) and the QGIS core libraries. Here are the first few lines from zoomtopoint.py, excluding the header comments that appear at the beginning of the file: zoomtopoint.py 1 # Import the PyQt and QGIS libraries 2 from PyQt4.QtCore import * 3 from PyQt4.QtGui import * 4 from qgis.core import * 5 # Initialize Qt resources from file resources.py 6 import resources 7 # Import the code for the dialog 8 from zoomtopointdialog import ZoomToPointDialog 9 10 class ZoomToPoint: You can see that in lines 2 through 4 we import the needed Qt libraries as well as the QGIS core library. Following that we import the resources that contain our icon definition and in line 8 we import the dialog loader class. Line 10 begins our class definition for the plugin. The implementation of our plugin all takes place within the ZoomToPoint class. The methods we are about to discuss are all members of ZoomToPoint and are shown in the listing below: zoomtopoint.py 10 class ZoomToPoint: def init (self, iface): 13 # Save reference to the QGIS interface 14 self.iface = iface
22 15.2. QGIS def initgui(self): 17 # Create action that will start plugin configuration 18 self.action = QAction(QIcon(":/plugins/zoomtopoint/icon.png"), \ 19 "Zoom to point...", self.iface.mainwindow()) 20 # connect the action to the run method 21 QObject.connect(self.action, SIGNAL("triggered()"), self.run) # Add toolbar button and menu item 24 self.iface.addtoolbaricon(self.action) 25 self.iface.addplugintomenu("&zoom to point...", self.action) def unload(self): 28 # Remove the plugin menu item and icon 29 self.iface.removepluginmenu("&zoom to point...",self.action) 30 self.iface.removetoolbaricon(self.action) # run method that performs all the real work 33 def run(self): 34 # create and show the dialog 35 dlg = ZoomToPointDialog() 36 # show the dialog 37 dlg.show() 38 result = dlg.exec_() 39 # See if OK was pressed 40 if result == 1: 41 # do something useful (delete the line containing pass and 42 # substitute with your code 43 pass When the class is first instantiated, we store the reference to the iface object using the init method. This method gets called whenever we create a ZoomToPoint object. We store iface as a class member because we are going to use it later when we need access to the map canvas. As far as QGIS is concerned, plugins must implement only two methods: initgui and unload. These two methods are used to initialize the user interface when the plugin is first loaded and clean up the interface when it s unloaded. Let s take a look at what we need to initialize our plugin GUI. First we need to create what s called an action. This is a Qt object of type QAction. It s used to define an action that will later be used on a menu or a toolbar. On line 18, we create our action by supplying
23 284 CHAPTER 15. GIS SCRIPTING three arguments: The icon for the toolbar. This is a combination of the prefix (/plugins/zoom_to_point) and the icon file name (icon.png) as specified in our resources file. Some text that s used in the menu and tooltip, in this case Zoom To Point plugin. A reference to the parent for the plugin, in this case the main window of QGIS. On line 21, we do one last thing with the action to connect it to the run method. This basically connects things so that when the OK button on the dialog box is clicked the run method in our ZoomToPoint class is called. Next we need to actually put our nicely configured action on the menu and toolbar in the GUI. The QgisInterface class that we played with in the Python console contains the methods we need. On line 24, we use addtoolbaricon to add the icon for our tool to the plugin toolbar in QGIS. To add it to the menu, we use addplugintomenu method, as shown on line 25. Now our GUI is set up and ready to use. The unload method is pretty simple. It uses the removepluginmenu and removetoolbaricon methods to remove the menu item and the icon from the toolbar. Remember this method is called only when you unload the plugin from QGIS using the Plugin Manager. Finally, we are ready to add the bit of code that does the real work. Like most GUI applications, the bulk of the code has to do with the user interface while a few bytes do the actual work. In the previous listing the run method is shown as it was generated by Plugin Builder. In the listing below we have modified the run method to zoom to a point. zoomtopoint.py 32 # run method that performs all the real work 33 def run(self): 34 # create and show the ZoomToPoint dialog 35 dlg = ZoomToPointDialog()
24 15.2. QGIS dlg.show() 37 result = dlg.exec_() 38 # See if OK was pressed 39 if result == 1: 40 # Get the coordinates and scale factor from the dialog 41 x = dlg.ui.xcoord.text() 42 y = dlg.ui.ycoord.text() 43 scale = dlg.ui.spinboxscale.value() 44 # Get the map canvas 45 mc=self.iface.mapcanvas() 46 # Create a rectangle to cover the new extent 47 extent = mc.fullextent() 48 xmin = float(x) - extent.width() / 200 * scale 49 xmax = float(x) + extent.width() / 200 * scale 50 ymin = float(y) - extent.height() / 200 * scale 51 ymax = float(y) + extent.height() / 200 * scale 52 rect = QgsRectangle( xmin, ymin, xmax, ymax ) 53 # Set the extent to our new rectangle 54 mc.setextent(rect) 55 # Refresh the map 56 mc.refresh() The first step is to create the dialog box on line 35, show it, and then call the exec_ method. This causes the dialog box to show itself and then wait for some user interaction. The dialog box remains up until either the OK or Cancel button is clicked. Once a button is clicked, we test to see whether it was the OK button on line 39. If so, we are then ready to zoom the map. First we have to retrieve the x and y coordinates and the scale that you entered on the dialog box (lines 41 through 43). We store these in local variables just to make the next step a bit more readable in the code. Once we have the user inputs, we fetch the extent rectangle from the map canvas using the fullextent method (lines 47). extent. In lines 48 through 52 we calculate the new bounds using the scale value and a constant and use them to create a new rectangle. Once we have the rectangle, we are ready to zoom the map by calling the map canvas setextent method (line 54). To actually get the map to zoom, we call the map canvas refresh method in line 56 and the map zooms to the rectangle we specified. Once complete, our plugin stands by ready for the next request. Let s summarize the process of creating a plugin. First we generate
25 286 CHAPTER 15. GIS SCRIPTING a template using Plugin Builder. Next we optionally set up our resource file with a custom icon and design the dialog box using Qt Designer. Finally, we implement the run method where the real work of showing the dialog box, collecting the input, and zooming the map takes place. While we stretched out the explanation, there really isn t all that much hand written code involved in making the plugin. In fact, for the ZoomToPoint plugin there are less than 80 lines of actual code, of which we wrote very little by hand. There are a number of enhancements you could add to the plugin, including the ability to remember the x, y, and scale values that you used the previous go. If you got really fancy, you could also figure out how to set a marker at the point after you zoom. Come to think of it, once you add those features, send them to me, and I ll include them in the next release of the plugin. Just to prove it works, you can see the plugin and the values we just entered in Figure 15.6, on the facing page. Behind it you ll see the map zoomed to the coordinates we specified. Notice the magnifying glass icon on the right of the Plugins toolbar (just above the layer list). That s the icon I specified for the final version of the plugin, and it indeed shows up on the toolbar. If we were to look in the Plugins menu, we would find an entry for Zoom to Point as well. 7 Actually, you can find information on writing QGIS plugins in C++ on the QGIS wiki at org. Writing a QGIS plugin in Python is pretty easy. Some plugins won t require a GUI at all. For example, you might write a plugin that returns the map coordinates for the point you click the map. Such a plugin wouldn t require any user input and could use a standard Qt MessageBox to display the result. You can also write plugins for QGIS in C++, but that s another story and one I ll let you write. 7 A PyQGIS Application A stand-alone application is a step beyond a QGIS plugin. In some ways, they are very similar. We need to create a GUI and use the same imports. On the other hand, we don t have to write all that code to interface with the QGIS plugin mechanism. A stand-alone application does require a lot more GUI coding. Rather than build an application here, I ll point you at a simple tutorial for more in-
26 15.2. QGIS 287 Figure 15.6: use ZoomToPoint plugin in formation com/creating_a_standalone_ GIS_Application_1 To get the complete chapter and book, see
Building a Python Plugin
Building a Python Plugin QGIS Tutorials and Tips Author Ujaval Gandhi http://google.com/+ujavalgandhi This work is licensed under a Creative Commons Attribution 4.0 International License. Building a Python
Chapter 1: Getting Started
Chapter 1: Getting Started Every journey begins with a single step, and in ours it's getting to the point where you can compile, link, run, and debug C++ programs. This depends on what operating system
GUI application set up using QT designer. Sana Siddique. Team 5
GUI application set up using QT designer Sana Siddique Team 5 Introduction: A very important part of the Team 5 breakout board project is to develop a user friendly Graphical User Interface that is able
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
MEAP Edition Manning Early Access Program Hello! ios Development version 14
MEAP Edition Manning Early Access Program Hello! ios Development version 14 Copyright 2013 Manning Publications For more information on this and other Manning titles go to www.manning.com brief contents
Running and Scheduling QGIS Processing Jobs
Running and Scheduling QGIS Processing Jobs QGIS Tutorials and Tips Author Ujaval Gandhi http://google.com/+ujavalgandhi Translations by Christina Dimitriadou Paliogiannis Konstantinos Tom Karagkounis
David Boddie. PyCon UK 2007, Birmingham
Creating GUI Applications with PyQt and Qt Designer David Boddie [email protected] PyCon UK 2007, Birmingham Qt, Qtopia and Trolltech are registered trademarks of Trolltech ASA Contents 1. What are
Installing C++ compiler for CSc212 Data Structures
for CSc212 Data Structures [email protected] Spring 2010 1 2 Testing Mac 3 Why are we not using Visual Studio, an Integrated Development (IDE)? Here s several reasons: Visual Studio is good for LARGE project.
Copyright 2006 TechSmith Corporation. All Rights Reserved.
TechSmith Corporation provides this manual as is, makes no representations or warranties with respect to its contents or use, and specifically disclaims any expressed or implied warranties or merchantability
Using ArcGIS ModelBuilder to batch process files
The ArcGIS Model Builder is a tool you can use to help process a large number of files in an automated fashion. To open a new ModelBuilder document, either choose ModelBuilder from the Geoprocessing menu,
So you want to create an Email a Friend action
So you want to create an Email a Friend action This help file will take you through all the steps on how to create a simple and effective email a friend action. It doesn t cover the advanced features;
Running your first Linux Program
Running your first Linux Program This document describes how edit, compile, link, and run your first linux program using: - Gnome a nice graphical user interface desktop that runs on top of X- Windows
Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide
Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4 10 Steps to Developing a QNX Program Quickstart Guide 2008, QNX Software Systems GmbH & Co. KG. A Harman International Company. All rights
Eclipse installation, configuration and operation
Eclipse installation, configuration and operation This document aims to walk through the procedures to setup eclipse on different platforms for java programming and to load in the course libraries for
Code Estimation Tools Directions for a Services Engagement
Code Estimation Tools Directions for a Services Engagement Summary Black Duck software provides two tools to calculate size, number, and category of files in a code base. This information is necessary
Shuffling Quantum GIS into the Open Source GIS Stack
Shuffling Quantum GIS into the Open Source GIS Stack Free and Open Source Software for Geospatial (FOSS4G) Conference Victoria, BC Gary E. Sherman September 24, 2007 Contents 1 Introduction 7 1.1 Topics........................................
Apple s Automator Workshop
Apple s Automator Workshop Dr. Luanne Fose, Instructor Cal Poly, The Center for Teaching and Learning Background Apple has been trying to get people to program for a really long time. Apple introduced
14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë
14.1 bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë bî~äì~íáåö=oéñäéåíáçå=ñçê=emi=rkfui=~åç=lééåsjp=eçëíë This guide walks you quickly through key Reflection features. It covers: Getting Connected
10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition
10 STEPS TO YOUR FIRST QNX PROGRAM QUICKSTART GUIDE Second Edition QNX QUICKSTART GUIDE A guide to help you install and configure the QNX Momentics tools and the QNX Neutrino operating system, so you can
Rational Application Developer Performance Tips Introduction
Rational Application Developer Performance Tips Introduction This article contains a series of hints and tips that you can use to improve the performance of the Rational Application Developer. This article
Introduction to Google SketchUp (Mac Version)
Introduction to Google SketchUp (Mac Version) This guide is handy to read if you need some basic knowledge to get started using SketchUp. You will see how to download and install Sketchup, and learn how
Hello. What s inside? Ready to build a website?
Beginner s guide Hello Ready to build a website? Our easy-to-use software allows you to create and customise the style and layout of your site without having to understand any coding or HTML. In this guide
How to test and debug an ASP.NET application
Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult
RemoteWare Software Manager
RemoteWare Software Manager Client User s Guide Version 2.0 RemoteWare Software Manager Client User s Guide Version 2.0 This document was prepared to assist licensed users of RemoteWare by XcelleNet, Inc.;
TUTORIAL 4 Building a Navigation Bar with Fireworks
TUTORIAL 4 Building a Navigation Bar with Fireworks This tutorial shows you how to build a Macromedia Fireworks MX 2004 navigation bar that you can use on multiple pages of your website. A navigation bar
Hands-on Guide. FileMaker Pro. Using FileMaker Pro with Microsoft Office
Hands-on Guide FileMaker Pro Using FileMaker Pro with Microsoft Office Table of Contents Introduction... 3 Before You Get Started... 4 Sharing Data between FileMaker Pro and Microsoft Excel... 5 Drag and
Netbeans IDE Tutorial for using the Weka API
Netbeans IDE Tutorial for using the Weka API Kevin Amaral University of Massachusetts Boston First, download Netbeans packaged with the JDK from Oracle. http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-
Vodafone PC SMS 2010. (Software version 4.7.1) User Manual
Vodafone PC SMS 2010 (Software version 4.7.1) User Manual July 19, 2010 Table of contents 1. Introduction...4 1.1 System Requirements... 4 1.2 Reply-to-Inbox... 4 1.3 What s new?... 4 2. Installation...6
Version Control with Subversion and Xcode
Version Control with Subversion and Xcode Author: Mark Szymczyk Last Update: June 21, 2006 This article shows you how to place your source code files under version control using Subversion and Xcode. By
Basic ESXi Networking
Basic ESXi Networking About vmnics, vswitches, management and virtual machine networks In the vsphere client you can see the network diagram for your ESXi host by clicking Networking on the Configuration
Python for Series 60 Platform
F O R U M N O K I A Getting Started with Python for Series 60 Platform Version 1.2; September 28, 2005 Python for Series 60 Platform Copyright 2005 Nokia Corporation. All rights reserved. Nokia and Nokia
Hello Purr. What You ll Learn
Chapter 1 Hello Purr This chapter gets you started building apps. It presents the key elements of App Inventor the Component Designer and the Blocks Editor and leads you through the basic steps of creating
Download and Installation Instructions. Visual C# 2010 Help Library
Download and Installation Instructions for Visual C# 2010 Help Library Updated April, 2014 The Visual C# 2010 Help Library contains reference documentation and information that will provide you with extra
CEFNS Web Hosting a Guide for CS212
CEFNS Web Hosting a Guide for CS212 INTRODUCTION: TOOLS: In CS212, you will be learning the basics of web development. Therefore, you want to keep your tools to a minimum so that you understand how things
Cloud Administration Guide for Service Cloud. August 2015 E65820-01
Cloud Administration Guide for Service Cloud August 2015 E65820-01 Table of Contents Introduction 4 How does Policy Automation work with Oracle Service Cloud? 4 For Customers 4 For Employees 4 Prerequisites
Crop and Frame Your Photos
Crop and Frame Your Photos Paint Shop Pro s crop tool gives you total control over your photo compositions. Cropping allows you to turn busy portraits into professional prints. And when you have a nicely
Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5.
1 2 3 4 Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5. It replaces the previous tools Database Manager GUI and SQL Studio from SAP MaxDB version 7.7 onwards
An Introduction to Open Source Geospatial Tools
An Introduction to Open Source Geospatial Tools by Tyler Mitchell, author of Web Mapping Illustrated GRSS would like to thank Mr. Mitchell for this tutorial. Geospatial technologies come in many forms,
Managing Your Desktop with Exposé, Spaces, and Other Tools
CHAPTER Managing Your Desktop with Exposé, Spaces, and Other Tools In this chapter Taking Control of Your Desktop 266 Managing Open Windows with Exposé 266 Creating, Using, and Managing Spaces 269 Mac
PTC Integrity Eclipse and IBM Rational Development Platform Guide
PTC Integrity Eclipse and IBM Rational Development Platform Guide The PTC Integrity integration with Eclipse Platform and the IBM Rational Software Development Platform series allows you to access Integrity
Installing the Cygwin UNIX Emulator on Windows 7
Where to do Some Basic Background Reading Start here for all things Cygwin: http://cygwin.com/install.html Note that these instructions include the installation steps we use on the SM1094 (Computational
Setting up VMware Server v1 for 2X VirtualDesktopServer Manual
Setting up VMware Server v1 for 2X VirtualDesktopServer Manual URL: www.2x.com E-mail: [email protected] Information in this document is subject to change without notice. Companies, names, and data used in examples
Chapter 6. Formatting Text with Character Tags
Chapter 6 Formatting Text with Character Tags 143 144 FrameMaker 7: The Complete Reference In many desktop publishing applications, you use a single style sheet for both paragraph and character formatting.
Attix5 Pro Server Edition
Attix5 Pro Server Edition V7.0.3 User Manual for Linux and Unix operating systems Your guide to protecting data with Attix5 Pro Server Edition. Copyright notice and proprietary information All rights reserved.
Using Spry Widgets. In This Chapter
B2 Using Spry Widgets One foundation of Web 2.0 is widespread user interactivity enabled by extensive use of CSS and JavaScript. This allows applications that run inside a Web browser to offer the kind
ebooks: From Adobe InDesign to the Kindle Store
Technical Paper ebooks: From Adobe InDesign to the Kindle Store Table of Contents 1 A multiplicity of formats 2 Step 1: Export InDesign document to EPUB 5 Step 2: Convert EPUB to MOBI 9 Step 3: Preview
The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.
Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...
Getting Started with WebSite Tonight
Getting Started with WebSite Tonight WebSite Tonight Getting Started Guide Version 3.0 (12.2010) Copyright 2010. All rights reserved. Distribution of this work or derivative of this work is prohibited
Information Technology Solutions
Connecting People, Process Information & Data Network Systems Diagnostic Testing Information Technology Solutions Getting started in Workflow Designer Prior Learning 1. While it helps to have some knowledge
Your First App Store Submission
Your First App Store Submission Contents About Your First App Store Submission 4 At a Glance 5 Enroll in the Program 5 Provision Devices 5 Create an App Record in itunes Connect 5 Submit the App 6 Solve
DIGIPASS CertiID. Getting Started 3.1.0
DIGIPASS CertiID Getting Started 3.1.0 Disclaimer Disclaimer of Warranties and Limitations of Liabilities The Product is provided on an 'as is' basis, without any other warranties, or conditions, express
Welcome to CD Burning with AudibleManager
Welcome to CD Burning with AudibleManager Mac Users: You may burn CDs using Apple itunes3. See page 13 of the Getting Started With Audible Guide for instructions. You can now burn to CDs your favorite
Creating a Guest Book Using WebObjects Builder
Creating a Guest Book Using WebObjects Builder Creating a Guest Book Using WebObjects BuilderLaunch WebObjects Builder WebObjects Builder is an application that helps you create WebObjects applications.
An Introduction to Modern Software Development Tools Creating A Simple GUI-Based Tool Appleʼs XCode Version 3.2.6
1 2 3 4 An Introduction to Modern Software Development Tools Creating A Simple GUI-Based Tool Appleʼs XCode Version 3.2.6 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Charles J. Ammon / Penn State August, 2011
Manual pdf-recover Page 2
Manual Version 4.0 Welcome... 3 Demo version Online activation... 3 Copyright... 3 Referring to the style... 4 Introduction... 4 Process... 5 Program call-up... 5 Manual mode... 5 Drag and Drop (Windows
Microsoft Query, the helper application included with Microsoft Office, allows
3 RETRIEVING ISERIES DATA WITH MICROSOFT QUERY Microsoft Query, the helper application included with Microsoft Office, allows Office applications such as Word and Excel to read data from ODBC data sources.
BIGPOND ONLINE STORAGE USER GUIDE Issue 1.1.0-18 August 2005
BIGPOND ONLINE STORAGE USER GUIDE Issue 1.1.0-18 August 2005 PLEASE NOTE: The contents of this publication, and any associated documentation provided to you, must not be disclosed to any third party without
13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES
LESSON 13 Managing Devices OBJECTIVES After completing this lesson, you will be able to: 1. Open System Properties. 2. Use Device Manager. 3. Understand hardware profiles. 4. Set performance options. Estimated
How to create PDF maps, pdf layer maps and pdf maps with attributes using ArcGIS. Lynne W Fielding, GISP Town of Westwood
How to create PDF maps, pdf layer maps and pdf maps with attributes using ArcGIS Lynne W Fielding, GISP Town of Westwood PDF maps are a very handy way to share your information with the public as well
How To Load Data Into An Org Database Cloud Service - Multitenant Edition
An Oracle White Paper June 2014 Data Movement and the Oracle Database Cloud Service Multitenant Edition 1 Table of Contents Introduction to data loading... 3 Data loading options... 4 Application Express...
House Design Tutorial
Chapter 2: House Design Tutorial This House Design Tutorial shows you how to get started on a design project. The tutorials that follow continue with the same plan. When we are finished, we will have created
Pulse Secure Client. Customization Developer Guide. Product Release 5.1. Document Revision 1.0. Published: 2015-02-10
Pulse Secure Client Customization Developer Guide Product Release 5.1 Document Revision 1.0 Published: 2015-02-10 Pulse Secure, LLC 2700 Zanker Road, Suite 200 San Jose, CA 95134 http://www.pulsesecure.net
Installing LearningBay Enterprise Part 2
Installing LearningBay Enterprise Part 2 Support Document Copyright 2012 Axiom. All Rights Reserved. Page 1 Please note that this document is one of three that details the process for installing LearningBay
NASA Workflow Tool. User Guide. September 29, 2010
NASA Workflow Tool User Guide September 29, 2010 NASA Workflow Tool User Guide 1. Overview 2. Getting Started Preparing the Environment 3. Using the NED Client Common Terminology Workflow Configuration
Introduction to dobe Acrobat XI Pro
Introduction to dobe Acrobat XI Pro Introduction to Adobe Acrobat XI Pro is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. To view a copy of this
Module Customer Ratings and Reviews Pro + Google Rich Snippets Module
Module Customer Ratings and Reviews Pro + Google Rich Snippets Module Date : June 17 th, 2015 Table of contents_ MODULE PURPOSE 2 TECHNICAL DESCRIPTION 2 SERVER PREREQUISITES 2 MODULE INSTALLATION 2 MODULE
Asset Track Getting Started Guide. An Introduction to Asset Track
Asset Track Getting Started Guide An Introduction to Asset Track Contents Introducing Asset Track... 3 Overview... 3 A Quick Start... 6 Quick Start Option 1... 6 Getting to Configuration... 7 Changing
Task Scheduler. Morgan N. Sandquist Developer: Gary Meyer Reviewer: Lauri Watts
Morgan N. Sandquist Developer: Gary Meyer Reviewer: Lauri Watts 2 Contents 1 Introduction 4 1.1 Start Up........................................... 4 1.1.1 Scheduled Tasks..................................
understand how image maps can enhance a design and make a site more interactive know how to create an image map easily with Dreamweaver
LESSON 3: ADDING IMAGE MAPS, ANIMATION, AND FORMS CREATING AN IMAGE MAP OBJECTIVES By the end of this part of the lesson you will: understand how image maps can enhance a design and make a site more interactive
Scheduling in SAS 9.4 Second Edition
Scheduling in SAS 9.4 Second Edition SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2015. Scheduling in SAS 9.4, Second Edition. Cary, NC: SAS Institute
Cloud Server powered by Mac OS X. Getting Started Guide. Cloud Server. powered by Mac OS X. AKJZNAzsqknsxxkjnsjx Getting Started Guide Page 1
Getting Started Guide Cloud Server powered by Mac OS X Getting Started Guide Page 1 Getting Started Guide: Cloud Server powered by Mac OS X Version 1.0 (02.16.10) Copyright 2010 GoDaddy.com Software, Inc.
Introduction to Word 2007
Introduction to Word 2007 You will notice some obvious changes immediately after starting Word 2007. For starters, the top bar has a completely new look, consisting of new features, buttons and naming
Librarian. Integrating Secure Workflow and Revision Control into Your Production Environment WHITE PAPER
Librarian Integrating Secure Workflow and Revision Control into Your Production Environment WHITE PAPER Contents Overview 3 File Storage and Management 4 The Library 4 Folders, Files and File History 4
If you know exactly how you want your business forms to look and don t mind
appendix e Advanced Form Customization If you know exactly how you want your business forms to look and don t mind detail work, you can configure QuickBooks forms however you want. With QuickBooks Layout
Back-up Server DOC-OEMSPP-S/2014-BUS-EN-10/12/13
Back-up Server DOC-OEMSPP-S/2014-BUS-EN-10/12/13 The information contained in this guide is not of a contractual nature and may be subject to change without prior notice. The software described in this
Creating PDF Forms in Adobe Acrobat
Creating PDF Forms in Adobe Acrobat Flinders University Centre for Educational ICT Contents What are PDF forms?... 1 Viewing a PDF form... 1 Types of PDF forms... 1 Printing and saving PDF forms... 1 Forms
LogMeIn Network Console Version 8 Getting Started Guide
LogMeIn Network Console Version 8 Getting Started Guide April 2007 1. About the Network Console... 2 2. User Interface...2 3. Quick Start... 2 4. Network & Subnet Scans...3 5. Quick Connect...3 6. Operations...
This Readme includes information pertaining to Novell Service Desk 7.0.
Novell Service Desk 7.0 November 14, 2012 Novell Novell Service Desk is a complete service management solution that allows you to easily monitor and solve services issues so that there is minimal disruption
Produced by Flinders University Centre for Educational ICT. PivotTables Excel 2010
Produced by Flinders University Centre for Educational ICT PivotTables Excel 2010 CONTENTS Layout... 1 The Ribbon Bar... 2 Minimising the Ribbon Bar... 2 The File Tab... 3 What the Commands and Buttons
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
Introduction to Eclipse
Introduction to Eclipse Overview Eclipse Background Obtaining and Installing Eclipse Creating a Workspaces / Projects Creating Classes Compiling and Running Code Debugging Code Sampling of Features Summary
Using Microsoft Visual Studio 2010. API Reference
2010 API Reference Published: 2014-02-19 SWD-20140219103929387 Contents 1... 4 Key features of the Visual Studio plug-in... 4 Get started...5 Request a vendor account... 5 Get code signing and debug token
Introduction to SketchUp
Introduction to SketchUp This guide is handy to read if you need some basic knowledge to get started using SketchUp. You will see how to download and install Sketchup, and learn how to use your mouse (and
One of the fundamental kinds of Web sites that SharePoint 2010 allows
Chapter 1 Getting to Know Your Team Site In This Chapter Requesting a new team site and opening it in the browser Participating in a team site Changing your team site s home page One of the fundamental
Creating a Java application using Perfect Developer and the Java Develo...
1 of 10 15/02/2010 17:41 Creating a Java application using Perfect Developer and the Java Development Kit Introduction Perfect Developer has the facility to execute pre- and post-build steps whenever the
Toad for Data Analysts, Tips n Tricks
Toad for Data Analysts, Tips n Tricks or Things Everyone Should Know about TDA Just what is Toad for Data Analysts? Toad is a brand at Quest. We have several tools that have been built explicitly for developers
Sendspace Wizard Desktop Tool Step-By-Step Guide
Sendspace Wizard Desktop Tool Step-By-Step Guide Copyright 2007 by sendspace.com This publication is designed to provide accurate and authoritative information for users of sendspace, the easy big file
The Texture Mill User Guide
Version 1.0 The Texture Mill User Guide User Guide Table of Contents Introduction... 3 1 Getting Started... 3 1.1 Registration... 3 1.2 Installation... 3 1.3 Enable / Disable plug-in for Blender... 4 1.4
Cincom Smalltalk. Installation Guide P46-0105-17 SIMPLIFICATION THROUGH INNOVATION
Cincom Smalltalk Installation Guide P46-0105-17 SIMPLIFICATION THROUGH INNOVATION 1995 2011 by Cincom Systems, Inc. All rights reserved. This product contains copyrighted third-party software. Part Number:
Working with sections in Word
Working with sections in Word Have you have ever wanted to create a Microsoft Word document with some pages numbered in Roman numerals and the rest in Arabic, or include a landscape page to accommodate
Avaya Network Configuration Manager User Guide
Avaya Network Configuration Manager User Guide May 2004 Avaya Network Configuration Manager User Guide Copyright Avaya Inc. 2004 ALL RIGHTS RESERVED The products, specifications, and other technical information
Getting Started With MySaleManager.NET
Getting Started With MySaleManager.NET Welcome to MySaleManager.NET! We are glad you chose us to be the provider for automation services at your Consignment Event. This guide is designed to help you gets
Minecraft Server Dashboard Users Guide
Minecraft Server Dashboard Users Guide navhaxs Minecraft Server Dashboard simplifies your server management experience by replacing all the manual editing of configuration files and console commands with
Installing a Personal Server on your PC
Installing a Personal Server on your PC A personal or WAMP server is a private server you can install on your PC to run many scripts pretty much as they ll run in the real world. There are some restrictions
2011 ithemes Media LLC. All rights reserved in all media. May be shared with copyright and credit left intact
Meet Builder. Introducing ithemes Builder, the innovative WordPress theme that operates more like web design software. Unlike other premium WordPress themes, Builder stretches the possibilities of WordPress
ArcScan Tutorial. Copyright 1995-2010 Esri All rights reserved.
Copyright 1995-2010 Esri All rights reserved. Table of Contents Exercise 1: Interactive vectorization........................... 3 Exercise 2: Automatic vectorization........................... 12 Copyright
Importing from Tab-Delimited Files
January 25, 2012 Importing from Tab-Delimited Files Tab-delimited text files are an easy way to import metadata for multiple files. (For more general information about using and troubleshooting tab-delimited
Migrating to Excel 2010 from Excel 2003 - Excel - Microsoft Office 1 of 1
Migrating to Excel 2010 - Excel - Microsoft Office 1 of 1 In This Guide Microsoft Excel 2010 looks very different, so we created this guide to help you minimize the learning curve. Read on to learn key
