Beispiel #1
0
 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()
Beispiel #2
0
 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)
Beispiel #5
0
 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 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])
Beispiel #7
0
 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()
Beispiel #8
0
 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()
Beispiel #11
0
 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
Beispiel #12
0
 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
Beispiel #13
0
 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()
Beispiel #14
0
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
Beispiel #16
0
def getfromname(name):
    layers = QGisLayers.getAllLayers()
    for layer in layers:
        if layer.name() == name:
            return layer
Beispiel #17
0
def getObjectFromName(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)