Com o desenvolvimento e a consolidação do mercado brasileiro de GIS e CAD nos últimos anos, cresce a necessidade de buscar qualidade e integração de dados espaciais, pois as organizações públicas ou privadas, de todos os tamanhos, possuem necessidade de se integrar interna e externamente a outras fontes de dados espaciais, interagindo com os padrões do Consórcio Geoespacial Aberto (OGC), com a web e também com ambientes 3D e Modelos de Informação de Edifícios (BIM).

Para tal, é necessário criar um ambiente de interoperabilidade, respeitando as características das diversas ferramentas de CAD e GIS existentes no mercado.

As equipes responsáveis por esses ambientes freqüentemente se deparam com algumas questões operacionais que dificultam a interoperabilidade, como por exemplo:
– Extração de dados espaciais ou não espaciais (xls, dbf, txt, etc.);
– Inspeção automatizada de dados oriundos de outras fontes, buscando conformidade com modelo de dados próprio;
– Atividades de controle e garantia de qualidade em um grande volume de dados, validando geometria, atributos e regras topológicas;
– Transformação de estruturas de dados de um modelo para outro, alterando, excluindo ou incluindo elementos geométricos e atributos em um grande volume de dados;
– E, finalmente, conversão de dados para formatos diferentes de seu ambiente (dwg ou dgn para shp e kml, por exemplo) sem perder as características iniciais de sua base de dados.

FME WorkbenchUma solução simples e integrada a quase todas as tecnologias GIS, CAD e Business Intelligence (BI) do mercado é o FME, ferramenta de spatial ETL que lê e/ou escreve em mais de 200 formatos CAD, GIS, raster, BIM, 3D e bancos de dados.

O FME identifica todos os elementos – geométricos e atributos – de um dado, espacial ou não, e disponibiliza ao usuário um ambiente gráfico para manipular esses elementos e exportar o resultado para a mesma quantidade de formatos.

Com mais de 300 funcionalidades, é uma ferramenta que auxilia equipes de CAD e GIS a extrair, validar, inspecionar, converter, reestruturar modelos de dados, integrar e dar carga em bancos de dados espaciais.

O FME cria um fluxo de um procedimento – workspace, ou arquivo com extensão fmw – que permite ao usuário proceder uma seqüência de validação e transformação automática, depois que o fluxo é criado.

Neste tutorial iremos demonstrar como criar no FME um fluxo de Controle de Qualidade e Exportação de dados espaciais, de uma rede de distribuição de água que necessita realizar validações e inspeções no dado, exportando para dois outros formatos os dados resultantes do fluxo.

Resumidamente, faremos o seguinte:

1.Importação de dados do formato Esri GeoDataBase

2.Validação de geometria neste conjunto de dados
– Tipos de geometria existentes
– Existência de geometrias coincidentes
– Identificação de micro-linhas

3.Validação de atributos neste conjunto de dados
– Identificação de atributo de identificação (Object_ID) únicos e remoção dos dados duplicados
– Análise de atributo – classificação e exclusão de elementos fora do padrão pré-definido

4.Exportação para .dgn, .dwg e Esri GeoDataBase

5.Suporte para Controle de Qualidade
– Criação de grid recobrindo todo o dado
– Criação de grid cruzando espacialmente com os erros identificados
– Seleção de polígonos do grid, para inspeção visual da qualidade da vetorização

Preparação para o tutorial

Para realizar este tutorial é necessário baixar o FME. Faça o download para avaliação no link http://resellers.safe.com/downloads/fme/fme_inovacao.exe. Em seguida, solicite uma licença temporária enviando a chave de registro (Registration Key) do FME para o e-mail suporte@inovacaogis.com.br. Informe que você está realizando o tutorial da InfoGEO que nós lhe enviaremos a licença.

Tutorial

Inicialmente, abra o FME clicando no menu Iniciar > Todos os Programas > FME > FME Workbench.

FME Workbench é uma das interfaces de interação do usuário com o produto

Ao abrir o FME Workbench, na tela inicial, escolha a opção Create a Blank Workspace. Essa opção permite mais flexibilidade na construção dos workspaces, ou fluxos de processo do FME.

Tela do FME

1. Importação de dados do formato Esri GeoDataBase

Para realizar essa atividade, clique no menu principal do software: Source DataSet > Add Dataset.

Importação para Geodatabase

Escolha o formato e o conjunto de dados que você irá trabalhar.

Escolhendo o formato

Escolhendo o conjunto de dados

Está feita a importação do dado de entrada no formato Esri GeoDataBase. O procedimento para importar quaisquer outros formatos, dos mais de 200 suportados, é o mesmo. É possível, ainda, importar outros dados, como informações de entrada, no mesmo ou em outros formatos.

Agora você construirá o fluxo de processos, o Workspace!

2. Validação de geometria no conjunto de dados

O primeiro passo é salvar o workspace e dar um nome a ele. No Menu Principal, clique em File > Save as. Selecione o diretório, escolha um nome e salve o arquivo.

Salvando o arquivo

Vamos utilizar uma ferramenta do FME chamada Transformer Gallery. Ela possui uma lista de todos os transformers e uma breve descrição de cada um deles. Os transformers estão separados por categoria, para facilitar a consulta, e também é possível pesquisar na caixa de consulta do Transformer Gallery.

Transformer Gallery

Para as operações desejadas, utilizaremos os seguintes Transformers: GeometryFilter, AttributeFilter, DuplicateRemover, 2DGridCreator, LengthCalculator, Matcher, RandomNumberGenerator, SpatialRelator, Tester e Visualizer.

Escolha esses Transformers, na caixa Transformer Gallery, e insira no workspace. É só selecionar, arrastar e soltar. Observe que o Transformer Visualizer é o único que possui um ícone diferente.

Transformer Visualizer

Tipos de geometria existentes

Nesse exemplo, o modelo de dados do usuário define que, para a rede de distribuição de água, não deverá haver outros tipos de geometria que não seja linha. Outra determinação do usuário final é que as feições geométricas diferentes de linhas sejam exportadas no formato shp, para auxiliar na revisão da base de dados.

Para validar o tipo de geometria existente, arraste o transformer GeometryFilter e conecte no dado de entrada. Para exportar as geometrias inválidas, definidas pelo usuário final, clique no Menu Principal > Destination Data > Add DataSet. Escolha o formato Esri shape e na saída DataSet insira, no final do endereço, um nome para o arquivo, como por exemplo geometria_errada. Aparecerá uma tela solicitando confirmação. Clique em OK.

Logo após, uma segunda tela (Feature Type Geometry) solicitará os parâmetros do dado que será construído. Em General Settings, clique em Allowed Geometries e selecione shape_polyline. Clique em OK.

Pronto! Seu arquivo de saída no formato shape, para reportar erros de geometria, está criado. Agora, arraste as setas amarelas do Transformer GeometryFilter para o arquivo de saída criado, com exceção de Line.

GeometryFilter

Vamos dar continuidade ao fluxo, inserindo um segundo transformer. A saída Line do Transformer GeometryFilter será a entrada do próximo Transformer.

De forma simples, foi segmentado um dado inicial separando somente o que interessa, e o que não for importante será enviado para um segundo arquivo de saída.

Existência de geometrias coincidentes

Para realizar essa validação, arraste o Transformer Matcher e conecte a geometria Line em sua entrada. O Matcher possui três saídas: Matched, Single Matched, Not Matched. Os dados corretos serão aqueles oriundos da opção Not Matched, ou seja, que não possuem informações geométricas coincidentes.

Transformer Matcher

Identificação de micro-linhas

Para identificar micro-linhas – linhas abaixo de um determinado comprimento definido pelo usuário final – é necessário primeiro calcular o comprimento de cada segmento dessa rede e inserir esse valor como atributo. O atributo e seus respectivos valores poderão ou não aparecer no dado final – esse é um parâmetro definido pelo usuário.

Arraste e solte o LengthCalculator e em seguida o Tester para junto do fluxo criado. Conecte a saída Not Matched do Transformer anterior na entrada do LengthCalculator. Conecte a saída do LengthCalculator no Tester.

LengthCalculator

Importante: é necessário configurar os parâmetros do Tester!

Clique no botão em vermelho que aparecerá nesse Transformer. O botão indica o seu status. Se está vermelho, é porque há alguma configuração obrigatória que não foi feita. Na coluna da esquerda – Value – selecione o atributo length. Na coluna Op selecione o sinal de maior que ( > ). Na coluna da direita – Value – insira o valor 2. Outros valores e operações poderiam ser configurados. Tudo dependerá do modelo de dados do usuário.

Tester

3. Validação de atributos no conjunto de dados

Identificação de atributos (Object_ID) únicos e remoção dos dados duplicados

Arraste e solte o Transformer DuplicateRemover para o final do fluxo. Conecte a saída Passed do Transformer Tester na entrada desse novo transformer.

O FME lê o dado inicial e mapeia todos os atributos existentes, que são os valores listados na opção Key Attribute. Clique no botão vermelho do DuplicateRemover e selecione em Key Attribute a opção OBJECTID.

A remoção de dados duplicados ocorrerá simplesmente com a classificação feita pelo transformer DuplicateRemover.

DuplicateRemover

Análise de atributo: classificação e exclusão de elementos fora de padrão pré-definido

Arraste o Transformer AttributeFilter para o final do fluxo. Conecte a saída Unique do Transformer anterior na entrada desse novo transformer. Clique no botão vermelho do AttributeFilter e na opção Attribute to Filter by. Selecione CD_DIAMETR.

AttributeFilter

Em seguida clique na opção Import, no canto inferior direito. Clique Next três vezes e em seguida Finish.

Import

Após isso, uma lista de valores únicos do atributo, no conjunto de dados de entrada, será apresentada. No modelo apresentado, o atributo diâmetro com valor zero é um erro. Exclua os demais valores e deixe somente o valor 0 (zero).

Zero

Vamos separar os dados errados e inserir um transformer Visualizer para inspecionarmos esse erro.

Visualizer

4. Exportação para dgn, dwg e Esri GeoDataBase

O próximo passo é inserir os dados de saída conforme solicitado. Na barra do Menu Principal, clique em Destination Dataset e escolha a opção Add Dataset.

Add Dataset

Adicionando uma saída em GeoDataBase

Selecione o formato Esri GeoDataBase, e no Dataset você verá que o caminho indicando a localização do arquivo já está criado. Basta somente acrescentar um nome ao arquivo. Clique em Sim na próxima caixa de diálogo. Digite o nome do arquivo e selecione o tipo de geometria. Clique em OK.

Adicionando GeoDataBase

Adicionando uma saída em dwg

Faça o mesmo procedimento de inclusão de conjunto de dados de destino (Destination Dataset), mas alterne o formato escolhido para Autodesk AutoCAD dwg/dxf. Insira o nome do arquivo (por exemplo, mundogeo.dwg).

Adicionando dwg

Clique em Settings e escolha em Attribute Output a opção Extended Entity Data. Clique em Sim na caixa de diálogo seguinte. Digite o nome do tipo de feição desejado e clique em OK.

Feições

Adicionando uma saída em dgn

Com o mesmo procedimento de inserção de dado de saída, escolha o formato Bentley MicroStation Design. Insira o nome do arquivo (mundogeo.dgn, por exemplo). Clique em OK e em seguida em Sim. Para finalizar, conecte a saída na entrada dos três dados de saída.

5. Suporte para controle de qualidade

Agora iremos criar uma grade que nos permita delimitar o dado, em polígonos, que se sobreponham com o dado de entrada. Algumas seleções desta grade serão criadas para inspecionar erros e definir áreas, aleatórias, para inspeção visual do dado.

Arraste o Transformer 2DGridCreator para o inicio do fluxo.

Para configurar os parâmetros deste Transformer, utilizaremos o Visualizer para levantar as coordenadas de canto do dado inicial. Desconecte o dado inicial do GeometryFilter. Copie e cole o Visualizer para perto dele.

Inspeção visual

Conecte o dado inicial no Visualizer e clique no sinal de Play, na barra de menu principal.

Visualizer

Recorte o Transformer 2DGridCreator para prosseguir. Depois é só inseri-lo novamente.

Aperte o play. Automaticamente o FME Universal Viewer, a ferramenta de inspeção de dados do FME, será executado, apresentando o dado de entrada.

Volte para o FME Workbench e cole o 2DGridCreator novamente. Clique no botão em vermelho do 2DGridCreator.

2DGrid

Volte para o FME Universal Viewer. Selecione as feições das extremidades x e y e copie e cole estas informações nos parâmetros de configuração do 2DGridCreator.

2DGridCreator

Apague o Visualizer, reconecte o dado de entrada no GeometryFilter e configure o 2DGridCreator com as informações coletadas no FME Universal Viewer e as demais configurações conforme figura abaixo.

Universal Viewer

Está criado o Grid que recobre todo o dado inicial. O problema é que existem polígonos vazios, e para retirá-los a fim de facilitar nosso controle de qualidade, serão utilizados outros dois transformers.

Arraste para perto do inicio do fluxo o Transformer SpatialRelator e insira um novo Tester. Conecte a saída do 2DGridCreator à entrada Base do Spatial Relator. Conecte o dado de entrada em Candidate. Conecte a saída do SpatialRelator ao Tester. Clique no botão vermelho do Transformer SpatialRelator e configure o parâmetro Tests to perform para Intersects.

SpatialRelator

No Tester, clique no botão vermelho e configure a coluna esquerda Value com o valor ­­ _related_candidates, a coluna do meio com “>” e o valor “0” na coluna da esquerda. Clique em OK.

Tester

Conecte um Visualizer na saída Passed do Tester.

Com isto, nós realizamos uma operação espacial cruzando os dados, através de uma intersecção, e agora somente polígonos do nosso grid que contenham dados serão apresentados a nós.

Agora vamos criar um Grid de inspeção visual, utilizando números aleatórios. Este grid irá selecionar, aleatoriamente, polígonos de nosso grid, e no FME Universal Viewer você poderá inserir dados raster, por exemplo, para validar a precisão da vetorização.

Arraste o nosso último Transformer, o RandomNumberGenerator para próximo do inicio do fluxo. Conecte a saída do Tester na entrada do RandomNumberGenerator. Insira mais um transformer AttributeFilter no fluxo. Conecte a saída do RandomNumberGenerator no AttributeFilter. Configure o RandomNumberGenerator de acordo com a figura abaixo. Clique em OK.

Atribute Filter

Configure o AttributeFilter de acordo com a figura abaixo. Clique em OK. Insira um novo Visualizer e conecte as saídas 1 e 2 em sua entrada.

Novo

Pronto! Foi criado o fluxo. Agora é só apertar Play e checar os resultados.

Esse fluxo pode ser salvo para ser usado com outros dados de entrada. Podemos também adicionar dados de saída para validar as etapas intermediárias do fluxo.

Como podemos observar, o FME é uma ferramenta muito flexível e pode ser adaptada a qualquer processo de validação e conversão de dados. Uma vez criado o fluxo, é só apertar Play e esperar alguns segundos.

Dúvidas sobre este fluxo ou sobre o FME?
www.inovacaogis.com.br
suporte@inovacaogis.com.br) 2139-9339
skype inovacao_gis
(12

Marco FidosMarco Fidos
Consultor em Spatial ETL
Diretor da Inovação
Especialista em gestão empresarial pela FGV e em marketing pela UVA
Mestrando em engenharia de produção e aeronáutica pelo ITA
mfidos@inovacaogis.com.br