Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Versão 4.12.0 #805

Merged
merged 56 commits into from
Dec 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
64739a3
Versão 4.10.1: corrige problema de criação de banco edgv 3.0 e adici…
phborba Oct 2, 2023
f2ee3bc
corrige changelog
phborba Oct 2, 2023
380b984
Versão 4.11.17: melhoria no detecta nula
phborba Oct 2, 2023
21cd949
reorganização dos processings
phborba Oct 2, 2023
203203b
Versão 4.11.18: bug fix no ClipAndCopyFeaturesBetweenDatabasesAlgorithm
phborba Oct 2, 2023
20bfacd
bug fix
phborba Oct 2, 2023
bb56b6f
processing group refactor
phborba Oct 3, 2023
49f2d1b
Versão 4.11.19: bug fix no VerifyAdjacentGeographicBoundaryDataAlgorithm
pedro-mar Oct 3, 2023
fe64471
Versão 4.11.20: bug fixes na extração de pontos cotados
phborba Oct 3, 2023
f1db90f
about update
phborba Oct 4, 2023
2125b8c
fix
phborba Oct 4, 2023
e0b09e9
bug fixes
phborba Oct 4, 2023
b64fae8
fix
phborba Oct 4, 2023
17ffefd
cleanup
phborba Oct 4, 2023
49a3406
Versão 4.11.21: Correção de bug e melhorias na interface de carregamento
phborba Oct 5, 2023
79712f8
Merge pull request #799 from dsgoficial/dev_improve_load_ui
phborba Oct 5, 2023
263ad6e
Versão 4.11.22: Novo processo massa d'água versus curva de nível
phborba Oct 5, 2023
516e261
bug fix
phborba Oct 5, 2023
21ff36c
bug fixes
phborba Oct 5, 2023
33214b5
bug fix
dinizime Oct 9, 2023
0de82d3
bug fix
dinizime Oct 9, 2023
bd9bc19
bug fix
phborba Oct 9, 2023
e1e2886
fix
phborba Oct 10, 2023
e51a8c0
Versão 4.11.23: Melhoria no menu de aquisição
phborba Oct 10, 2023
75bfc81
bug fix
diogooliveira-dsg Oct 10, 2023
6940683
Versão 4.11.24: Melhoria na barra de ferramentas de revisão
phborba Oct 10, 2023
cace80d
Versão 4.11.25: corrige bug de casas decimais do clean
phborba Oct 10, 2023
6a9acea
bug fix na rotina de extrair pontos cotados
phborba Oct 11, 2023
0d3bb7b
fix
phborba Oct 11, 2023
dc6f4fd
Versão 4.11.26: Corrige crash no AddUnsharedVertexOnIntersectionsAlgo…
phborba Oct 11, 2023
2b00a1e
bug fix
phborba Oct 11, 2023
356d839
fix
jossanCosta Oct 19, 2023
406a460
fix
jossanCosta Oct 20, 2023
d4a752e
update
jossanCosta Oct 20, 2023
be0a6fc
update menu
jossanCosta Oct 26, 2023
1d08f32
corrige numeração do versionamento
phborba Oct 26, 2023
bff9073
fix
phborba Oct 26, 2023
ed65e6a
Versão 4.11.29: nova funcionalidade de criar grid
phborba Oct 26, 2023
83960f9
update
jossanCosta Oct 27, 2023
b95c2c9
Versão 4.11.31: Corrige bug na interface de carregamento
phborba Oct 31, 2023
463a221
fix
phborba Oct 31, 2023
9d871b4
bug fix na geração de grid por coordenadas
phborba Oct 31, 2023
f70f12e
Versão 4.11.32: Corrige bug no processo de identificação de geometria…
phborba Nov 1, 2023
8b07d57
Versão 4.11.33: Fix bug identify attr unicode
pedro-mar Nov 6, 2023
7aa8cc7
Version 4.11.34: Bug fix no parâmetro do IdentifyTerrainModelErrorsAl…
phborba Nov 7, 2023
ddff29f
Versão 4.11.35: Melhoria no processing de carregar shapefile
phborba Nov 8, 2023
e16782c
Versão 4.11.36: novo processo de criar pacote de carga no bdgex
phborba Nov 8, 2023
d6cb222
primeiro commit
phborba Nov 28, 2023
1089a16
Versão 4.11.37: Novo algoritmo de generalização de linhas
phborba Nov 28, 2023
7baa9e3
Merge pull request #801 from dsgoficial/dev_drainage_generalization
phborba Nov 28, 2023
b0e0f01
fix
phborba Dec 1, 2023
03862c5
Versão 4.11.38: melhoria de desempenho
phborba Dec 5, 2023
97dd96c
fix seguimento->segmento
pedro-mar Dec 6, 2023
e6cd089
atualiza modelagens
phborba Dec 13, 2023
1b6be08
altera versão para lançar
phborba Dec 13, 2023
1f4a9c8
Merge branch 'master' of https://github.com/dsgoficial/DsgTools into dev
phborba Dec 13, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 59 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,63 @@
# CHANGELOG

## 4.12.0 - 2023-12-13

Novas Funcionalidades:

- Novo processo de corrigir erros de segmentação em linhas (barragem versus rodovias);
- Novo processo para validar a estrutura do banco de dados em relação ao masterfile;
- Novo processo de detectar as mudanças entre dois banco de dados, realizados em dias distintos;
- Novo processo de identificar erros de intersecção entre curvas de nível e massas d'água;
- Novo processo de criar grid por meio de informar as coordenadas dos extremos;
- Adicionado atalho para ativar/desativar modo reclassificação;
- Novo processo de criar pacote de shapefile (utilizado normalmente para preparar a carga no BDGEx);
- Novo processo de generalizar trechos de drenagem de acordo com o comprimento;
- Adicionado o modelo EDGV 3.0 Orto;

Melhorias:

- O estado do Menu de classificação agora é salvo no projeto;
- Adiciona parâmetros opcionais na rotina de extração de pontos cotados;
- Melhoria de desempenho na extração de pontos cotados;
- O seletor genérico agora ignora camadas somente leitura;
- Melhoria de desempenho no processo Unir Linhas com Mesmo Conjunto de Atributos (Merge Lines With Same Attribute Set): Código refatorado para usar busca utilizando grafo. Além disso, o processo pega casos que não eram unidos anteriormente (linhas com mesmo conjunto de atributos e encadeadas);
- Melhoria de desempenho no processo Identify Unmerged Lines With Same Attribute Set: Código refatorado para usar busca utilizando grafo;
- O detecta nula agora indica quais camadas tem que ser verificadas;
- Algoritmos da caixa de ferramentas reorganizados por temática para facilitar o uso;
- A interface de carregamento agora filtra também na coluna de categoria da camada;
- O menu de aquisição agora mantém a camada ativa quando reclassifica uma feição no modo de reclassificação;
- Adicionado botão de selecionar a camada ativa na barra de ferramentas de revisão;
- Adicionada a opção de uso da tag "NULL" no atributo do botão do menu para preencher o campo com o valor nulo na atributação e reclassificação do menu de aquisição;
- O processo de carregar shapefiles agora agrupa por pasta, caso seja dado como entrada uma pasta que possui pastas com shapefiles;
- Melhoria de desempenho no processo de generalizar trechos de drenagem;

Correção de bug:

- Corrige bug de quando o usuário tenta reclassificar primitivas não compatíveis utilizando o menu de classificação;
- Corrige bug na rotina de extração de pontos cotados;
- Corrige bug de flags incorretas na rotina de identificar erros de segmentação em linhas (Identify Segment Errors Between Lines);
- Corrige bug de número de conexões ativas na ferramenta de setar estilo do banco (os métodos nativos do QGIS abrem conexão e não fecham, dessa forma derrubando todo mundo da produção por exceder o número máximo de conexões defindo no postgres.conf);
- Corrige bug no processo de verificar atributo unicode;
- Corrige bug no processo de identificar pontas soltas (retira distância mínima na busca, agora pega erro até no "mundo quântico");
- Corrige bug na ferramenta de inverter o sentido de linhas (flip lines) quando é uma camada não salva do banco de dados;
- Corrige bug na geração de moldura relativo a camada (Generate Systematic Grid Related to Layer) quando se usa memory layer (o memory layer não atualiza seu extent automaticamente, logo foi necessário colocar um layer.updateExtents() no código antes de calcular o extent);
- Corrige bug no processo de calcular azimute (estava sendo calculado com +90 graus);
- Corrige bug no ClipAndCopyFeaturesBetweenDatabasesAlgorithm;
- Corrige bug no VerifyAdjacentGeographicBoundaryDataAlgorithm (verifica interseção na moldura, não apenas no boundingbox);
- Corrige bug na rotina de extrair automaticamente pontos cotados (Extract Spot Elevation);
- Corrige bug da interface de carregamento não listar camadas do tipo GEOMETRY (genéricas normalmente criadas pelo FME). A camada que tiver esse tipo vai ser carregada em um nó chamado Geometry;
- Corrige bug dos parâmetros do clean não permitirem casas decimais o suficiente;
- Corrige bug de crash no qgis no algoritmo AddUnsharedVertexOnIntersectionsAlgorithm;
- Corrige bug de quando o usuário tenta reclassificar primitivas não compatíveis utilizando o menu de classificação;
- Corrige bug de quando o usuário tenta classificar com o formulário suprimido;
- Corrige bug de quando o usuário tenta classificar e o camada do botão não estava mudando;
- Corrige bug na interface do carregamento de feições, em bancos não EDGV;
- Corrige bug no processo de geometria inválida quando há geometria nula ou vazia;
- Corrige bug no processo de verificar atributo unicode (não estava gerando flag por erro de definição de geometria da camada);
- Corrige bug em parâmetro do algoritmo de verificação de regras de construção do terreno;
- Correção de bug no modelo EDGV 3.0 Pro;
- Correção de bug no modelo EDGV 3.0;

## 4.10.1 - 2023-10-02

Melhoria:
Expand Down Expand Up @@ -28,7 +86,7 @@ Novas Funcionalidades:
- Novo processo de ajustar parâmetros da ferramenta de aquisição com ângulos retos (integração com o FP/SAP);
- Novo processo de converter entre bancos de mesma modelagem, clipando com um polígono feito para integração com FP/SAP (ClipAndCopyFeaturesBetweenDatabasesAlgorithm);
- Novo processo de verificar ligação na moldura;

- Novo processo de cálculo do azimute;

Melhorias:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,9 @@ def getLoadedVectorLayerNames(self):

def getAttributesConfigByLayerName(self, layerName):
return self.qgis.getAttributesConfigByLayerName(layerName)

def clickReclassfyMode(self):
self.menuDock.handleReclassifyMode() if self.menuDock else ''

def createMenuDock(self, menuConfigs):
self.removeMenuDock()
Expand Down Expand Up @@ -203,7 +206,7 @@ def validLayersToReclassification(self, buttonConfig):
layerName, layer.geometryType()
)
if not layersToReclassification:
return
raise Exception("Não há camadas para reclassificação!")
noActive = False
for l in layersToReclassification:
noActive = l.id() != iface.activeLayer().id()
Expand All @@ -223,13 +226,15 @@ def reclassify(self, buttonConfig, reclassifyData):
self.qgis.cutAndPasteSelectedFeatures(
layer, destinatonLayer, attributes
)
destinatonLayer.triggerRepaint()


def getLayersForReclassification(self, layerName, geometryType):
layers = self.qgis.getLoadedVectorLayers()
geometryFilterDict = {
QgsWkbTypes.PointGeometry: (QgsWkbTypes.PointGeometry,),
QgsWkbTypes.LineGeometry: (QgsWkbTypes.LineGeometry,),
QgsWkbTypes.PolygonGeometry: (QgsWkbTypes.PointGeometry, QgsWkbTypes.PolygonGeometry)
QgsWkbTypes.PointGeometry: (QgsWkbTypes.PointGeometry, QgsWkbTypes.PolygonGeometry),
QgsWkbTypes.LineGeometry: (QgsWkbTypes.LineGeometry, ),
QgsWkbTypes.PolygonGeometry: (QgsWkbTypes.PolygonGeometry, ),
}
return [
l
Expand Down
25 changes: 24 additions & 1 deletion DsgTools/Modules/acquisitionMenu/widgets/menuDock.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
from PyQt5 import QtCore, uic, QtWidgets, QtGui
import json
from DsgTools.Modules.utils.factories.utilsFactory import UtilsFactory
from qgis.utils import iface
from qgis import gui


class MenuDock(QtWidgets.QDockWidget):
Expand All @@ -16,6 +18,9 @@ def __init__(
self.currentButton = None
self.messageFactory = messageFactory if messageFactory is not None else UtilsFactory().createMessageFactory()
self.menusCb.currentIndexChanged.connect(self.setCurrentMenu)

def handleReclassifyMode(self):
self.reclassifyCkb.setChecked( not self.reclassifyCkb.isChecked() )

def showError(self, title, message):
errorMessageBox = self.messageFactory.createMessage("ErrorMessageBox")
Expand Down Expand Up @@ -51,6 +56,7 @@ def getMenuWidget(self):

def setCurrentButton(self, buttonConfig):
try:
self.setLastLayer(iface.activeLayer())
if self.reclassifyCkb.isChecked():
self.getController().validLayersToReclassification(buttonConfig)

Expand All @@ -61,10 +67,27 @@ def setCurrentButton(self, buttonConfig):
self.getController().activeMenuButton(buttonConfig)
if not self.reclassifyCkb.isChecked():
return
self.getController().openReclassifyDialog(buttonConfig, self.reclassify)
self.getController().openReclassifyDialog(
buttonConfig,
self.callbackReclassify
)
except Exception as e:
self.showError("Erro", str(e))

def setLastLayer(self, layer):
self.lastLayer = layer

def getLastLayer(self):
return self.lastLayer

def callbackReclassify(self, data):
self.reclassify(data)
iface.setActiveLayer(self.getLastLayer())
currentButton = self.getCurrentButtonConfig()
if currentButton:
self.getController().deactiveMenuButton(currentButton)
self.setCurrentButtonConfig(None)

def getCurrentButtonConfig(self):
return self.currentButton

Expand Down
4 changes: 4 additions & 0 deletions DsgTools/Modules/qgis/controllers/qgisCtrl.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,8 @@ def setDefaultFields(self, layer, attributes, reset=False):
elif reset:
configField.setExpression("")
else:
if attributeValue == "NULL":
configField.setExpression("")
if attributeValue != "":
configField.setExpression("'{0}'".format(attributeValue))
elif reset:
Expand Down Expand Up @@ -208,6 +210,8 @@ def attributeFeature(self, feature, layer, attributes):
valueMap = self.formatMapValues(config["map"])
if attributeValue in valueMap:
feature.setAttribute(indx, valueMap[attributeValue])
elif attributeValue and attributeValue in ["NULL"]:
feature.setAttribute(indx, None)
elif attributeValue and not (attributeValue in ["NULL", "IGNORAR"]):
"""if re.match('^\@value\(".+"\)$', value):
variable = value.split('"')[-2]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ def groupId(self):
contain lowercase alphanumeric characters only and no spaces or other
formatting characters.
"""
return "DSGTools: Data Management Algorithms"
return "DSGTools - Data Management Algorithms"

def tr(self, string):
return QCoreApplication.translate("AppendFeaturesToLayerAlgorithm", string)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ def getLayersFromDbConnectionName(
withElements=withElements
)
inputParamList = list(map(lambda x: x.split(".")[-1], inputParamList))
if layerNameList is not None:
if layerNameList is not None and layerNameList != []:
inputParamList = list(filter(lambda x: x in layerNameList, inputParamList))
loadedLayerList = layerLoader.loadLayersInsideProcessing(
inputParamList, addToCanvas=addToCanvas, feedback=feedback
Expand Down Expand Up @@ -269,9 +269,13 @@ def clipInputLayerList(self, inputLayerList, geom, context, feedback):
if feedback is not None
else None
)
clipLayer = self.layerHandler.createMemoryLayerFromGeometry(
geom=geom, crs=QgsProject.instance().crs()
) if geom is not None else None
clipLayer = (
self.layerHandler.createMemoryLayerFromGeometry(
geom=geom, crs=QgsProject.instance().crs()
)
if geom is not None and not geom.isEmpty()
else None
)
for currentIdx, lyr in enumerate(inputLayerList):
if multiStepFeedback is not None and multiStepFeedback.isCanceled():
return outputDict
Expand Down Expand Up @@ -328,7 +332,7 @@ def groupId(self):
contain lowercase alphanumeric characters only and no spaces or other
formatting characters.
"""
return "DSGTools: Data Management Algorithms"
return "DSGTools - Data Management Algorithms"

def tr(self, string):
return QCoreApplication.translate("AppendFeaturesToLayerAlgorithm", string)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ def group(self):
Returns the name of the group this algorithm belongs to. This string
should be localised.
"""
return self.tr("Editing Algorithms")
return self.tr("Cartographic Finishing Algorithms")

def groupId(self):
"""
Expand All @@ -283,7 +283,7 @@ def groupId(self):
contain lowercase alphanumeric characters only and no spaces or other
formatting characters.
"""
return "DSGTools: Editing Algorithms"
return "DSGTools - Cartographic Finishing Algorithms"

def tr(self, string):
return QCoreApplication.translate("CreateEditingGridAlgorithm", string)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def groupId(self):
contain lowercase alphanumeric characters only and no spaces or other
formatting characters.
"""
return "DSGTools: Environment Setters"
return "DSGTools - Environment Setters"

def tr(self, string):
return QCoreApplication.translate("GenericSelectionToolParametersAlgorithm", string)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def groupId(self):
contain lowercase alphanumeric characters only and no spaces or other
formatting characters.
"""
return "DSGTools: Environment Setters"
return "DSGTools - Environment Setters"

def tr(self, string):
return QCoreApplication.translate("RightAngleToolParametersAlgorithm", string)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ def groupId(self):
contain lowercase alphanumeric characters only and no spaces or other
formatting characters.
"""
return "DSGTools: Environment Setters"
return "DSGTools - Environment Setters"

def tr(self, string):
return QCoreApplication.translate("SetFreeHandToolParametersAlgorithm", string)
Expand Down
Empty file.
Loading
Loading