2010-06-04 00:31:48 +00:00
# -*- coding: utf-8 -*-
2012-10-06 13:10:25 +02:00
"""
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
doProximity . py
- - - - - - - - - - - - - - - - - - - - -
Date : June 2010
Copyright : ( C ) 2010 by Giuseppe Sucameli
Email : brush dot tyler at gmail dot com
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* This program is free software ; you can redistribute it and / or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation ; either version 2 of the License , or *
* ( at your option ) any later version . *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
"""
__author__ = ' Giuseppe Sucameli '
__date__ = ' June 2010 '
__copyright__ = ' (C) 2010, Giuseppe Sucameli '
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = ' $Format: % H$ '
2010-06-04 00:31:48 +00:00
from PyQt4 . QtCore import *
from PyQt4 . QtGui import *
from qgis . core import *
from qgis . gui import *
from osgeo import ogr
from ui_widgetProximity import Ui_GdalToolsWidget as Ui_Widget
from widgetPluginBase import GdalToolsBasePluginWidget as BasePluginWidget
import GdalTools_utils as Utils
class GdalToolsDialog ( QWidget , Ui_Widget , BasePluginWidget ) :
def __init__ ( self , iface ) :
QWidget . __init__ ( self )
self . iface = iface
self . setupUi ( self )
BasePluginWidget . __init__ ( self , self . iface , " gdal_proximity.py " )
2011-04-15 18:30:10 +00:00
self . outSelector . setType ( self . outSelector . FILE )
2010-06-04 00:31:48 +00:00
self . outputFormat = Utils . fillRasterOutputFormat ( )
self . setParamsStatus (
[
2011-04-15 18:30:10 +00:00
( self . inSelector , SIGNAL ( " filenameChanged() " ) ) ,
( self . outSelector , SIGNAL ( " filenameChanged() " ) ) ,
2010-12-20 03:34:51 +00:00
( self . valuesEdit , SIGNAL ( " textChanged(const QString &) " ) , self . valuesCheck ) ,
2010-06-04 00:31:48 +00:00
( self . distUnitsCombo , SIGNAL ( " currentIndexChanged(int) " ) , self . distUnitsCheck ) ,
( self . maxDistSpin , SIGNAL ( " valueChanged(int) " ) , self . maxDistCheck ) ,
( self . noDataSpin , SIGNAL ( " valueChanged(int) " ) , self . noDataCheck ) ,
( self . fixedBufValSpin , SIGNAL ( " valueChanged(int) " ) , self . fixedBufValCheck )
]
)
2011-04-15 18:30:10 +00:00
self . connect ( self . inSelector , SIGNAL ( " selectClicked() " ) , self . fillInputFileEdit )
self . connect ( self . outSelector , SIGNAL ( " selectClicked() " ) , self . fillOutputFileEdit )
2010-06-04 00:31:48 +00:00
2011-03-14 16:01:10 +00:00
def onLayersChanged ( self ) :
2011-04-15 18:30:10 +00:00
self . inSelector . setLayers ( Utils . LayerRegistry ( ) . getRasterLayers ( ) )
2010-06-04 00:31:48 +00:00
def fillInputFileEdit ( self ) :
lastUsedFilter = Utils . FileFilter . lastUsedRasterFilter ( )
inputFile = Utils . FileDialog . getOpenFileName ( self , self . tr ( " Select the input file for Proximity " ) , Utils . FileFilter . allRastersFilter ( ) , lastUsedFilter )
2013-06-17 15:27:54 +02:00
if not inputFile :
2010-06-04 00:31:48 +00:00
return
Utils . FileFilter . setLastUsedRasterFilter ( lastUsedFilter )
2011-04-15 18:30:10 +00:00
self . inSelector . setFilename ( inputFile )
2010-06-04 00:31:48 +00:00
def fillOutputFileEdit ( self ) :
lastUsedFilter = Utils . FileFilter . lastUsedRasterFilter ( )
outputFile = Utils . FileDialog . getSaveFileName ( self , self . tr ( " Select the raster file to save the results to " ) , Utils . FileFilter . allRastersFilter ( ) , lastUsedFilter )
2013-06-17 15:27:54 +02:00
if not outputFile :
2010-06-04 00:31:48 +00:00
return
Utils . FileFilter . setLastUsedRasterFilter ( lastUsedFilter )
self . outputFormat = Utils . fillRasterOutputFormat ( lastUsedFilter , outputFile )
2011-04-15 18:30:10 +00:00
self . outSelector . setFilename ( outputFile )
2010-06-04 00:31:48 +00:00
def getArguments ( self ) :
2013-06-17 15:27:54 +02:00
arguments = [ ]
arguments . append ( self . getInputFileName ( ) )
2011-04-15 18:30:10 +00:00
outputFn = self . getOutputFileName ( )
2013-06-17 15:27:54 +02:00
arguments . append ( outputFn )
2010-06-04 00:31:48 +00:00
if self . valuesCheck . isChecked ( ) :
2013-06-19 18:26:37 +02:00
values = self . valuesEdit . text ( ) . split ( )
2013-06-17 15:27:54 +02:00
if values :
arguments . append ( " -values " )
2013-06-19 18:26:37 +02:00
arguments . append ( ' , ' . join ( values ) )
2010-06-04 00:31:48 +00:00
if self . distUnitsCheck . isChecked ( ) and self . distUnitsCombo . currentIndex ( ) > = 0 :
2013-06-17 15:27:54 +02:00
arguments . append ( " -distunits " )
arguments . append ( self . distUnitsCombo . currentText ( ) )
2010-06-04 00:31:48 +00:00
if self . maxDistCheck . isChecked ( ) :
2013-06-17 15:27:54 +02:00
arguments . append ( " -maxdist " )
arguments . append ( str ( self . maxDistSpin . value ( ) ) )
2010-06-04 00:31:48 +00:00
if self . noDataCheck . isChecked ( ) :
2013-06-17 15:27:54 +02:00
arguments . append ( " -nodata " )
arguments . append ( str ( self . noDataSpin . value ( ) ) )
2010-06-04 00:31:48 +00:00
if self . fixedBufValCheck . isChecked ( ) :
2013-06-17 15:27:54 +02:00
arguments . append ( " -fixed-buf-val " )
arguments . append ( str ( self . fixedBufValSpin . value ( ) ) )
if outputFn :
arguments . append ( " -of " )
arguments . append ( self . outputFormat )
2010-06-04 00:31:48 +00:00
return arguments
def getOutputFileName ( self ) :
2011-04-15 18:30:10 +00:00
return self . outSelector . filename ( )
def getInputFileName ( self ) :
return self . inSelector . filename ( )
2010-06-04 00:31:48 +00:00
def addLayerIntoCanvas ( self , fileInfo ) :
self . iface . addRasterLayer ( fileInfo . filePath ( ) )
2011-04-15 18:30:10 +00:00