32
- 1 - LIMPEZA TOPOLÓGICA DE DADOS DE REDES NO QGIS 2.0 Dufour COM RECURSO AO GRASS INDICE DETEÇÃO DE ERROS ........................................................................................................................... - 2 - LIMPEZA DE ERROS TOPOLÓGICOS COM O GRASS .................................................................. - 12 - Erros de undershoot nos ARCOS ....................................................................................................... - 22 - Interseções entre ARCOS não definidas............................................................................................. - 27 - Erros de overshoot nos ARCOS ......................................................................................................... - 30 -

EdicaoTopologicaREDES QGIS GRASS

Embed Size (px)

DESCRIPTION

edição redes

Citation preview

Page 1: EdicaoTopologicaREDES QGIS GRASS

- 1 -

LIMPEZA TOPOLÓGICA DE DADOS DE REDES NO QGIS 2.0 Dufour COM RECURSO AO GRASS

INDICE DETEÇÃO DE ERROS ........................................................................................................................... - 2 -

LIMPEZA DE ERROS TOPOLÓGICOS COM O GRASS .................................................................. - 12 -

Erros de undershoot nos ARCOS ....................................................................................................... - 22 -

Interseções entre ARCOS não definidas............................................................................................. - 27 -

Erros de overshoot nos ARCOS ......................................................................................................... - 30 -

Page 2: EdicaoTopologicaREDES QGIS GRASS

- 2 -

DETEÇÃO DE ERROS

No seguimento dos tipos de erros descritos no documento “TRATAMENTO DE DADOS DE REDES NO QGIS 2.0 Dufour, na Seção "1. EDIÇÃO DA COMPONENTE GRÁFICA", poderá proceder-se à definição de um processo semi-automático para a deteção e posterior correção de alguns desses erros. Dos erros identificados, aqueles que são passíveis de serem detetados de forma automática são:

1. NÓS afastados de limites de ARCOS 2. NÓS isolados 3. Erros de overshoot nos ARCOS 4. Erros de undershoot nos ARCOS

Para a deteção de erros será necessário fazer uma análise de geometria tendo em vista a verificação de topologia. A topologia descreve as relações entre pontos e linhas representados numa extensão geográfica. Com recurso ao módulo "Verificador de Topologia" é possível verificar a topologia de ficheiros vetoriais, tendo em conta as várias regras topológicas disponíveis. Essas regras verificam as relações espaciais entre os elementos. Para aceder a este módulo comece por assegurar que ele se encontra disponível e acionado (checked) no menu "Módulos" e "Gerir e Instalar Módulos":

Uma vez acionado o módulo "Verificador de Topologia" ele encontrar-se-á disponível na barra lateral esquerda do projeto QGIS:

Page 3: EdicaoTopologicaREDES QGIS GRASS

- 3 -

Será na janela do "Verificador de Topologia" que irão aparecer listados os erros detetados em função das regras topológicas pré-definidas. Para definir as regras a utilizar carregar em "Configurar". Dependendo do tipo de geometria (linhas ou pontos) as regras serão diferentes:

• Regras topológicas para os ARCOS (linhas):

• Regras topológicas para os NÓS (pontos):

Page 4: EdicaoTopologicaREDES QGIS GRASS

- 4 -

Poderá aceder a mais informação consultando o site: http://www.qgis.org/pt_PT/docs/user_manual/plugins/plugins_topology_checker.html Para deteção do erro "1. NÓS afastados de limites de ARCOS" deverá ser definida a regra (para a layer de linhas) designada por "os pontos finais devem estar cobertos por" (escolher a layer de pontos). Depois de definida a regra carregar em "Adicionar regra":

• Fazer Ok. • No "Verificador de Topologia" fazer check em "Mostrar erros" e carregar em "Validar tudo".

Page 5: EdicaoTopologicaREDES QGIS GRASS

- 5 -

• Foram encontrados 135 situações de erro, onde os NÓS se encontram afastados (mesmo que ligeiramente) das extremidades dos ARCOS. Estes erros deverão ser corrigidos um a um, e manualmente, não sendo aqui possível qualquer correção automática.

• A identificação do erro a corrigir pode ser facilitada através da aproximação ao elemento alvo do erro. Primeiro selecione o erro que pretende corrigir:

Em seguida aceda à tabela de atributos da layer para conseguir selecionar o elemento cujo "ID do Elemento" = 0. Para tal, na tabela irá recorrer a "Selecionar elementos usando uma expressão":

Page 6: EdicaoTopologicaREDES QGIS GRASS

- 6 -

Construa a expressão "$id = 0" e carregue em "Selecionar":

Page 7: EdicaoTopologicaREDES QGIS GRASS

- 7 -

Na tabela faça "Mostrar elementos selecionados":

Page 8: EdicaoTopologicaREDES QGIS GRASS

- 8 -

Irá aparecer listado apenas o elemento selecionado (cujo "ID do Elemento" interno do registo é = '0'). Para este elemento selecionado faça aproximar o mapa para ele:

O mapa irá centrar o zoom no elemento em causa. Com o botão "Identificar Elemento" será possível confirmar que se trata do elemento que foi selecionado:

Para proceder à edição gráfica destes erros bastará entrar em modo de edição da layer (no caso a layer de pontos uma vez que deverão ser estes a serem movidos para as extremidades das linhas). Para deteção do erro "2. NÓS isolados" deverá ser definida a regra (para a layer de pontos) designada por "os pontos finais devem estar cobertos por" (escolher a layer de linhas):

Page 9: EdicaoTopologicaREDES QGIS GRASS

- 9 -

Para deteção do erro "3. Erros de overshoot no ARCOS" deverá ser definida a regra (para a layer de linhas) designada por "não pode ter linhas penduradas":

Isto permitirá detetar erros de (verdadeiro) 'overshoot' bem como situações em que será necessário criar um novo NÓ na interseção entre dois ARCOS, subdividindo estes necessariamente (ver o caso do "ID do Elemento" = 149):

Page 10: EdicaoTopologicaREDES QGIS GRASS

- 10 -

Uma outra situação que também aqui se deteta é o facto de ser necessário ainda partir o ARCO pela notória sobreposição de um NÓ. É de referir que situações deste género não são possíveis de serem detetadas como erros de topologia, uma vez que na verdade não o são. Recorda-se que são situações de erro tendo em conta a estruturação em REDE que se pretende ver definida para a posterior integração destes dados em SIG. Para deteção do erro "4. Erros de undershoot no ARCOS" deverá ser definida a regra (para a layer de linhas) designada por "não deve ter pseudo nós":

Sendo um 'pseudo nó' um NÓ que liga dois (únicos) ARCOS, eles podem surgir tanto em situações de erro (ver exemplo em baixo):

Page 11: EdicaoTopologicaREDES QGIS GRASS

- 11 -

Como também podem surgir em situações que não são consideradas erro mas como fazendo parte da geometria pretendida para a REDE. E neste último caso, não deverão ser considerados erro. Por esta razão, mais uma vez, é de todo aconselhável a correção manual e individual deste erros. Por fim, poderá fazer-se a deteção dos erros separadamente (em função de cada regra estabelecida), ou deteta-los todos em simultâneo, definindo todas as regras de uma vez só:

Page 12: EdicaoTopologicaREDES QGIS GRASS

- 12 -

LIMPEZA DE ERROS TOPOLÓGICOS COM O GRASS

Com recurso ao GRASS (integrado no QGIS) poderá ser efetuada a correção automática de alguns tipos de erros encontrados numa shapefile do tipo linha. Dos erros identificados "1. EDIÇÃO DA COMPONENTE GRÁFICA", aqueles que são passíveis de serem corrigidos de forma automática são:

1. Erros de undershoot nos ARCOS. 2. Interseções entre ARCOS não definidas. 3. Erros de overshoot nos ARCOS.

Antes de começar a trabalhar com o GRASS é necessário criar um diretório para uma "LOCATION", semelhante a uma geodatabse, que terá associado um dado SRC (coordinate reference system). Dentro da "LOCATION" é criado um "MAPSET" (conjunto de mapas) chamado "PERMANENT" onde só o utilizador que o criou pode mexer. Será aqui que se colocam os dados com que vai trabalhar. Para tal, será necessário ativar Barra de ferramentas do GRASS:

Em seguida, deverá criar um novo conjunto de mapas, para que o GRASS "reconheça" a informação com que irá trabalhar, depois de a incluir no "ambiente do GRASS" criado (conjunto de mapas).

Page 13: EdicaoTopologicaREDES QGIS GRASS

- 13 -

Para criar um novo conjunto de mapas: • Carregar no botão (também acessível em Módulos - GRASS - Novo conjunto de dados

• Comece por criar o diretório onde colocar todo o projeto, normalmente na raíz do C:\ e, por exemplo,

com a designação "grassdata":

• Fazer "Next".

Em seguida criar a LOCATION que pretende representar a região a que irão pertencer os dados. Neste caso vamos designar por "Portugal" uma vez que dados pertencem a essa região:

Page 14: EdicaoTopologicaREDES QGIS GRASS

- 14 -

• Fazer "Next" e escolher SRC através do código EPSG, que é o 27493 (correspondente ao Sistema Cartográfico "Datum 73 / Modified Portuguese Grid" utilizado pela APDL até ao momento):

Page 15: EdicaoTopologicaREDES QGIS GRASS

- 15 -

• Fazer "Next". • Escolher a região – Portugal e carregar em Configurar:

Page 16: EdicaoTopologicaREDES QGIS GRASS

- 16 -

• Fazer "Next". Depois de definir a LOCATION, define-se um MAPSET. Uma vez que a informação a tratar pertence à APDL, um bom nome será "APDL":

Page 17: EdicaoTopologicaREDES QGIS GRASS

- 17 -

Cada utilizador poderá editar os dados apenas no seu MAPSET, apesar de poder ver todos os outros conjuntos de dados de outros utilizadores. No Windows Explorer verifique que na diretoria criada "grassdata" foram criados novos diretórios com o nome da LOCATION, onde dentro tem mais 2 diretórios, um chamado PERMANENT e outro com o nome "APDL", no qual estarão os dados a trabalhar:

Falta abrir no projeto QGIS o conjunto de mapas criado ("APDL") e inserir lá dentro a informação a tratar (ARCOS.shp e NOS.shp). Uma vez inserida a informação num conjunto de mapas ela ficará sempre lá. No entanto, sempre que for aberto o QGIS, e caso pretenda trabalhar com as ferramentas

Page 18: EdicaoTopologicaREDES QGIS GRASS

- 18 -

do GRASS deverá fazê-lo sempre sobre a informação inserida no conjunto de mapas pré-definido, pelo que terá que "Abrir conjunto de mapas":

As ferramentas GRASS estão agora disponíveis no projeto QGIS. Adicionar as shapefiles ao projeto e carregar em "Abrir ferramentas GRASS":

Aceder à "Gestor de ficheiros" para importar a informação a tratar e clicar em "Importar vector carregado":

Page 19: EdicaoTopologicaREDES QGIS GRASS

- 19 -

Repetir o processo para cada uma das shapes a carregar para o GRASS:

Page 20: EdicaoTopologicaREDES QGIS GRASS

- 20 -

• Fazer "Correr". Clicar em "Ver saída" para que a layer (agora uma layer GRASS) fique visível no projeto QGIS.

• Fechar a janela das ferramentas GRASS. Na verdade, os dados passíveis de serem tratados/limpos com as ferramentas GRASS são apenas a shape do tipo linha, no entanto ficaram agora ambas as shapes no GRASS.

Na verdade, os dados passíveis de serem tratados/limpos com as ferramentas GRASS são apenas a shape do tipo linha, no entanto ficaram agora ambas as shapes no GRASS (NOS_grass e ARCOS_grass). A menos que grave o projeto, sempre que abrir de novo um projeto QGIS e pretenda usar as ferramentas GRASS, deverá abrir um conjunto de mapas e abrir as respetivas camadas:

Abrir o conjunto de mapas

Page 21: EdicaoTopologicaREDES QGIS GRASS

- 21 -

Abrir camadas GRASS

Para proceder à correção dos erros bastará recorrer à ferramentas do GRASS.

Page 22: EdicaoTopologicaREDES QGIS GRASS

- 22 -

Erros de undershoot nos ARCOS

Para corrigir erros de undershoots deverá usar o algoritmo "snap" que se encontra nas ferramentas GRASS.

• Abrir ferramentas GRASS:

Aceder ao algoritmo "snap":

Page 23: EdicaoTopologicaREDES QGIS GRASS

- 23 -

• Usar como dados de input a informação corrigida das interseções = "ARCOS_grass". • Dê um nome à informação que terá os ARCOS corrigidos do erro de undershoot (por exemplo,

"ARCOS_grass_snaped"). Esta informação ficará na pasta "grassdata", posteriormente deverá converter a layer corrigida para uma nova shapefile, e guardá-la num local que pretenda. ATENÇÃO: Deverá ser cuidadoso com a tolerância aplicada para a correção destes erros, caso contrário corre-se o risco de estar a gerar interseções entre ARCOS que não devem existir. Neste caso aplicou-se um Treshold = 0.1.

• Fazer correr o algoritmo. Caso pretenda adicionar a layer logo ao projeto deverá carregar em "Ver saída".

Page 24: EdicaoTopologicaREDES QGIS GRASS

- 24 -

ANTES DE CORRER O "SNAP":

DEPOIS DE CORRER O "SNAP":

Note-se que apesar de o erro ficar corrigido a interseção mantem-se por definir:

Page 25: EdicaoTopologicaREDES QGIS GRASS

- 25 -

OBS: Para ativar a escala gráfica no mapa fazer:

Page 26: EdicaoTopologicaREDES QGIS GRASS

- 26 -

Page 27: EdicaoTopologicaREDES QGIS GRASS

- 27 -

Interseções entre ARCOS não definidas

Para corrigir erros de interseções não definidas deverá usar o algoritmo "break" que se encontra nas ferramentas GRASS.

• Abrir ferramentas GRASS:

Aceder ao algoritmo "break":

Page 28: EdicaoTopologicaREDES QGIS GRASS

- 28 -

• Usar como dados de input a informação corrigida das interseções = "ARCOS_grass_snaped". • Dê um nome à informação que terá os ARCOS corrigidos deste erro (por exemplo, "ARCOS_grass_breaked").

Esta informação ficará na pasta "grassdata", posteriormente deverá converter a layer corrigida para uma nova shapefile, e guardá-la num local que pretenda.

• Fazer correr o algoritmo. Caso pretenda adicionar a layer logo ao projeto deverá carregar em "Ver saída".

Page 29: EdicaoTopologicaREDES QGIS GRASS

- 29 -

ANTES DE CORRER O "BREAK":

DEPOIS DE CORRER O "BREAK":

Page 30: EdicaoTopologicaREDES QGIS GRASS

- 30 -

Erros de overshoot nos ARCOS

Para corrigir erros de overshoots deverá usar o algoritmo "rmdangles" que se encontra nas ferramentas GRASS. NOTA: os erros de overshoots só são entendidos como tal quando as interseções estão definidas, caso contrário o GRASS não irá entender estes erros como overshoots. Assim sendo, primeiro deverá corrigir-se as interseções não definidas e só depois aplicar o algoritmo seguinte.

• Abrir ferramentas GRASS:

Aceder ao algoritmo "rmdangles":

Page 31: EdicaoTopologicaREDES QGIS GRASS

- 31 -

• Usar como dados de input a informação corrigida das interseções = "ARCOS_grass_breaked". • Dê um nome à informação que terá os ARCOS corrigidos do erro de overshoot (por exemplo,

"ARCOS_grass_rmdangled"). Esta informação ficará na pasta "grassdata", posteriormente deverá converter a layer corrigida para uma nova shapefile, e guardá-la num local que pretenda. ATENÇÃO: Deverá ser cuidadoso com a tolerância aplicada para a correção destes erros, caso contrário corre-se o risco de eliminar ARCOS que não devem ser eliminados. Neste caso aplicou-se um Treshold = 0.1.

• Fazer correr o algoritmo. Caso pretenda adicionar a layer logo ao projeto deverá carregar em "Ver saída".

Page 32: EdicaoTopologicaREDES QGIS GRASS

- 32 -

ANTES DE CORRER O "RMDANGLES":

DEPOIS DE CORRER O "RMDANGLES":