40 changes: 24 additions & 16 deletions python/plugins/GdalTools/tools/GdalTools_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,16 +299,15 @@ def getRasterSRS( parent, fileName ):
return ''

info = string.split( arr, sep="\n" )
# TODO .filter( "AUTHORITY" )
if info.count() == 0:
if len(info) == 0:
return ''

srs = info[ info.count() - 1 ]
srs = srs.simplified().remove( "AUTHORITY[" )
srs = re.sub("\"", '', re.sub("\]{2,4},?", '', srs) )
info = srs.split( "," )
srs = info[ 0 ] + ":" + info[ 1 ]
return srs
for elem in info:
m = re.match("^\s*AUTHORITY\[\"([a-z]*[A-Z]*)\",\"(\d*)\"\]", elem)
if m and len(m.groups()) == 2:
return '%s:%s' % (m.group(1), m.group(2))

return ''

def getRasterExtent(parent, fileName):
processSRS = QProcess( parent )
Expand All @@ -322,15 +321,24 @@ def getRasterExtent(parent, fileName):
if arr == '':
return

ulCoord = lrCoord = ''
xUL = yLR = xLR = yUL = 0
info = string.split( arr, sep="\n" )
ulCoord = info[ info.indexOf( QRegExp( "^Upper\sLeft.*" ) ) ].simplified()
lrCoord = info[ info.indexOf( QRegExp( "^Lower\sRight.*" ) ) ].simplified()
ulCoord = ulCoord[ulCoord.indexOf( "(" ) + 1 : ulCoord.indexOf( ")" ) - 1].split( "," )
lrCoord = lrCoord[lrCoord.indexOf( "(" ) + 1 : lrCoord.indexOf( ")" ) - 1].split( "," )
xUL = ulCoord[0].toDouble()[0]
yUL = ulCoord[1].toDouble()[0]
xLR = lrCoord[0].toDouble()[0]
yLR = lrCoord[1].toDouble()[0]
for elem in info:
m = re.match("^Upper\sLeft.*", elem)
if m:
ulCoord = m.group(0).strip()
ulCoord = ulCoord[string.find(ulCoord,"(") + 1 : string.find(ulCoord,")") - 1].split( "," )
xUL = float(ulCoord[0])
yUL = float(ulCoord[1])
continue
m = re.match("^Lower\sRight.*", elem)
if m:
lrCoord = m.group(0).strip()
lrCoord = lrCoord[string.find(lrCoord,"(") + 1 : string.find(lrCoord,")") - 1].split( "," )
xLR = float(lrCoord[0])
yLR = float(lrCoord[1])
continue

return QgsRectangle( xUL, yLR, xLR, yUL )

Expand Down
4 changes: 2 additions & 2 deletions python/plugins/GdalTools/tools/dialogSRS.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@ def proj4string(self):
return self.selector.selectedProj4String()

def getProjection(self):
if self.authid().startswith("EPSG:", Qt.CaseInsensitive):
if self.authid().upper().startswith("EPSG:"):
return self.authid()

if not self.selector.selectedProj4String().isEmpty():
if self.selector.selectedProj4String():
return self.proj4string()

return ''
22 changes: 11 additions & 11 deletions python/plugins/GdalTools/tools/doContour.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def onLayersChanged(self):
def fillInputFileEdit(self):
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
inputFile = Utils.FileDialog.getOpenFileName(self, self.tr( "Select the input file for Contour" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter)
if inputFile.isEmpty():
if not inputFile:
return
Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter)

Expand All @@ -82,7 +82,7 @@ def fillOutputFileEdit(self):
else:
outputFile, encoding = Utils.FileDialog.getExistingDirectory(self, self.tr( "Select where to save the Contour output" ), True)

if outputFile.isEmpty():
if not outputFile:
return

if not self.useDirAsOutput:
Expand All @@ -92,15 +92,15 @@ def fillOutputFileEdit(self):
self.lastEncoding = encoding

def getArguments(self):
arguments = QStringList()
if self.attributeCheck.isChecked() and not self.attributeEdit.text().isEmpty():
arguments << "-a"
arguments << self.attributeEdit.text()
arguments = []
if self.attributeCheck.isChecked() and self.attributeEdit.text():
arguments.append("-a")
arguments.append(self.attributeEdit.text())
if True: # XXX in this moment the -i argument is not optional
arguments << "-i"
arguments << unicode(self.intervalDSpinBox.value())
arguments << self.getInputFileName()
arguments << self.outSelector.filename()
arguments.append("-i")
arguments.append(str(self.intervalDSpinBox.value()))
arguments.append(self.getInputFileName())
arguments.append(self.outSelector.filename())
return arguments

def getInputFileName(self):
Expand All @@ -109,7 +109,7 @@ def getInputFileName(self):
def getOutputFileName(self):
if self.useDirAsOutput:
fn = self.outSelector.filename()
return fn if fn.isEmpty() else fn + QDir.separator() + "contour.shp"
return fn if not fn else fn + QDir.separator() + "contour.shp"
return self.outSelector.filename()

def addLayerIntoCanvas(self, fileInfo):
Expand Down
4 changes: 2 additions & 2 deletions python/plugins/GdalTools/tools/doExtractProj.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,14 @@ def switchToolMode( self ):
def fillInputFileEdit( self ):
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
inputFile = Utils.FileDialog.getOpenFileName( self, self.tr( "Select the file to analyse" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter )
if inputFile.isEmpty():
if not inputFile:
return
Utils.FileFilter.setLastUsedRasterFilter( lastUsedFilter )
self.inSelector.setFilename( inputFile )

def fillInputDir( self ):
inputDir = Utils.FileDialog.getExistingDirectory( self, self.tr( "Select the input directory with files to Assign projection" ))
if inputDir.isEmpty():
if not inputDir:
return
self.inSelector.setFilename( inputDir )

Expand Down
8 changes: 4 additions & 4 deletions python/plugins/GdalTools/tools/doInfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ def doCopyLine( self ):
items = self.rasterInfoList.selectedItems()
for r in items:
output.append( r.text() + "\n" )
if not output.isEmpty():
if output:
clipboard = QApplication.clipboard()
clipboard.setText( output )

def doCopyAll( self ):
output = ''
for r in range( self.rasterInfoList.count() ):
output.append( self.rasterInfoList.item( r ).text() + "\n" )
if not output.isEmpty():
if output:
clipboard = QApplication.clipboard()
clipboard.setText( output )

Expand All @@ -88,7 +88,7 @@ def keyPressEvent( self, e ):
items = ''
for r in range( self.rasterInfoList.count() ):
items.append( self.rasterInfoList.item( r ).text() + "\n" )
if not items.isEmpty():
if items:
clipboard = QApplication.clipboard()
clipboard.setText( items )
else:
Expand All @@ -111,7 +111,7 @@ def finished( self ):
def fillInputFileEdit( self ):
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
inputFile = Utils.FileDialog.getOpenFileName( self, self.tr( "Select the file to analyse" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter )
if inputFile.isEmpty():
if not inputFile:
return
Utils.FileFilter.setLastUsedRasterFilter( lastUsedFilter )

Expand Down
60 changes: 31 additions & 29 deletions python/plugins/GdalTools/tools/doMerge.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def __init__(self, iface):
self.outSelector.setType( self.outSelector.FILE )
self.recurseCheck.hide()
# use this for approx. previous UI
#self.creationOptionsTable.setType(QgsRasterFormatSaveOptionsWidget.Table)
#self.creationOptionsWidget.setType(QgsRasterFormatSaveOptionsWidget.Table)

self.outputFormat = Utils.fillRasterOutputFormat()
self.extent = None
Expand All @@ -59,7 +59,9 @@ def __init__(self, iface):
(self.recurseCheck, SIGNAL("stateChanged(int)"), self.inputDirCheck),
( self.separateCheck, SIGNAL( "stateChanged( int )" ) ),
( self.pctCheck, SIGNAL( "stateChanged( int )" ) ),
( self.intersectCheck, SIGNAL( "stateChanged( int )" ) )
( self.intersectCheck, SIGNAL( "stateChanged( int )" ) ),
(self.creationOptionsWidget, SIGNAL("optionsChanged()")),
(self.creationOptionsGroupBox, SIGNAL("toggled(bool)"))
]
)

Expand Down Expand Up @@ -88,20 +90,20 @@ def switchToolMode(self):
def fillInputFilesEdit(self):
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
files = Utils.FileDialog.getOpenFileNames(self, self.tr( "Select the files to Merge" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter )
if files.isEmpty():
if not files:
return
Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter)
self.inSelector.setFilename(files)

def refreshExtent(self):
files = self.getInputFileNames()
self.intersectCheck.setEnabled( files.count() > 1 )
self.intersectCheck.setEnabled( len(files) > 1 )

if not self.intersectCheck.isChecked():
self.someValueChanged()
return

if files.count() < 2:
if len(files) < 2:
self.intersectCheck.setChecked( False )
return

Expand All @@ -120,7 +122,7 @@ def refreshExtent(self):
def fillOutputFileEdit(self):
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select where to save the Merge output" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter )
if outputFile.isEmpty():
if not outputFile:
return
Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter)

Expand All @@ -129,37 +131,37 @@ def fillOutputFileEdit(self):

def fillInputDir( self ):
inputDir = Utils.FileDialog.getExistingDirectory( self, self.tr( "Select the input directory with files to Merge" ))
if inputDir.isEmpty():
if not inputDir:
return
self.inSelector.setFilename( inputDir )

def getArguments(self):
arguments = QStringList()
arguments = []
if self.intersectCheck.isChecked():
if self.extent != None:
arguments << "-ul_lr"
arguments << str( self.extent.xMinimum() )
arguments << str( self.extent.yMaximum() )
arguments << str( self.extent.xMaximum() )
arguments << str( self.extent.yMinimum() )
arguments.append("-ul_lr")
arguments.append(str( self.extent.xMinimum() ))
arguments.append(str( self.extent.yMaximum() ))
arguments.append(str( self.extent.xMaximum() ))
arguments.append(str( self.extent.yMinimum() ))
if self.noDataCheck.isChecked():
arguments << "-n"
arguments << str(self.noDataSpin.value())
arguments.append("-n")
arguments.append(str(self.noDataSpin.value()))
if self.separateCheck.isChecked():
arguments << "-separate"
arguments.append("-separate")
if self.pctCheck.isChecked():
arguments << "-pct"
if self.creationGroupBox.isChecked():
for opt in self.creationOptionsTable.options():
arguments << "-co"
arguments << opt
arguments.append("-pct")
if self.creationOptionsGroupBox.isChecked():
for opt in self.creationOptionsWidget.options():
arguments.append("-co")
arguments.append(opt)
outputFn = self.getOutputFileName()
if not outputFn.isEmpty():
arguments << "-of"
arguments << self.outputFormat
arguments << "-o"
arguments << outputFn
arguments << self.getInputFileNames()
if outputFn:
arguments.append("-of")
arguments.append(self.outputFormat)
arguments.append("-o")
arguments.append(outputFn)
arguments.extend(self.getInputFileNames())
return arguments

def getOutputFileName(self):
Expand All @@ -168,12 +170,12 @@ def getOutputFileName(self):
def getInputFileName(self):
if self.inputDirCheck.isChecked():
return self.inSelector.filename()
return self.inSelector.filename().split(",", QString.SkipEmptyParts)
return self.inSelector.filename().split(",")

def getInputFileNames(self):
if self.inputDirCheck.isChecked():
return Utils.getRasterFiles( self.inSelector.filename(), self.recurseCheck.isChecked() )
return self.inSelector.filename().split(",", QString.SkipEmptyParts)
return self.inSelector.filename().split(",")

def addLayerIntoCanvas(self, fileInfo):
self.iface.addRasterLayer(fileInfo.filePath())
Expand Down
25 changes: 13 additions & 12 deletions python/plugins/GdalTools/tools/doProjection.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import GdalTools_utils as Utils

import os.path
import re


class GdalToolsDialog( QWidget, Ui_Widget, BaseBatchWidget ):
Expand Down Expand Up @@ -96,14 +97,14 @@ def enableRecurse( self ):
def fillInputFileEdit( self ):
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
inputFile = Utils.FileDialog.getOpenFileName( self, self.tr( "Select the file to analyse" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter )
if inputFile.isEmpty():
if not inputFile:
return
Utils.FileFilter.setLastUsedRasterFilter( lastUsedFilter )
self.inSelector.setFilename( inputFile )

def fillInputDir( self ):
inputDir = Utils.FileDialog.getExistingDirectory( self, self.tr( "Select the input directory with files to Assign projection" ))
if inputDir.isEmpty():
if not inputDir:
return
self.inSelector.setFilename( inputDir )

Expand All @@ -113,24 +114,24 @@ def fillDesiredSRSEdit( self ):
self.desiredSRSEdit.setText( dialog.getProjection() )

def getArguments( self ):
arguments = QStringList()
if not self.desiredSRSEdit.text().isEmpty():
arguments << "-t_srs"
arguments << self.desiredSRSEdit.text()
arguments = []
if self.desiredSRSEdit.text():
arguments.append("-t_srs")
arguments.append(self.desiredSRSEdit.text())
if self.batchCheck.isChecked():
return arguments

inputFn = self.getInputFileName()
arguments << inputFn
arguments.append(inputFn)
self.tempFile = inputFn
self.needOverwrite = False
if not self.tempFile.isEmpty():
if self.tempFile.toLower().contains( QRegExp( "\.tif{1,2}" ) ):
self.tempFile = self.tempFile.replace( QRegExp( "\.[a-zA-Z]{2,4}$" ), ".tif" ).append( ".tmp" )
if self.tempFile:
if self.tempFile.lower().endswith(".tif") or self.tempFile.lower().endswith(".tiff") :
self.tempFile = re.sub("\.[a-zA-Z]{2,4}$", ".tif", self.tempFile) + ".tmp"
self.needOverwrite = True
else:
self.tempFile = self.tempFile.replace( QRegExp( "\.[a-zA-Z]{2,4}$" ), ".tif" )
arguments << self.tempFile
self.tempFile = re.sub("\.[a-zA-Z]{2,4}$", ".tif", self.tempFile)
arguments.append(self.tempFile)
return arguments

def finished( self ):
Expand Down
Loading