Intersection bad geometries

Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Intersection bad geometries

MiluCaridadeGaspar
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
[hidden email]
https://lists.osgeo.org/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: Intersection bad geometries

Giovanni Manghi
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 --
_______________________________________________
QGIS-pt mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: Intersection bad geometries

Pedro Venâncio-2
In reply to this post by MiluCaridadeGaspar
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 <[hidden email]> 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
[hidden email]
https://lists.osgeo.org/mailman/listinfo/qgis-pt


_______________________________________________
QGIS-pt mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: Intersection bad geometries

MiluCaridadeGaspar
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
_______________________________________________
QGIS-pt mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: Intersection bad geometries

duartecarreira
In reply to this post by MiluCaridadeGaspar
Milú Olá!! Bom "ver-te" por aqui ;)

Queria só perguntar ao pessoal se no qgis podemos usar com spatialite a st_makevalid e a série de funções st_* que o spatialite tem:

É mais fácil para quem não lida com postgis usar spatialite. (pelo menos não precisa de instalar pgsql+postgis)

Eu penso que sim, até da mesma forma que com postgis, mas não tenho a certeza... podem dar umas luzes?

Abraços,
Duarte

_______________________________________________
QGIS-pt mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: Intersection bad geometries

Pedro Venâncio-2
Olá Duarte,

No QGIS consegues até melhor do que isso! Podes usar essas funções todas, até com shapefiles!

Menu Layer -> Add Layer -> Add/Edit Virtual Layer...

Esta opção é mais uma daquelas que me deixa de queixo caído com o QGIS! :)

As coisas que se fazem com umas reles shapefiles! Mas podes usar quaisquer outras fontes de dados.

Abraço!
Pedro Venâncio

 

No dia 7 de dezembro de 2017 às 21:47, Duarte Carreira <[hidden email]> escreveu:
Milú Olá!! Bom "ver-te" por aqui ;)

Queria só perguntar ao pessoal se no qgis podemos usar com spatialite a st_makevalid e a série de funções st_* que o spatialite tem:

É mais fácil para quem não lida com postgis usar spatialite. (pelo menos não precisa de instalar pgsql+postgis)

Eu penso que sim, até da mesma forma que com postgis, mas não tenho a certeza... podem dar umas luzes?

Abraços,
Duarte

_______________________________________________
QGIS-pt mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/qgis-pt



_______________________________________________
QGIS-pt mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/qgis-pt