def setOutputCRS(self): layers = QGisLayers.getAllLayers() for param in self.parameters: if isinstance( param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): if param.value: inputlayers = param.value.split(";") for inputlayer in inputlayers: for layer in layers: if layer.source() == inputlayer: self.crs = layer.crs() return if (isinstance(param, ParameterRaster) or (isinstance(param, ParameterMultipleInput) and param.datatype == ParameterMultipleInput.TYPE_RASTER)): p = QgsProviderRegistry.instance().provider( 'gdal', inputlayer) else: p = QgsProviderRegistry.instance().provider( 'ogr', inputlayer) if p is not None: self.crs = p.crs() return qgis = QGisLayers.iface self.crs = qgis.mapCanvas().mapRenderer().destinationCrs()
def execute(self): layers = QGisLayers.getAllLayers() layersMap = dict([(layer.name(), layer) for layer in layers]) layerNames = [layer.name() for layer in layers] item, ok = QtGui.QInputDialog.getItem(None, "Select a layer", "Layer selection", layerNames, editable=False) if ok: layer = layersMap[item] SextanteConfig.setSettingValue(GrassUtils.GRASS_REGION_XMIN, layer.extent().xMinimum()) SextanteConfig.setSettingValue(GrassUtils.GRASS_REGION_YMIN, layer.extent().yMinimum()) SextanteConfig.setSettingValue(GrassUtils.GRASS_REGION_XMAX, layer.extent().xMaximum()) SextanteConfig.setSettingValue(GrassUtils.GRASS_REGION_YMAX, layer.extent().yMaximum()) SextanteConfig.setSettingValue(GrassUtils.GRASS_AUTO_REGION, False) s = str(layer.extent().xMinimum()) + "," + str( layer.extent().xMaximum()) + "," + str( layer.extent().yMinimum()) + "," + str( layer.extent().yMaximum()) QtGui.QMessageBox.information(None, "GRASS Region", "GRASS region set to:\n" + s + \ "\nTo set the cellsize or set back the autoregion option,\ngo to the SEXTANTE configuration.")
def setOutputCRSFromInputLayers(self): layers = QGisLayers.getAllLayers() for param in self.parameters: if isinstance(param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): if param.value: inputlayers = param.value.split(";") for inputlayer in inputlayers: for layer in layers: if layer.source() == inputlayer: self.crs = layer.crs() return
def fillTree(self): layersItem = QtGui.QTreeWidgetItem() layersItem.setText(0, "Values from data layers extents") self.tree.addTopLevelItem(layersItem) layers = QGisLayers.getAllLayers() for layer in layers: layerItem = QtGui.QTreeWidgetItem() layerItem.setText(0, unicode(layer.name())) layerItem.addChild(TreeValueItem("Min X", layer.extent().xMinimum())) layerItem.addChild(TreeValueItem("Max X", layer.extent().xMaximum())) layerItem.addChild(TreeValueItem("Min Y", layer.extent().yMinimum())) layerItem.addChild(TreeValueItem("Max y", layer.extent().yMaximum())) if isinstance(layer, QgsRasterLayer): cellsize = (layer.extent().xMaximum() - layer.extent().xMinimum())/layer.width() layerItem.addChild(TreeValueItem("Cellsize", cellsize)) layersItem.addChild(layerItem) layersItem = QtGui.QTreeWidgetItem() layersItem.setText(0, "Values from raster layers statistics") self.tree.addTopLevelItem(layersItem) layers = QGisLayers.getRasterLayers() for layer in layers: for i in range(layer.bandCount()): if QGis.QGIS_VERSION_INT >= 10900: stats = layer.dataProvider().bandStatistics(i+1) else: stats = layer.bandStatistics(i) layerItem = QtGui.QTreeWidgetItem() layerItem.setText(0, unicode(layer.name())) layerItem.addChild(TreeValueItem("Mean", stats.mean)) layerItem.addChild(TreeValueItem("Std. deviation", stats.stdDev)) layerItem.addChild(TreeValueItem("Max value", stats.maximumValue)) layerItem.addChild(TreeValueItem("Min value", stats.minimumValue)) layersItem.addChild(layerItem) canvasItem = QtGui.QTreeWidgetItem() canvasItem.setText(0, "Values from QGIS map canvas") self.tree.addTopLevelItem(canvasItem) extent = QGisLayers.iface.mapCanvas().extent() extentItem = QtGui.QTreeWidgetItem() extentItem.setText(0, "Current extent") extentItem.addChild(TreeValueItem("Min X", extent.xMinimum())) extentItem.addChild(TreeValueItem("Max X", extent.xMaximum())) extentItem.addChild(TreeValueItem("Min Y", extent.yMinimum())) extentItem.addChild(TreeValueItem("Max y", extent.yMaximum())) canvasItem.addChild(extentItem) extent = QGisLayers.iface.mapCanvas().fullExtent() extentItem = QtGui.QTreeWidgetItem() extentItem.setText(0, "Full extent of all layers in map canvas") extentItem.addChild(TreeValueItem("Min X", extent.xMinimum())) extentItem.addChild(TreeValueItem("Max X", extent.xMaximum())) extentItem.addChild(TreeValueItem("Min Y", extent.yMinimum())) extentItem.addChild(TreeValueItem("Max y", extent.yMaximum())) canvasItem.addChild(extentItem)
def useLayerExtent(self): CANVAS_KEY = QtCore.QString("Use canvas extent") extentsDict = {} extentsDict[CANVAS_KEY] = QGisLayers.iface.mapCanvas().extent() extents = [CANVAS_KEY] layers = QGisLayers.getAllLayers() for layer in layers: extents.append(layer.name()) extentsDict[layer.name()] = layer.extent() item, ok = QtGui.QInputDialog.getItem(self, "Select extent", "Use extent from", extents, False) if ok: self.setValueFromRect(extentsDict[item])
def setOutputCRS(self): layers = QGisLayers.getAllLayers() for param in self.parameters: if isinstance(param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): if param.value: inputlayers = param.value.split(";") for inputlayer in inputlayers: for layer in layers: if layer.source() == inputlayer: self.crs = layer.crs() return qgis = QGisLayers.iface self.crs = qgis.mapCanvas().mapRenderer().destinationCrs()
def setOutputCRSFromInputLayers(self): layers = QGisLayers.getAllLayers() for param in self.parameters: if isinstance( param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): if param.value: inputlayers = param.value.split(";") for inputlayer in inputlayers: for layer in layers: if layer.source() == inputlayer: self.crs = layer.crs() return
def execute(self): layers = QGisLayers.getAllLayers(); layersMap = dict([(layer.name(), layer) for layer in layers]) layerNames = [layer.name() for layer in layers] item, ok = QtGui.QInputDialog.getItem(None, "Select a layer", "Layer selection", layerNames, editable=False) if ok: layer = layersMap[item] SextanteConfig.setSettingValue(GrassUtils.GRASS_REGION_XMIN, layer.extent().xMinimum()) SextanteConfig.setSettingValue(GrassUtils.GRASS_REGION_YMIN, layer.extent().yMinimum()) SextanteConfig.setSettingValue(GrassUtils.GRASS_REGION_XMAX, layer.extent().xMaximum()) SextanteConfig.setSettingValue(GrassUtils.GRASS_REGION_YMAX, layer.extent().yMaximum()) SextanteConfig.setSettingValue(GrassUtils.GRASS_AUTO_REGION, False) s = str(layer.extent().xMinimum()) + "," + str(layer.extent().xMaximum()) + "," + str(layer.extent().yMinimum()) + "," + str(layer.extent().yMaximum()) QtGui.QMessageBox.information(None, "GRASS Region", "GRASS region set to:\n" + s + \ "\nTo set the cellsize or set back the autoregion option,\ngo to the SEXTANTE configuration.")
def setOutputCRS(self): layers = QGisLayers.getAllLayers() for param in self.parameters: if isinstance( param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): if param.value: inputlayers = param.value.split(";") for inputlayer in inputlayers: for layer in layers: if layer.source() == inputlayer: self.crs = layer.crs() return qgis = QGisLayers.iface self.crs = qgis.mapCanvas().mapRenderer().destinationCrs()
def checkInputCRS(self): '''it checks that all input layers use the same CRS. If so, returns True. False otherwise''' crs = None; layers = QGisLayers.getAllLayers() for param in self.parameters: if isinstance(param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): if param.value: inputlayers = param.value.split(";") for inputlayer in inputlayers: for layer in layers: if layer.source() == inputlayer: if crs is None: crs = layer.crs() else: if crs != layer.crs(): return False return True
def checkInputCRS(self): '''it checks that all input layers use the same CRS. If so, returns True. False otherwise''' crs = None layers = QGisLayers.getAllLayers() for param in self.parameters: if isinstance( param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): if param.value: inputlayers = param.value.split(";") for inputlayer in inputlayers: for layer in layers: if layer.source() == inputlayer: if crs is None: crs = layer.crs() else: if crs != layer.crs(): return False return True
def setOutputCRS(self): layers = QGisLayers.getAllLayers() for param in self.parameters: if isinstance(param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): if param.value: inputlayers = param.value.split(";") for inputlayer in inputlayers: for layer in layers: if layer.source() == inputlayer: self.crs = layer.crs() return if (isinstance(param, ParameterRaster) or (isinstance(param, ParameterMultipleInput) and param.datatype == ParameterMultipleInput.TYPE_RASTER)): p = QgsProviderRegistry.instance().provider('gdal', inputlayer) else: p = QgsProviderRegistry.instance().provider('ogr', inputlayer) if p is not None: self.crs = p.crs() return qgis = QGisLayers.iface self.crs = qgis.mapCanvas().mapRenderer().destinationCrs()
def getObjectFromName(name): layers = QGisLayers.getAllLayers() for layer in layers: if layer.name() == name: return layer
def getfromname(name): layers = QGisLayers.getAllLayers() for layer in layers: if layer.name() == name: return layer
def fillTree(self): layersItem = QtGui.QTreeWidgetItem() layersItem.setText(0, "Values from data layers extents") self.tree.addTopLevelItem(layersItem) layers = QGisLayers.getAllLayers() for layer in layers: layerItem = QtGui.QTreeWidgetItem() layerItem.setText(0, unicode(layer.name())) layerItem.addChild( TreeValueItem("Min X", layer.extent().xMinimum())) layerItem.addChild( TreeValueItem("Max X", layer.extent().xMaximum())) layerItem.addChild( TreeValueItem("Min Y", layer.extent().yMinimum())) layerItem.addChild( TreeValueItem("Max y", layer.extent().yMaximum())) if isinstance(layer, QgsRasterLayer): cellsize = (layer.extent().xMaximum() - layer.extent().xMinimum()) / layer.width() layerItem.addChild(TreeValueItem("Cellsize", cellsize)) layersItem.addChild(layerItem) layersItem = QtGui.QTreeWidgetItem() layersItem.setText(0, "Values from raster layers statistics") self.tree.addTopLevelItem(layersItem) layers = QGisLayers.getRasterLayers() for layer in layers: for i in range(layer.bandCount()): if QGis.QGIS_VERSION_INT >= 10900: stats = layer.dataProvider().bandStatistics(i + 1) else: stats = layer.bandStatistics(i) layerItem = QtGui.QTreeWidgetItem() layerItem.setText(0, unicode(layer.name())) layerItem.addChild(TreeValueItem("Mean", stats.mean)) layerItem.addChild( TreeValueItem("Std. deviation", stats.stdDev)) layerItem.addChild( TreeValueItem("Max value", stats.maximumValue)) layerItem.addChild( TreeValueItem("Min value", stats.minimumValue)) layersItem.addChild(layerItem) canvasItem = QtGui.QTreeWidgetItem() canvasItem.setText(0, "Values from QGIS map canvas") self.tree.addTopLevelItem(canvasItem) extent = QGisLayers.iface.mapCanvas().extent() extentItem = QtGui.QTreeWidgetItem() extentItem.setText(0, "Current extent") extentItem.addChild(TreeValueItem("Min X", extent.xMinimum())) extentItem.addChild(TreeValueItem("Max X", extent.xMaximum())) extentItem.addChild(TreeValueItem("Min Y", extent.yMinimum())) extentItem.addChild(TreeValueItem("Max y", extent.yMaximum())) canvasItem.addChild(extentItem) extent = QGisLayers.iface.mapCanvas().fullExtent() extentItem = QtGui.QTreeWidgetItem() extentItem.setText(0, "Full extent of all layers in map canvas") extentItem.addChild(TreeValueItem("Min X", extent.xMinimum())) extentItem.addChild(TreeValueItem("Max X", extent.xMaximum())) extentItem.addChild(TreeValueItem("Min Y", extent.yMinimum())) extentItem.addChild(TreeValueItem("Max y", extent.yMaximum())) canvasItem.addChild(extentItem)