1 / 24

OpenOceanMap :

Learn how to deploy cross-platform geospatial desktop applications for decision support using Python, QGIS, and QT.

victorh
Télécharger la présentation

OpenOceanMap :

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OpenOceanMap: Deploying cross-platform geospatial desktop applications for decision support utilizing Python, QGIS, and QT Presented at FOSS4G 2007 by Aaron Racicot – GIS Programmer, GISP Ecotrust (www.ecotrust.org) aaronr@ecotrust.org

  2. Socio-Economic Data - MLPA

  3. Decision Support Pattern Field Work Back at the Office Field Data Collection Data Analysis QA/QC/Feedback Inform Decision Makers

  4. Old Version of Tool

  5. New Version of Tool

  6. Being Developed in the Open

  7. Why Open Source? Cost Freedom Community Get Good Karma Opportunity to innovate Very Fast Development Cycle Very Low Barrier To Dev Community Entry

  8. Tools Used PyQGIS PyQT

  9. Requirements to build QGIS 0.9+ QT 4.3+ SIP 4.7+ PyQT 4.3+ OpenOceanMap 0.1+ Py2Exe/Py2App NSIS Installer

  10. QT and QGIS API exposed # PyQt4 includes for python bindings to QT from PyQt4.QtCore import * from PyQt4.QtGui import * # QGIS bindings for mapping functions from qgis.core import * from qgis.gui import *

  11. Windows inherit from QT # Main window used for houseing the canvas, # toolbars, and dialogs class MainWindow(QMainWindow, Ui_MainWindow): def __init__(self,splash): QMainWindow.__init__(self) # required by Qt4 to initialize the UI self.setupUi(self)

  12. Create a map canvas from QGIS # create map canvas self.canvas = QgsMapCanvas(self) self.canvas.setCanvasColor(QColor(255,255,255)) self.canvas.enableAntiAliasing(True) self.canvas.useQImageToRender(False) self.canvas.show()

  13. Hook up simple tools…Zoom In # create a little toolbar for map tool self.toolbar = parent.addToolBar(“MapTool") self.toolbar.addAction(parent.mpActionZoomIn) self.toolZoomIn = QgsMapToolZoom(self.canvas,False) self.toolZoomIn.setAction(parent.mpActionZoomIn) # Connect the button signal to a slot QObject.connect(parent.mpActionZoomIn, SIGNAL("triggered()"), self.zoomIn) # Signal handler for zoom in button def zoomIn(self): self.canvas.setMapTool(self.toolZoomIn)

  14. Embedded Python Interpreter

  15. Bundle it all up… py2exe from py2exe.build_exe import py2exe from distutils.core import setup opts = { "py2exe": { "includes": ["sip"], "packages": ["qgis","PyQt4"], "dist_dir": "bin", } } setup(options = opts, console=[{"script": "openoceanmap.py"}] ) C:\openoceanmap>python setup.py py2exe

  16. OpenOceanMap

  17. Post Interview - Raw Shapes

  18. Post Interview - Sum

  19. Other parts… QA/QC Field Work Back at the Office Field Data Collection Data Analysis QA/QC/Feedback Inform Decision Makers

  20. User Driven QA/QC…

  21. Other parts of the process…DST’s Field Work Back at the Office Field Data Collection Data Analysis QA/QC/Feedback Inform Decision Makers

  22. What else am I doing…DST’s

  23. Where to go for more info Ecotrust • http://www.ecotrust.org Reprojected • http://www.reprojected.com OSGeo • http://www.osgeo.org OpenOceanMap • http://trac.infodrizzle.org/openocean/ PyQGIS • Bindings - http://wiki.qgis.org/qgiswiki/PythonBindings • API - http://svn.qgis.org/api_doc/html/classes.html • QT API - http://doc.trolltech.com/4.3/index.html • PyQT Docs - http://www.riverbankcomputing.com/Docs/PyQt4/pyqt4ref.html • SIP Docs - http://www.riverbankcomputing.com/Docs/sip4/sipref.html Desktop • QGIS - http://qgis.org/ • GRASS - http://grass.itc.it/ • OSSIM - http://www.ossim.org/ • UDIG - http://udig.refractions.net/ • JUMP – http://jump-project.org/ Tools • PostGIS - http://postgis.refractions.net/ • GDAL/OGR - http://gdal.maptools.org/ • PROJ.4 - http://proj.maptools.org/ • R-Statistics - http://www.r-project.org/ • GMT - http://gmt.soest.hawaii.edu/

More Related