[QGIS-pt] Intersection bad geometries

Bom dia a todos,

No desenvolvimento de um plugin preciso de usar a ferramenta de
geoprocessamento intersecção.
Em ambiente desktop, consigo aceder a duas ferramentas diferentes, uma no
menu Vector/Ferramentas de Geoprocessamento/Intersectar que me devolve
resultados satisfatórios e outra que aparece na Caixa de Ferramentas -
Intersecção - e que me devolve o erro /"Erro no geoprocessamento GEOS: Um ou
mais elementos de entrada têm geometria inválida"/.

Em python a instrução que uso é processing.runalg("qgis:intersection",
.......)

/processing.runalg("qgis:intersection",LayerCAOP,Temp01,saida)/

E obtenho o mesmo erro de geometria iniválida.

Nenhum dos layers terá geometria inválida, inclusivamente já corri um
"reparador de geometrias". Para além disso parece-me que o erro está
relacionado com a complexidade, dimensão ou numero de vértices dos
shapefiles envolvidos na intersecção...

Penso que conseguiria contornar o problema se conseguisse aceder via código
python à ferramenta "intersectar" no menu Vector. Sabem como o posso fazer?
Ou qualquer dica/sugestão que me possa ajudar a resolver esta questão?

Muito obrigada!

Com os melhores cumprimentos,
Milú

--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-pt-f5128248.html

Bom dia,

qual a versão de QGIS?

No desenvolvimento de um plugin preciso de usar a ferramenta de
geoprocessamento intersecção.
Em ambiente desktop, consigo aceder a duas ferramentas diferentes, uma no
menu Vector/Ferramentas de Geoprocessamento/Intersectar que me devolve
resultados satisfatórios e outra que aparece na Caixa de Ferramentas -
Intersecção - e que me devolve o erro /"Erro no geoprocessamento GEOS: Um ou
mais elementos de entrada têm geometria inválida"/.

Em python a instrução que uso é processing.runalg("qgis:intersection",
.......)

/processing.runalg("qgis:intersection",LayerCAOP,Temp01,saida)/

No QGIS 2.18.* o atalho vector > geoprocessing tools > intersects abre
*exactamente* a mesma ferramenta que abre em Processing Toolbox > QGIS
geo algorythms > Vector Overlay Tools

Entretanto na toolbox "Processing" de QGIS há frequentemente varias
opções para a mesma operação de geoprocessamento. Poderá experimentar
usar a do SAGA ou a do GRASS (v.overlay com operador "OR").

E obtenho o mesmo erro de geometria iniválida.

Nenhum dos layers terá geometria inválida, inclusivamente já corri um
"reparador de geometrias".

Qual? a ferramenta "geometry checker" (que faz tambem correções) que
vem por defeito com QGIS?

Para além disso parece-me que o erro está
relacionado com a complexidade, dimensão ou numero de vértices dos
shapefiles envolvidos na intersecção...

Sugiro que experimete atmbem fazer um controlo depois ter importado a
camada no PostGIS:

SELECT ST_IsValidReason(geom) FROM tabela WHERE NOT ST_IsValid(geom);
SELECT ST_IsValidDetail(geom) FROM tabela WHERE NOT ST_IsValid(geom);

Para corrigir:

CREATE TABLE corrigida AS
SELECT att1, att2, ST_MakeValid(geom) AS geom FROM tabela;

Há tambem um plugin para QGIS (para a toolbox Processing) que faz a
mesma "limpeza" que o ST_MakeValid do PostGIS faz.

Cumprimentos

-- GM --

Bom dia Milú,

Se os dados são da CAOP, muito provavelmente o resultado correto é o da ferramenta do Processing, porque existem error topológicos (self-intersection) na CAOP (pelo menos em algumas versões que tenho testado). Assim como na COS.

A questão é que esses erros, no modelo de dados OGC, não são erros no modelo de dados da ESRI. Ou seja, no primeiro, os “buracos” devem ser ilhas; já no segundo são admitidas as self-intersections. Pessoalmente considero a abordagem topológica do modelo OGC mais correta e mais lógica, mas a verdade é que existem os dois modelos. Vê aqui graficamente a diferença:

http://www.h2gis.org/docs/1.3/ST_IsValidReason/

No Postgis corrige-se facilmente esse problema com o ST_MakeValid.

Cumprimentos,

Pedro Venâncio

···

No dia 7 de dezembro de 2017 às 10:24, MiluCaridadeGaspar <milugaspar@gmail.com> escreveu:

Bom dia a todos,

No desenvolvimento de um plugin preciso de usar a ferramenta de
geoprocessamento intersecção.
Em ambiente desktop, consigo aceder a duas ferramentas diferentes, uma no
menu Vector/Ferramentas de Geoprocessamento/Intersectar que me devolve
resultados satisfatórios e outra que aparece na Caixa de Ferramentas -
Intersecção - e que me devolve o erro /“Erro no geoprocessamento GEOS: Um ou
mais elementos de entrada têm geometria inválida”/.

Em python a instrução que uso é processing.runalg(“qgis:intersection”,
…)

/processing.runalg(“qgis:intersection”,LayerCAOP,Temp01,saida)/

E obtenho o mesmo erro de geometria iniválida.

Nenhum dos layers terá geometria inválida, inclusivamente já corri um
“reparador de geometrias”. Para além disso parece-me que o erro está
relacionado com a complexidade, dimensão ou numero de vértices dos
shapefiles envolvidos na intersecção…

Penso que conseguiria contornar o problema se conseguisse aceder via código
python à ferramenta “intersectar” no menu Vector. Sabem como o posso fazer?
Ou qualquer dica/sugestão que me possa ajudar a resolver esta questão?

Muito obrigada!

Com os melhores cumprimentos,
Milú


Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-pt-f5128248.html


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

Boa tarde, Pedro.

Obrigada.
Pois, eu fiz a correcção de geometrias com o ArcGIS e isso pode explicar a
continuação de existência dos erros para o QGIS.

--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-pt-f5128248.html