Skip to content

Commit 63a41df

Browse files
author
brushtyler
committed
added raster creation in rasterize tool, to fix #3545
git-svn-id: http://svn.osgeo.org/qgis/trunk@15469 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 6e2d9c6 commit 63a41df

File tree

4 files changed

+78
-11
lines changed

4 files changed

+78
-11
lines changed

python/plugins/GdalTools/tools/doRasterize.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,18 @@ def __init__(self, iface):
1818
self.setupUi(self)
1919
BasePluginWidget.__init__(self, self.iface, "gdal_rasterize")
2020

21+
# set the default QSpinBoxes and QProgressBar value
22+
self.widthSpin.setValue(3000)
23+
self.heightSpin.setValue(3000)
24+
2125
self.lastEncoding = Utils.getLastUsedEncoding()
2226

2327
self.setParamsStatus(
2428
[
2529
(self.inputLayerCombo, [SIGNAL("currentIndexChanged(int)"), SIGNAL("editTextChanged(const QString &)")] ),
2630
(self.outputFileEdit, SIGNAL("textChanged(const QString &)")),
27-
(self.attributeComboBox, SIGNAL("currentIndexChanged(int)"))
31+
(self.attributeComboBox, SIGNAL("currentIndexChanged(int)")),
32+
( [self.widthSpin, self.heightSpin], SIGNAL( "valueChanged(int)" ), self.resizeGroupBox, "1.8.0" ),
2833
]
2934
)
3035

@@ -63,18 +68,34 @@ def fillInputFileEdit(self):
6368

6469
def fillOutputFileEdit(self):
6570
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
66-
outputFile = Utils.FileDialog.getOpenFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter)
71+
72+
# rasterize supports output file creation for GDAL 1.8
73+
gdalVersion = Utils.GdalConfig.version()
74+
fileDialogFunc = Utils.FileDialog.getSaveFileName
75+
if gdalVersion < "1.8.0":
76+
fileDialogFunc = Utils.FileDialog.getOpenFileName
77+
outputFile = fileDialogFunc(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter)
6778
if outputFile.isEmpty():
6879
return
6980
Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter)
7081

7182
self.outputFileEdit.setText(outputFile)
7283

84+
# required either -ts or -tr to create the output file
85+
if gdalVersion >= "1.8.0":
86+
if not QFileInfo(outputFile).exists():
87+
QMessageBox.information( self, self.tr( "Output size required" ), self.tr( "The output file doesn't exist. You must set up the output size to create it." ) )
88+
self.resizeGroupBox.setChecked(True)
89+
7390
def getArguments(self):
7491
arguments = QStringList()
7592
if self.attributeComboBox.currentIndex() >= 0:
7693
arguments << "-a"
7794
arguments << self.attributeComboBox.currentText()
95+
if self.resizeGroupBox.isChecked():
96+
arguments << "-ts"
97+
arguments << str( self.widthSpin.value() )
98+
arguments << str( self.heightSpin.value() )
7899
if self.inputLayerCombo.currentIndex() >= 0:
79100
arguments << "-l"
80101
arguments << QFileInfo(self.layers[ self.inputLayerCombo.currentIndex() ].source()).baseName()

python/plugins/GdalTools/tools/doTileIndex.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ def __init__( self, iface ):
2525
#( self.recurseCheck, SIGNAL( "stateChanged( int )" ),
2626
( self.outputFileEdit, SIGNAL( "textChanged( const QString & )" ) ),
2727
( self.indexFieldEdit, SIGNAL( "textChanged( const QString & )" ), self.indexFieldCheck),
28-
( self.absolutePathCheck, SIGNAL( "stateChanged( int )" ) ),
29-
( self.skipDifferentProjCheck, SIGNAL( "stateChanged( int )" ) )
28+
( self.absolutePathCheck, SIGNAL( "stateChanged( int )" ), None, "1.5.0" ),
29+
( self.skipDifferentProjCheck, SIGNAL( "stateChanged( int )" ), None, "1.5.0" )
3030
]
3131
)
3232

python/plugins/GdalTools/tools/doTranslate.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,9 @@ def getArguments(self):
184184
arguments << "-co"
185185
arguments << opt
186186
if self.outsizeCheck.isChecked() and self.outsizeSpin.value() != 100:
187-
arguments << "-outsize"
188-
arguments << self.outsizeSpin.text()
189-
arguments << self.outsizeSpin.text()
187+
arguments << "-outsize"
188+
arguments << self.outsizeSpin.text()
189+
arguments << self.outsizeSpin.text()
190190
if self.expandCheck.isChecked():
191191
arguments << "-expand"
192192
arguments << self.expand_method[self.expandCombo.currentIndex()]

python/plugins/GdalTools/tools/widgetRasterize.ui

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>570</width>
10-
<height>119</height>
9+
<width>509</width>
10+
<height>214</height>
1111
</rect>
1212
</property>
1313
<property name="sizePolicy">
@@ -21,7 +21,7 @@
2121
</property>
2222
<layout class="QVBoxLayout" name="verticalLayout">
2323
<item>
24-
<layout class="QGridLayout" name="gridLayout">
24+
<layout class="QGridLayout" name="gridLayout_2">
2525
<item row="0" column="0">
2626
<widget class="QLabel" name="label">
2727
<property name="text">
@@ -82,7 +82,7 @@
8282
<item row="2" column="0">
8383
<widget class="QLabel" name="label_2">
8484
<property name="text">
85-
<string>&amp;Output file for rasterized vectors (raster, must exists)</string>
85+
<string>&amp;Output file for rasterized vectors (raster)</string>
8686
</property>
8787
<property name="buddy">
8888
<cstring>selectOutputFileButton</cstring>
@@ -112,6 +112,52 @@
112112
</item>
113113
</layout>
114114
</item>
115+
<item>
116+
<widget class="QGroupBox" name="resizeGroupBox">
117+
<property name="title">
118+
<string>New size (required if output file doens't exist)</string>
119+
</property>
120+
<property name="checkable">
121+
<bool>true</bool>
122+
</property>
123+
<property name="checked">
124+
<bool>false</bool>
125+
</property>
126+
<layout class="QGridLayout" name="gridLayout">
127+
<property name="bottomMargin">
128+
<number>0</number>
129+
</property>
130+
<item row="0" column="0">
131+
<widget class="QLabel" name="label_4">
132+
<property name="text">
133+
<string>Image width</string>
134+
</property>
135+
</widget>
136+
</item>
137+
<item row="0" column="1">
138+
<widget class="QSpinBox" name="widthSpin">
139+
<property name="maximum">
140+
<number>999999</number>
141+
</property>
142+
</widget>
143+
</item>
144+
<item row="1" column="0">
145+
<widget class="QLabel" name="label_5">
146+
<property name="text">
147+
<string>Image height</string>
148+
</property>
149+
</widget>
150+
</item>
151+
<item row="1" column="1">
152+
<widget class="QSpinBox" name="heightSpin">
153+
<property name="maximum">
154+
<number>999999</number>
155+
</property>
156+
</widget>
157+
</item>
158+
</layout>
159+
</widget>
160+
</item>
115161
</layout>
116162
</widget>
117163
<resources/>

0 commit comments

Comments
 (0)