修改了pairLayer的初始化函数以及project addlayer函数的接口,添加了影像通道
This commit is contained in:
parent
0a6ced74e5
commit
11ab42d497
@ -12,7 +12,7 @@ import numpy as np
|
|||||||
from osgeo import gdal, gdal_array
|
from osgeo import gdal, gdal_array
|
||||||
from rscder.utils.icons import IconInstance
|
from rscder.utils.icons import IconInstance
|
||||||
from rscder.utils.setting import Settings
|
from rscder.utils.setting import Settings
|
||||||
from qgis.core import QgsRasterLayer, QgsMarkerSymbol, QgsUnitTypes, QgsCategorizedSymbolRenderer, QgsRendererCategory, QgsPalLayerSettings, QgsRuleBasedLabeling, QgsTextFormat, QgsLineSymbol, QgsSingleSymbolRenderer, QgsSimpleLineSymbolLayer, QgsVectorLayer, QgsCoordinateReferenceSystem, QgsFeature, QgsGeometry, QgsPointXY
|
from qgis.core import QgsRasterLayer, QgsMarkerSymbol, QgsUnitTypes, QgsCategorizedSymbolRenderer, QgsRendererCategory, QgsPalLayerSettings, QgsRuleBasedLabeling, QgsTextFormat, QgsLineSymbol, QgsSingleSymbolRenderer, QgsSimpleLineSymbolLayer, QgsVectorLayer, QgsCoordinateReferenceSystem, QgsFeature, QgsGeometry, QgsPointXY,QgsMultiBandColorRenderer
|
||||||
from PyQt5.QtCore import QObject, pyqtSignal, Qt, QThread
|
from PyQt5.QtCore import QObject, pyqtSignal, Qt, QThread
|
||||||
from PyQt5.QtWidgets import QTreeWidgetItem, QAction
|
from PyQt5.QtWidgets import QTreeWidgetItem, QAction
|
||||||
from PyQt5.QtGui import QColor, QIcon, QFont
|
from PyQt5.QtGui import QColor, QIcon, QFont
|
||||||
@ -187,8 +187,8 @@ class Project(QObject):
|
|||||||
os.makedirs(pth)
|
os.makedirs(pth)
|
||||||
return pth
|
return pth
|
||||||
|
|
||||||
def add_layer(self, pth1, pth2):
|
def add_layer(self, pth1, pth2,style_info1,style_info2):
|
||||||
player = PairLayer(pth1, pth2)
|
player = PairLayer(pth1, pth2,style_info1,style_info2)
|
||||||
if player.check():
|
if player.check():
|
||||||
self.layers[player.id] = player
|
self.layers[player.id] = player
|
||||||
self.layer_show_update.emit()
|
self.layer_show_update.emit()
|
||||||
@ -369,12 +369,13 @@ class GridLayer(BasicLayer):
|
|||||||
|
|
||||||
class RasterLayer(BasicLayer):
|
class RasterLayer(BasicLayer):
|
||||||
|
|
||||||
def __init__(self, name=None, enable=False, path=None, view_mode=BasicLayer.BOATH_VIEW):
|
def __init__(self, name=None, enable=False, path=None, view_mode=BasicLayer.BOATH_VIEW,style_info={'r':3,'g':2,'b':1,'NIR':3}):
|
||||||
if name is None:
|
if name is None:
|
||||||
name = os.path.splitext(os.path.basename(path))[0]
|
name = os.path.splitext(os.path.basename(path))[0]
|
||||||
super().__init__(name, enable, ':/icons/raster.png', path, BasicLayer.IN_FILE, view_mode)
|
super().__init__(name, enable, ':/icons/raster.png', path, BasicLayer.IN_FILE, view_mode)
|
||||||
self.layer = QgsRasterLayer(self.path, self.name)
|
self.layer = QgsRasterLayer(self.path, self.name)
|
||||||
|
self.style_info=style_info
|
||||||
|
self.apply_style()
|
||||||
def compare(self, other:'RasterLayer'):
|
def compare(self, other:'RasterLayer'):
|
||||||
ds1 = gdal.Open(self.path)
|
ds1 = gdal.Open(self.path)
|
||||||
ds2 = gdal.Open(other.path)
|
ds2 = gdal.Open(other.path)
|
||||||
@ -414,7 +415,13 @@ class RasterLayer(BasicLayer):
|
|||||||
s = (ds.RasterXSize, ds.RasterYSize)
|
s = (ds.RasterXSize, ds.RasterYSize)
|
||||||
del ds
|
del ds
|
||||||
return s
|
return s
|
||||||
|
def apply_style(self):
|
||||||
|
renderer=QgsMultiBandColorRenderer(self.layer.dataProvider(),self.style_info['r'],self.style_info['g'],self.style_info['b'])
|
||||||
|
self.layer.setRenderer(renderer)
|
||||||
|
self.layer.triggerRepaint()
|
||||||
|
def set_stlye(self,style_info):
|
||||||
|
self.style_info=style_info
|
||||||
|
self.apply_style()
|
||||||
class VectorLayer(BasicLayer):
|
class VectorLayer(BasicLayer):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -565,13 +572,13 @@ class ResultPointLayer(BasicLayer):
|
|||||||
|
|
||||||
class PairLayer(BasicLayer):
|
class PairLayer(BasicLayer):
|
||||||
|
|
||||||
def __init__(self, pth1, pth2) -> None:
|
def __init__(self, pth1, pth2,style_info1,style_info2) -> None:
|
||||||
|
|
||||||
self.layers:List[BasicLayer] = []
|
self.layers:List[BasicLayer] = []
|
||||||
self.id = str(uuid.uuid1())
|
self.id = str(uuid.uuid1())
|
||||||
self.checked = False
|
self.checked = False
|
||||||
self.main_l1 = RasterLayer(path = pth1, enable=True, view_mode=BasicLayer.LEFT_VIEW)
|
self.main_l1 = RasterLayer(path = pth1, enable=True, view_mode=BasicLayer.LEFT_VIEW,style_info=style_info1)
|
||||||
self.main_l2 = RasterLayer(path = pth2, enable=True, view_mode=BasicLayer.RIGHT_VIEW)
|
self.main_l2 = RasterLayer(path = pth2, enable=True, view_mode=BasicLayer.RIGHT_VIEW,style_info=style_info2)
|
||||||
self.main_l1.set_layer_parent(self)
|
self.main_l1.set_layer_parent(self)
|
||||||
self.main_l2.set_layer_parent(self)
|
self.main_l2.set_layer_parent(self)
|
||||||
self.grid = None
|
self.grid = None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user