Interfacing Gaudi with Python Objectives

Total Page:16

File Type:pdf, Size:1020Kb

Interfacing Gaudi with Python Objectives 8 Interfacing Gaudi with Python Gaudi Framework Tutorial, 2004 Objectives After completing this lesson, you should be able to: • Understand how Gaudi is interfaced to Python • Convince you that Python is a very good programming language for Rapid Prototyping • Write simple Python scripts to access LHCb data 8-2 Gaudi Framework Tutorial, 2004 Python Language Python is an Open Source programming language created by Guido van Rossum. While it has been available since 1990, it has recently seen a dramatic increase in popularity in a wide variety of domains Python is simple, elegant, powerful and reliable Features: • Variables & Arithmetic expressions • String manipulations • Conditionals (if/else statements), Loops (for/while) • Functions, Lists, Dictionaries, Classes (Objects), Exceptions , Modules 8-3 Gaudi Framework Tutorial, 2004 Why Python? Free, Open-Source, Maintainable Cross-Platform, Portable General-Purpose, High-level, Object-Oriented Interpreted • However it is quite fast (byte code idea from Java) Dynamically typed, Introspective • Not need to declare any variable Simple syntax, Robust • Emphasis by the author to minimize typing Variety of Shells Powerful built-in types and modules Î Ideal for Scripting and Prototyping 8-4 Gaudi Framework Tutorial, 2004 Python as a “Glue” Extension Modules • Very easy to interface to C++ classes (C-API) Collaborative • Extension modules can be plugged and used together Very rich set LHC modules specialized generic modules Several GUI toolkits EDG API PVSS XML Database GUIGUI Python shell JPE PyROOT gaudipython mathmath Gateways to other frameworks Java Root Gaudi Very rich set Classes Classes Framework of Python standard 8-5 Gaudi Framework Tutorial, 2004 modules Python Binding Techniques Python provides a very complete C-API • By hand bindings are possible but even for medium-sized projects, it becomes cumbersome and unmaintainable. Developing Python bindings • Several existing options: SWIG, Boost.Python, SIP PyLCGDict: Python binding to the LCG Dictionary • It allows the user to interact with any C++ class for which the LCG Dictionary has been generated • With this module, there is no need to generate specialized Python bindings or wrapper code to interact with C++ classes 8-6 Gaudi Framework Tutorial, 2004 PyLCGDict: Mode d’emploi From class definitions (.h files) a “dictionary” library is select.xml produced • Description of the class MyClass.h lcgdict • “stub” functions to class MyDict.so methods MyClass.so load Absolutely non-intrusive The PyLCGDict module does PyLCGDict the adaptation between Python objects and C++ objects in a generic way Python MyScript.py • It works for any interpreter dictionary 8-7 Gaudi Framework Tutorial, 2004 PyLCGDict: Supported Features Conversion of C++ and Python primitive types C++ classes • Mapped to Python classes and loaded on demand. Templated classes supported. C++ namespaces • Mapped to python scopes. The "::" separator is replaced by the python "." separator Class methods • Static and non static class methods are supported. Default arguments. • Method arguments are passed by value or by reference • The return values are converted into Python types and new Python classes are created if required. Dynamic type returned if possible. • Method overloading works by dispatching sequentially to the available methods with the same name until a match with the provided arguments is successful. 8-8 Gaudi Framework Tutorial, 2004 PyLCGDict: Supported Features Class data members • Public data members are accessible as Python properties Emulation of Python containers • Container C++ classes (std::vector, std::list, std::map like) are given the behavior of the Python collections to be use in iterations and slicing operations. Operator overloading • Standard C++ operators are mapped to the corresponding Python overloading operators 8-9 Gaudi Framework Tutorial, 2004 PyLCGDict: Example (1) #include <iostream> namespace Example { MyClass.h class MyClass { public: MyClass() : m_value(0) {} MyClass(const MyClass& m ) : m_value(m.m_value) {} ~MyClass() {} int doSomething(const std::string&amp; something ) { std::cout << “I am doing something with “ << something << std::endl; return something.size(); } int value() { return m_value; } void setValue(int v) { m_value = v; } private: int m_value; public: float fprop; std::string sprop; }; } 8-10 Gaudi Framework Tutorial, 2004 PyLCGDict: Example (2) > python Python 2.2.2 (#1, Feb 8 2003, 12:11:31) [GCC 3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import PyLCGDict >>> PyLCGDict.loadDict('MyClassDict') >>> m = Example.MyClass() >>> m.doSomething('care') I am doing something with care 4 >>> m.setValue(99) >>> print m.value() 99 >>> n = Example.MyClass(m) # copy constructor >>> print n.value() 99 >>> n.fprop = 1.2 >>> n.sprop = 'String property' >>> print n.sprop, n.fprop String property 1.2 8-11 Gaudi Framework Tutorial, 2004 Another Example: ROOT The ROOT.py loads the ROOTDict.so and initializes the ROOT system >>> from ROOT import gRandom, TCanvas, TH1F >>> c1 = TCanvas('c1','Example',200,10,700,500) >>> hpx = TH1F('hpx','px',100,-4,4) >>> for i in xrange(25000): ... px = gRandom.Gaus() ... hpx.Fill(px) ... >>> hpx.Draw() >>> c1.Update() 8-12 Gaudi Framework Tutorial, 2004 GaudiPython Enabling the interaction of Gaudi components from Python interpreted • Configuration, Interactivity, etc. Starting from Gaudi v14r1, GaudiPython has been re-implemented using PyLCGDict • Generated dictionaries for most common Gaudi “Interfaces” and “Base classes” (~80 classes) • Not need to generate dictionaries for all classes (in particular the implementations) 8-13 Gaudi Framework Tutorial, 2004 GaudiPython The end-user module “gaudimodule.py” hides some of the technicalities and adds some handy functionality • Very easy to extern/modify/adapt since is written in Python • Basically backward compatible with previous version 8-14 Gaudi Framework Tutorial, 2004 Using GaudiPython Add in the requirements file: use GaudiPython v* 8-15 Gaudi Framework Tutorial, 2004 Starting Methods Starting a Gaudi application from Python Shell >>> import gaudimodule >>> gaudi = gaudimodule.AppMgr() >>> gaudi.run(100) ... >>> gaudi.exit() Starting a Python interpreted from a Gaudi application Optional ApplicationMgr.DLLs += { "GaudiPython“ }; initial script ApplicationMgr.Runable = "PythonScriptingSvc"; PythonScriptingSvc.StartupScript = "../options/AnalysisTest.py"; 8-16 Gaudi Framework Tutorial, 2004 Configuration Instead of using “JobOptions” files we could use Python to completely configure Gaudi applications • ATLAS is going in this direction “Properties” are mapped to native Python types (int, float, str, list, etc) >>> gaudi = gaudimodule.AppMgr() >>> gaudi.EvtMax = 100 >>> gaudi.TopAlg = [‘Alg1’, ‘Alg2’] >>> alg1 = gaudi.algorithm(‘Alg1’) >>> alg1.EnergyCut = 10.7 >>> msgsvc = gaudi.service('MessageSvc') >>> msgsvc.OutputLevel = 3 ... 8-17 Gaudi Framework Tutorial, 2004 Interacting with the Event Since we have the complete set of Dictionaries we can interact with any Event class References to Event objects are obtained by asking the Event data service ( AppMgr.evtSvc() ) • There are currently some small limitations (i.e. handling directly KeyedContainer<T>, etc.) >>> evt = gaudi.evtSvc() >>> header = evt['Header'] >>> print ‘Run number = ‘, header.runNum() >>> mcparts = evt['MC/Particles'] >>> for p in mcparts.containedObjects() : ... print p.momentum().px() 8-18 Gaudi Framework Tutorial, 2004 Interacting with Histograms It is possible to book and fill histograms using the Histogram data service • Same interface as in C++ The complete AIDA Histogram interfaces are available to Python >>> import random >>> his = gaudi.histsvc() >>> h1 = his.book('h1',‘Histogram title', 40, 0, 1000) >>> for v in range(1000) : ... h.fill(random.uniform(0,1000)) >>> print h1.mean() 8-19 Gaudi Framework Tutorial, 2004 Complete Example: Read a DST file import gaudimodule gaudi = gaudimodule.AppMgr(outputlevel=5, joboptions='$EVENTSYSROOT/options/PoolDicts.opts') sel = gaudi.evtsel() sel.open(['PFN:rfio:/castor/cern.ch/lhcb/DC04/00000541_00000001_10.dst']) evt = gaudi.evtsvc() his = gaudi.histsvc() h1 = his.book('h1','# of MCParticles', 40, 0, 5000) class DumpAlg(gaudimodule.PyAlgorithm): def execute(self): evh = evt['Header'] mcps = evt['MC/Particles'] print 'event # = ',evh.evtNum() h1.fill(mcps.size()) gaudi.addAlgorithm(DumpAlg()) Ex/PythonExample gaudi.run(10) print h1, h1.contents() 8-20 Gaudi Framework Tutorial, 2004 Complete Example: Read a DST file EventSelector SUCCESS Reading Event record 0. Record number within stream 0: 0 event # = 1 event # = 2 event # = 3 event # = 4 event # = 5 event # = 6 event # = 7 event # = 8 event # = 9 event # = 10 Histogram 1D "# of MCParticles" 40 bins [0.000000,5000.000000] [5, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 8-21 Gaudi Framework Tutorial, 2004 Building on GaudiPython It is fairly easy to extern the functionality provided by GaudiPython There are already several “products” which are build on top of GaudiPython Bender • Physics Analysis on Python Panoramix • Detector and Event Visualization 8-22 Gaudi Framework Tutorial, 2004 Summary This is an attempt to convince you that Python is a very good programming language for Rapid Prototyping • Efficient way to test your Physics Analysis ideas Interfacing C++ classes to Python is fairly easy • Several well established technologies exists (Boost.Python, etc.) • PyLCGDict is another way of doing it • PyLCGDict exploits the LCG dictionaries that are already available due to object persistency (POOL) GaudiPython • Is the package that enables the interaction of Gaudi from Python • Latest version of GaudiPython is based on PyLCGDict Examples of the available functionality has been shown 8-23 Gaudi Framework Tutorial, 2004.
Recommended publications
  • Pyqgis Testing Developer Cookbook
    PyQGIS testing developer cookbook QGIS Project Sep 25, 2021 CONTENTS 1 Introduction 1 1.1 Scripting in the Python Console ................................... 1 1.2 Python Plugins ............................................ 2 1.2.1 Processing Plugins ...................................... 3 1.3 Running Python code when QGIS starts ............................... 3 1.3.1 The startup.py file ................................... 3 1.3.2 The PYQGIS_STARTUP environment variable ...................... 3 1.4 Python Applications ......................................... 3 1.4.1 Using PyQGIS in standalone scripts ............................. 4 1.4.2 Using PyQGIS in custom applications ............................ 5 1.4.3 Running Custom Applications ................................ 5 1.5 Technical notes on PyQt and SIP ................................... 6 2 Loading Projects 7 2.1 Resolving bad paths .......................................... 8 3 Loading Layers 9 3.1 Vector Layers ............................................. 9 3.2 Raster Layers ............................................. 12 3.3 QgsProject instance .......................................... 14 4 Accessing the Table Of Contents (TOC) 15 4.1 The QgsProject class ......................................... 15 4.2 QgsLayerTreeGroup class ...................................... 16 5 Using Raster Layers 19 5.1 Layer Details ............................................. 19 5.2 Renderer ............................................... 20 5.2.1 Single Band Rasters ....................................
    [Show full text]
  • IT Acronyms.Docx
    List of computing and IT abbreviations /.—Slashdot 1GL—First-Generation Programming Language 1NF—First Normal Form 10B2—10BASE-2 10B5—10BASE-5 10B-F—10BASE-F 10B-FB—10BASE-FB 10B-FL—10BASE-FL 10B-FP—10BASE-FP 10B-T—10BASE-T 100B-FX—100BASE-FX 100B-T—100BASE-T 100B-TX—100BASE-TX 100BVG—100BASE-VG 286—Intel 80286 processor 2B1Q—2 Binary 1 Quaternary 2GL—Second-Generation Programming Language 2NF—Second Normal Form 3GL—Third-Generation Programming Language 3NF—Third Normal Form 386—Intel 80386 processor 1 486—Intel 80486 processor 4B5BLF—4 Byte 5 Byte Local Fiber 4GL—Fourth-Generation Programming Language 4NF—Fourth Normal Form 5GL—Fifth-Generation Programming Language 5NF—Fifth Normal Form 6NF—Sixth Normal Form 8B10BLF—8 Byte 10 Byte Local Fiber A AAT—Average Access Time AA—Anti-Aliasing AAA—Authentication Authorization, Accounting AABB—Axis Aligned Bounding Box AAC—Advanced Audio Coding AAL—ATM Adaptation Layer AALC—ATM Adaptation Layer Connection AARP—AppleTalk Address Resolution Protocol ABCL—Actor-Based Concurrent Language ABI—Application Binary Interface ABM—Asynchronous Balanced Mode ABR—Area Border Router ABR—Auto Baud-Rate detection ABR—Available Bitrate 2 ABR—Average Bitrate AC—Acoustic Coupler AC—Alternating Current ACD—Automatic Call Distributor ACE—Advanced Computing Environment ACF NCP—Advanced Communications Function—Network Control Program ACID—Atomicity Consistency Isolation Durability ACK—ACKnowledgement ACK—Amsterdam Compiler Kit ACL—Access Control List ACL—Active Current
    [Show full text]
  • Qgis-1.0.0-User-Guide-En.Pdf
    Quantum GIS User, Installation and Coding Guide Version 1.0.0 ’Kore’ Preamble This document is the original user, installation and coding guide of the described software Quantum GIS. The software and hardware described in this document are in most cases registered trademarks and are therefore subject to the legal requirements. Quantum GIS is subject to the GNU General Public License. Find more information on the Quantum GIS Homepage http://qgis.osgeo.org. The details, data, results etc. in this document have been written and verified to the best of knowledge and responsibility of the authors and editors. Nevertheless, mistakes concerning the content are possible. Therefore, all data are not liable to any duties or guarantees. The authors, editors and publishers do not take any responsibility or liability for failures and their consequences. Your are always welcome to indicate possible mistakes. This document has been typeset with LATEX. It is available as LATEX source code via subversion and online as PDF document via http://qgis.osgeo.org/documentation/manuals.html. Translated versions of this document can be downloaded via the documentation area of the QGIS project as well. For more information about contributing to this document and about translating it, please visit: http://wiki.qgis.org/qgiswiki/DocumentationWritersCorner Links in this Document This document contains internal and external links. Clicking on an internal link moves within the document, while clicking on an external link opens an internet address. In PDF form, internal links are shown in blue, while external links are shown in red and are handled by the system browser.
    [Show full text]
  • SIP 6.0 Readme
    96x1 Release R6.1.2 Readme Issue: 1.0 Date: December 23, 2010 Avaya one-X™ Deskphone SIP for 9601 Telephone Release 6.1.2 This file is the readme for the Avaya one-X Deskphone SIP Edition release 6.1.2 for 9601 model IP Telephones. This file describes the contents of the, December 23rd 2010 software distribution package.. Issue Fixed in the 9601 Telephone 6.1.2 Note: This applies to 9601 telephones manufactured with releases lower than 6.1.1. Problem: On rare occasions, the telephone does not respond during a power-up or just after it powers up. Solution: Install version 6.1.2. The upgrade procedure will take about 20 minutes. The telephone will reboot twice during the upgrade. Note: Do not disconnect the telephone while the upgrade is running (a warning message is shown on the telephone during this part of the procedure). For more information, see the Product Support Notice. Copyright Avaya 2010 All rights reserved Page 1 of 104 96x1 Release R6.1.2 Readme Features introduced as part of Release 6.0 not supported by the 9601 (compared to earlier 96x1 releases) Deskphone SIP 6.1 is functionally equivalent to Deskphone SIP 6.0 on the 96x1 models, but the following features are currently not supported: Presence Presence feature is not supported on Presence Server for SM environment in this release. But is supported for the SES environment. WML Browser WML browser is supported for company directory only. Korean language support Korean language display and text entry not supported PPM contact search is not supported Use WML directory search instead Calendar feature is not supported on the 9601 Exchange Server integration is not supported.
    [Show full text]
  • Extending PCL for Use with Python: Bindings Generation Using Pybind11
    Extending PCL for use with Python: Bindings generation using Pybind11 (Proposal for Google Summer of Code, 2020) Name and Contact Information Name: Divyanshu Madan ​ Github: divmadan ​ ​ Gitter: divmadan ​ ​ ​ Email: [email protected] ​ ​ Postal Address: 4-Cha-18, Jawahar Nagar, Jaipur, Rajasthan ​ Country: India ​ Phone: (+91) 9261700477 ​ Primary Language: English ​ About the document This document is very extensive and requires a section about itself, to stay sane. A few points: ● It documents various tools, existing solutions, other project’s solutions etc. along with my proposal, how to tackle insufficiencies, timeline, etc. ● The “research” part (existing solutions, analysis, etc) is very extensive, difficult to structure in tabular form, and hard to summarize. Thus, it takes up a lot of space in the document. ● I have tried to make the sections independent of each other, so you can safely skip parts of the document, in case you want to. ● I have limited the headings up to 3 levels (H2, H3, H4). A simplified skeleton or structure of the document: C++ and Python Motivation: why create bindings for PCL? Existing binding solutions (for PCL) |_Pcl.py … Analysis of other open-source projects’ bindings |_OpenCV-Python … Analysis of available support tools and libraries for binding generation ​ |_Why use tools? ... The Proposal |_The idea … Stretch Goals |_Jupyter Visualization … Timeline Biographical Information Table of Contents Extending PCL for use with Python: Bindings generation using Pybind11 1 Name and Contact Information
    [Show full text]
  • Oxitopped Documentation Release 0.2
    oxitopped Documentation Release 0.2 Dave Hughes April 15, 2016 Contents 1 Contents 3 2 Indices and tables 9 i ii oxitopped Documentation, Release 0.2 oxitopped is a small suite of utilies for extracting data from an OxiTop data logger via a serial (RS-232) port and dumping it to a specified file in various formats. Options are provided for controlling the output, and for listing the content of the device. Contents 1 oxitopped Documentation, Release 0.2 2 Contents CHAPTER 1 Contents 1.1 Installation oxitopped is distributed in several formats. The following sections detail installation on a variety of platforms. 1.1.1 Pre-requisites Where possible, I endeavour to provide installation methods that provide all pre-requisites automatically - see the following sections for platform specific instructions. If your platform is not listed (or you’re simply interested in what rastools depends on): rastools depends primarily on matplotlib. If you wish to use the GUI you will also need PyQt4 installed. Additional optional dependencies are: • xlwt - required for Excel writing support • maptlotlib - required for graphing support 1.1.2 Ubuntu Linux For Ubuntu Linux, it is simplest to install from the PPA as follows (this also ensures you are kept up to date as new releases are made): $ sudo add-apt-repository ppa://waveform/ppa $ sudo apt-get update $ sudo apt-get install oxitopped 1.1.3 Microsoft Windows On Windows it is simplest to install from the standalone MSI installation package available from the homepage. Be aware that the installation package
    [Show full text]
  • Pyqt for Maya2011 64-Bit Linux
    PyQt for Maya2011 64­bit PyQt [http://www.riverbankcomputing.co.uk] is a python binding to the Qt library. Because Maya uses Qt internally, you can use the PyQt modules in Maya python scripts to create custom UI. PyQt does not have the same licensing as Maya, Qt, or Python. Please consult the PyQt website for information about PyQt. Download PyQt: http://www.riverbankcomputing.com/static/Downloads/PyQt4/ Download SIP: http://www.riverbankcomputing.com/software/sip/download The following are instructions for building a copy of the PyQt modules that have been known to work with Maya. Linux x86 – 64 bit The following instructions only apply to Linux 64‐bit builds of PyQt. Download PyQt: http://www.riverbankcomputing.com/static/Downloads/PyQt4/PyQt‐x11‐gpl‐4.7.tar.gz Download SIP: http://www.riverbankcomputing.com/static/Downloads/sip4/sip‐4.10.tar.gz Building Qt Follow the instructions for building Qt from the API docs (Developer Resources > API Guide > Setting up your build environment > Linux environments (64 bit), in the Maya Documentation). *The following assumes Qt libraries have been installed into /usr/local/Trolltech/Qt‐4.5.3/ Building SIP 1. cd sip‐4.10 2. /usr/autodesk/maya2011‐x64/bin/mayapy configure.py 3. make 4. sudo make install This install the SIP library to /usr/autodesk/maya2011‐x64/lib/python2.6/site‐packages/ Building PyQt 1. cd PyQt‐x11‐gpl‐4.7 2. /usr/autodesk/maya2011‐x64/bin/mayapy configure.py ‐q /usr/local/Trolltech/Qt‐ 4.5.3/bin/qmake 3. make ‐j4 4. sudo make install This installs PyQt libraries into /usr/autodesk/maya2011‐x64/lib/python2.6/site‐ packages/PyQt4 OSX ­ x86 ­ 64 bit The following instructions only apply to Mac 64‐bit builds of PyQt.
    [Show full text]
  • QGIS Developers Guide Release 3.4
    QGIS Developers Guide Release 3.4 QGIS Project 15.03.2020 Contents 1 QGIS Programmierstandards3 2 HIG (Human Interface Guidelines) 15 3 GIT Zugriff 17 4 Getting up and running with QtCreator and QGIS 25 5 Unit Testing 33 6 Processing Algorithms Testing 45 7 OGC Conformance Testing 51 i ii QGIS Developers Guide, Release 3.4 Willkommen auf den QGIS Entwicklungsseite. Hier finden Sie Regeln, Tools und Schritte, um einfach und effizient zum QGIS-Code beizutragen. Contents 1 QGIS Developers Guide, Release 3.4 2 Contents CHAPTER 1 QGIS Programmierstandards • Klassen – Namen – Mitglieder – Accessor Functions – Funktionen – Function Arguments – Function Return Values • API Documentation – Methods – Members Variables • Qt Designer – Generated Classes – Dialogs • C++ Files – Namen – Standard Header and License • Variable Names • Enumerated Types • Global Constants & Macros • Comments • Qt Signals and Slots • Editing – Tabs 3 QGIS Developers Guide, Release 3.4 – Indentation – Braces • API Compatibility • SIP Bindings – Header pre-processing – Generating the SIP file – Improving sipify script • Coding Style – Where-ever Possible Generalize Code – Prefer Having Constants First in Predicates – Whitespace Can Be Your Friend – Put commands on separate lines – Indent access modifiers – Book recommendations • Credits for contributions Diese Standards sollten von allen QGIS Entwicklern befolgt werden. 1.1 Klassen 1.1.1 Namen Klassen in QGIS beginnen mit Qgs und werden in Camel Case formatiert. Beispiele: • QgsPoint • QgsMapCanvas • QgsRasterLayer 1.1.2 Mitglieder Klassen-Member Namen beginnen mit kleinem m und werden mit gemischter Schreibweise gebildet. • mMapCanvas • mCurrentExtent All class members should be private. Public class members are STRONGLY discouraged. Protected members should be avoided when the member may need to be accessed from Python subclasses, since protected members cannot be used from the Python bindings.
    [Show full text]
  • Leveraging Your Geo-Spatial Data Investments with Quantum GIS: an Open Source Geographic Information System
    Leveraging Your Geo-spatial Data Investments with Quantum GIS: an Open Source Geographic Information System Donald L. Schrupp – Colorado Division of Wildlife (Retired) Danny Lewis – Texas Parks and Wildlife Department What Is Quantum GIS (QGIS) ? “The Free and Open Source GIS” Gary Sherman began development of Quantum GIS in early 2002, and it became an incubator project of the Open Source Geospatial Foundation in 2007. Version 1.0 was released in January 2009. Version 2.4 was just released (September, 2014). Similar to other software GIS systems QGIS allows users to create maps with many layers using different map projections. Maps can be assembled in different formats and for different uses. QGIS allows maps to be composed of raster or vector layers. Typical for this kind of software the vector data is stored as either point, line, or polygon- feature. Different kinds of raster images are supported and the software can perform geo-referencing of images. Quantum GIS and Related “Packages” (Overview) * QGIS Desktop: The QGIS Desktop provides the graphic user interface (GUI) for doing geographic information system work using Quantum GIS software * QGIS Browser: The QGIS Browser is a panel in QGIS that lets you easily navigate in your filesystem and manage geodata. You can have access to common vector files (e.g., ESRI shapefiles or MapInfo files), databases (e.g., PostGIS, Oracle, SpatiaLite or MS SQL Spatial) and WMS/WFS connections. You can also view your GRASS data (to get the data into QGIS, see GRASS GIS Integration). Quantum GIS and Related “Packages” (Overview) * GRASS GIS: GRASS (Geographic Resources Analysis Support System) is a Software for performing spatial analysis.
    [Show full text]
  • QGIS Coding and Compilation Guide
    Quantum GIS Coding and Compilation Guide Version 1.3 'Mimas' Preamble This document is the original Coding and Compilation Guide of the described software Quantum GIS. The software and hardware described in this document are in most cases registered trademarks and are therefore subject to the legal requirements. Quantum GIS is subject to the GNU General Public License. Find more information on the Quantum GIS Homepage http://qgis.osgeo.org. The details, data, results etc. in this document have been written and verified to the best of knowledge and responsibility of the authors and editors. Nevertheless, mistakes concerning the content are possible. Therefore, all data are not liable to any duties or guarantees. The authors, editors and publishers do not take any responsibility or liability for failures and their consequences. Your are always welcome to indicate possible mistakes. This document has been typeset with LATEX. It is available as LATEX source code via subversion and online as PDF document via http://qgis.osgeo.org/documentation/manuals.html. Translated versions of this document can be downloaded via the documentation area of the QGIS project as well. For more information about contributing to this document and about translating it, please visit: http://www.qgis.org/wiki/index.php/Community_Ressources Links in this Document This document contains internal and external links. Clicking on an internal link moves within the document, while clicking on an external link opens an internet address. In PDF form, internal links are shown in blue, while external links are shown in red and are handled by the system browser.
    [Show full text]
  • Pyqt for Autodesk Maya 2013 64Bit
    PyQt for Autodesk Maya 2013 64bit Reviewed by Cyrille Fauvel – Autodesk Developer Network (September 2012) Additional Qt instructions available here - http://around-the-corner.typepad.com/adn/2012/10/building-qt-pyqt-pyside-for-maya-2013.html ---- PyQt [http://www.riverbankcomputing.co.uk] is a python binding to the Qt library. Because Maya uses Qt internally, you can use the PyQt modules in Maya python scripts to create custom UI. PyQt does not have the same licensing as Maya, Qt, or Python. Please consult the PyQt website for information about licensing for PyQt. Download PyQt: http://www.riverbankcomputing.com/static/Downloads/PyQt4/ Download SIP: http://www.riverbankcomputing.com/software/sip/download The main change for building PyQt for Autodesk Maya 2013 (vs Maya 2012) is that when building PyQt for 2013 you will need to use the Microsoft Visual Studio 2010 Service Pack 1 compiler. The following are instructions for building a copy of the PyQt modules that have been known to work with Maya. Maya 2013 uses Qt4.7.1 which is binary compatible with the latest version of PyQt - 4.9.4 (at time of writing, September 2012). Note that it’s important to use the Maya modified version of the Qt source code. A copy of the customized Qt 4.7.1 source is available from Autodesk's Open Source web-site (http://www.autodesk.com/lgplsource) and includes text files describing how to configure, build and install Qt for each platform supported by Maya. Linux x86 – 64 bit The following instructions only apply to Linux 64‐bit builds of PyQt.
    [Show full text]
  • Leveraging Python Interoperability Tools to Improve Sapphire's Usability
    UCRL-TR-237219 Leveraging Python Interoperability Tools to Improve Sapphire's Usability Abel Gezahegne, Nicole S. Love December 11, 2007 Disclaimer This document was prepared as an account of work sponsored by an agency of the United States government. Neither the United States government nor Lawrence Livermore National Security, LLC, nor any of their employees makes any warranty, expressed or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States government or Lawrence Livermore National Security, LLC. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States government or Lawrence Livermore National Security, LLC, and shall not be used for advertising or product endorsement purposes. This work performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344. Leveraging Python Interoperability Tools to Improve Sapphire’s Usability Abel Gezahegne Nicole S. Love Lawrence Livermore National Laboratory December 9, 2007 1 Abstract The Sapphire project at the Center for Applied Scientific Computing (CASC) develops and applies an extensive set of data mining algorithms for the analysis of large data sets. Sapphire’s algorithms are currently available as a set of C++ libraries. However many users prefer higher level scripting languages such as Python for their ease of use and flexibility.
    [Show full text]