Вы находитесь на странице: 1из 68

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Integrao de mapas em visualizador de redes elctricas.


Eduardo Pedro Filipe Ramalho

Mestrado Integrado em Engenharia Informtica e Computao


Orientador: Doutor Antnio Fernando Vasconcelos Cunha Castro Coelho, Professor Auxiliar do Departamento de Engenharia Informtica da Faculdade de Engenharia da Universidade do Porto

Janeiro de 2011

Integrao de mapas em visualizador de redes elctricas


Eduardo Pedro Filipe Ramalho

Mestrado Integrado em Engenharia Informtica e Computao

Aprovado em provas pblicas pelo Jri:


Presidente: Raul Vidal (PhD) Vogal Externo: Csar Analide (PhD) Orientador: Antnio Coelho (PhD) ____________________________________________________

Janeiro de 2011

Resumo
Os Sistemas de Informao Geogrfica possibilitam a gesto e anlise de informao que tem associado uma localizao geogrfica. Estes sistemas podem ser aplicados a qualquer sector de actividade. Neste trabalho foi estudada a sua aplicao gesto de redes elctricas. O mbito deste trabalho est associado a um sistema SCADA/DMS comercializado pela empresa EFACEC, com o nome Scatex+. O objectivo principal expandir as suas funcionalidades de gesto e visualizao de informao (especficas rede elctrica) integrando qualquer tipo de informao geogrfica genrica. Um segundo objectivo, que funciona por restrio, o recurso a software livre de forma a no elevar os custos de licenciamento aos clientes. Para cumprir os objectivos propostos o trabalho foi dividido em duas fases. Primeiro o estudo do estado da arte nestes sistemas de informao. O segundo, a intergao de um prottipo de visualizao de mapas integrado e a pesquisa de informao base de dados. A soluo desenvolvida consiste em adicionar ao sistema SCADA existente, a base de dados Postgres com extenses geoespacias Postgis. A gerao de imagens e pesquisa realizada atravs da interface WMS/TMS disponibilizada pelo GeoServer . A optimizao da gerao de imagens por mosaicos realizada pelo uso do TileCache. O cliente WMS a integrar no visualizador existente a biblioteca GDAL. O resultado final foi a integrao com sucesso de mapas de teste no visualizador SCADA e foi estabelecida uma infraestrutura para desenvolvimento de mais aplicaes no futuro.

Abstract
Geographic Information Systems enable the management and analysis of information that is associated with a geographic location. These systems can be applied to any industry. In this work we have studied their application to the management of electrical networks. The scope of this work is connected to a SCADA / DMS system marketed by EFACEC, named ScateX. The main objective of this thesis is to expand its advanced functionality management and visualization of information (specific to the electricity grid) incorporating any type of geographic data base. A second objective, which works by restriction, is the use of open source software in order to keep licensing costs low to the customers. To meet the objectives proposed this work was divided into two phases. First the study of the state of the art in these information systems. Second, the integration of a prototype for the visualization of maps and query of information from the database. The developed solution is based on the integration on the existing SCADA system, of a Postgres database with the Postgis geospatial extension. The visualization and query are conducted through the WMS / TMS interface provided by GeoServer and the optimization of tile images generation is made using TileCache. The WMS client integrated into the existing viewer is the GDAL library. The end result was the successful integration of test maps on the SCADA viewer and we established an infrastructure to develop more applications in the future.

ii

Agradecimentos
Gostava de agradecer antes de mais empresa EFACEC pela oportunidade concedida e tempo disponibilizado para a realizao deste trabalho. Agradeo em particular ao engenheiro Pedro Silva pelo acompanhamento mais prximo do projecto na empresa. Gostava de agradecer ao meu orientador Dr. Antnio Fernando Vasconcelos Cunha Castro Coelho, pela orientao na escrita e como expor os temas desta dissertao . Por fim especial agradecimento namorada Soraia e minha famlia pela pacincia devido aos meses de afastamento e clausura.

Eduardo Ramalho

iii

ndice
1 Introduo................................................................................................................................ 1.1 Contexto de realizao....................................................................................................... 1.2 Problema............................................................................................................................. 1.3 Motivao e Objectivos...................................................................................................... 1.4 Estrutura da Dissertao..................................................................................................... 1 1 1 4 4

2 Reviso Bibliogrfica............................................................................................................... 5 2.1 O que um SIG ?............................................................................................................... 5 2.2 SIG e distribuio de energia............................................................................................. 6 2.3 Tipos de mapas................................................................................................................... 7 2.3.1 Mapa raster................................................................................................................. 8 2.3.2 Vectorial..................................................................................................................... 9 2.4 Sistemas de Coordenadas ................................................................................................ 10 2.4.1 Coordenadas Geogrficas......................................................................................... 11 2.4.2 Projeco.................................................................................................................. 11 2.5 Bases de dados espaciais.................................................................................................. 14 2.6 Gerar mapas...................................................................................................................... 15 2.7 Pr-gerao de imagens.................................................................................................... 16 2.8 Resumo ............................................................................................................................ 17 3 Metodologia............................................................................................................................ 3.1 Problema........................................................................................................................... 3.2 Proposta de arquitectura................................................................................................... 3.2.1 WMS........................................................................................................................ 3.2.2 GDAL....................................................................................................................... 3.2.3 TMS.......................................................................................................................... 3.2.4 Estilizao de mapas................................................................................................ 3.3 Resumo e Concluses....................................................................................................... 4 Implementao....................................................................................................................... 4.1 Integrao de mapas de teste............................................................................................ 4.1.1 Integrao de MDT.................................................................................................. 4.1.2 Integrao do CAOP................................................................................................ 4.1.3 Integrao da rede viria.......................................................................................... 18 18 20 22 23 24 25 27 28 28 28 29 30

iv

4.2 4.3 4.4 4.5

Optimizao de mapas via TileCache.............................................................................. Draw................................................................................................................................. SLD.................................................................................................................................. Resultados obtidos............................................................................................................ 4.5.1 CAOP....................................................................................................................... 4.5.2 Estradas.................................................................................................................... 4.6 Resumo.............................................................................................................................

31 32 34 37 37 38 40

5 Concluses e Trabalho Futuro............................................................................................. 41 5.1 Objectivo e resultados...................................................................................................... 41 5.2 Trabalho Futuro................................................................................................................ 42 Referncias................................................................................................................................ 43 Anexo A: Draw e GDAL.......................................................................................................... A.1 Configurao XML........................................................................................................ A.1 gdal_utils.hxx................................................................................................................. A.2 gdal_utils.cxx.................................................................................................................. A.1 view.hxx......................................................................................................................... A.1 view.cxx.......................................................................................................................... 44 44 45 45 50 50

Anexo C: OpenStreetMaps SLD............................................................................................. 55

Lista de Figuras
Figura 1: Visualizao da rede alta tenso do norte de Portugal.................................................... 2 Figura 2: Visualizao da rede da rea do Grande Porto............................................................... 2 Figura 3: Visualizao da rede mdia tenso na rea do Porto de Leixes.................................... 3 Figura 4: Freguesias..................................................................................................................... 10 Figura 5: Estradas......................................................................................................................... 10 Figura 6: Altitude......................................................................................................................... 10 Figura 7: Latitude e Longitude..................................................................................................... 11 Figura 8: Projeco Mercator....................................................................................................... 12 Figura 9: Trs tipos de projeces................................................................................................ 13 Figura 10: Pirmide de imagens................................................................................................... 17 Figura 11: Arquitectura................................................................................................................ 21 Figura 12: Coordenadas TMS...................................................................................................... 25 Figura 13: Rua e Casas................................................................................................................. 26 Figura 14: CAOP.......................................................................................................................... 37 Figura 15: Autoestradas Algarve.................................................................................................. 38 Figura 16: Ruas urbanas............................................................................................................... 39 Figura 17: Nomes de ruas............................................................................................................. 39

vi

Lista de Tabelas
Tabela 2.1: Tipos de dados e possibilidades.................................................................................. 7 Tabela 2.2: WKT de Portugal....................................................................................................... 14 Tabela 2.3: Lista de estradas ....................................................................................................... 15 Tabela 2.4: Restrio por vista..................................................................................................... 15 Tabela 3.1: Stringuificado............................................................................................................ 19 Tabela 3.2: reas resolvidas pela arquitectura............................................................................. 22 Tabela 3.3: Exemplo URL de pedido WMS................................................................................ 22 Tabela 3.4: Parmetros de um pedido WMS................................................................................ 23 Tabela 3.5: Identificao de cada mosaico em TMS.................................................................... 24 Tabela 3.6: Especificao do SLD via WMS............................................................................... 26 Tabela 3.7: Exemplo SLD............................................................................................................ 27 Tabela 4.1: Dados MDT............................................................................................................... 28 Tabela 4.2: Execuo do comando gdaldem............................................................................. 29 Tabela 4.3: Dados CAOP............................................................................................................. 29 Tabela 4.4: Instrues preparar o Postgres para o CAOP............................................................ 29 Tabela 4.5: Parmetros para importao da CAOP...................................................................... 30 Tabela 4.6: Dados OSM............................................................................................................... 30 Tabela 4.7: Importao OSM para Postgres................................................................................. 31 Tabela 4.8: Converso da projeco OSM................................................................................... 31 Tabela 4.9: Configurao do TileCache....................................................................................... 32 Tabela 4.10: Pedido via GDAL.................................................................................................... 33 Tabela 4.11: Funes de leitura por banda................................................................................... 34 Tabela 4.12: Identificaes usadas pelo OpenStreetMaps........................................................... 35 Tabela 4.13: Definio SLD do elemento a desenhar.................................................................. 36

vii

Abreviaturas e Smbolos
API GDAL SIG SCADA TMS WMS WWW SLD URL GPS PT CAOP Application Programming Interface Geospatial Data Abstraction Library Sistema de Informao Geogrfica Supervisory Control And Data Aquisition Tile Map Service Web Map Service World Wide Web Styled Layer Descriptor Uniform Resource Locator Global Positioning System Posto de Transformao Carta Administrativa Oficial de Portugal

viii

1 Introduo

Este captulo apresenta o ambiente e o contexto onde foi desenvolvido este trabalho, o problema solucionado existente e os objectivos desta dissertao.

1.1 Contexto de realizao


Esta dissertao foi proposta pela empresa nacional EFACEC Engenharia. Esta desenvolve e comercializa um leque alargado de sistemas ( hardware, software) na rea das energias (produo, transmisso, e gesto de redes). Um dos sistemas existente o Scatex+. Este usado para gesto e controlo da rede elctrica. Esta gesto engloba as seguintes funcionalidades: monitorizao das medidas de unidades remotas no terreno gesto de alarmes de superviso controlo de disjuntores e seccionadores editor de diagramas (representao lgica da rede) visualizador de redes e diagramas

Este sistema tem vrios clientes pelo mundo entre quais se destaca a EDP e o Metro do Porto em Portugal e o CERN na Sua.

1.2 Problema
No Scatex+ a visualizao da rede elctrica apresentada como est disposta no terreno. Linhas de alta/mdia tenso, subestaes e postos de transformao esto geo-referenciados. Esta informao complementada com as fronteiras do territrio portugus, distritos e as reas de operao do sistema. a partir deste visualizador que o operador interage com a rede.

Introduo

Figura 1: Visualizao da rede alta tenso do norte de Portugal

Figura 2: Visualizao da rede da rea do Grande Porto

Introduo

Figura 3: Visualizao da rede mdia tenso na rea do Porto de Leixes

As figuras 1, 2 e 3 mostram o visualizador dessa rede. Cada imagem representam aproximaes a uma rea geogrfica cada vez mais pequena. Em contrapartida, cada imagem acrescenta mais pormenor anterior. Na primeira est representado em cores diversas as linhas de alta tenso. As linhas verdes representam as fronteiras do territrio. A segunda uma aproximao regio do Grande Porto. Nesta acrescentado o pormenor das subestaes (pontos). Por fim, a ltima imagem representa o porto de Leixes. Nesta visvel linhas de mdia tenso e postos de transformao. Foram identificados oportunidades de melhoria no visualizador da rede. O desenho podia ser complementado com outros elementos geoespaciais fora do mbito das redes elctricas. Por exemplo, no existe informao das estradas ou a localidades mais prximas de uma subestao. A partir do momento que se tem vrios elementos referenciados tambm no existe um processo para interrogar relaes entre esses elementos (por ex: qual o piquete de manuteno mais prximo de uma subestao). Finalmente, o suporte actual de informao georefernciada baseada em ficheiros de texto num formato proprietrio. Isto dificulta e implica custos na importao de dados diversos de fontes externas.

Introduo

1.3 Motivao e Objectivos


A motivao principal deste trabalho ajudar o operador do sistema, a tomar decises relacionadas com a gesto da rede elctrica. Algumas destas decises podero ser facilitadas com a percepo da localizao onde ocorrem problemas. O objectivo deste trabalho ser investigar a forma de integrar essa informao grfica com o visualizador de redes elctricas. Para isso necessrio investigar os seguintes pontos: que contedos geogrficos existem formatos desses contedos que sistema usar para persistir e interrogar essa informao como desenhar esses contedos. Por fim, uma restrio colocada que o sistema a propor dever ser baseado em aplicaes open source. Desta forma os custos de licenciamento a clientes do sistema sero minimizados. A metodologia a usar ser investigar o estado da arte nestes sistemas e demonstrar com exemplos que o sistema proposto de aplicaes e procedimentos vo funcionar na prtica.

1.4 Estrutura da Dissertao


Para alm da introduo, esta dissertao contm mais 4 captulos. No captulo 2, descrito o estado da arte e so apresentados trabalhos relacionados. No captulo 3, indicado o problema actual e a soluo encontrada. No captulo 4 encontra-se pormenores de implementao. Por fim, no capitulo 5, so apresentadas as concluses desta dissertao.

2 Reviso Bibliogrfica

Neste captulo descrito o estado da arte e so apresentados trabalhos relacionados de forma a mostrar o que existe no mesmo domnio e quais os problemas encontrados.

2.1 O que um SIG ?


Desde que o Homem ganhou conscincia e convive em grupos, houve sempre a necessidade de transmitir localizaes. H 35.000 anos, caadores Cro-Magnon desenhavam imagens de animais nas cavernas de Lascaux em Frana . Associado a estas imagens estavam desenhos de linhas e pontos. Acredita-se que estes estejam associados a indicaes de caminhos de migrao de animais e a posies das estrelas de forma a indicar perodos especficos do ano [Rappenglck99]. Este pode ser considerado uma forma rude de Sistema de Informao Geogrfica, ou seja uma representao em duas dimenses (na parede da caverna) de diversos fenmenos da natureza. De regresso ao presente, e numa era de avano tecnolgico sem precedentes na Humanidade, podemos ter a seguinte definio de Sistema de Informao Geogrfica: Conjunto de sistemas de hardware, software, dados georeferenciados e procedimentos com os objectivos de capturar, gerir, analisar, prever e visualizar mais facilmente a informao [GIS]. A parte visvel de um SIG a visualizao de mapas. Na verdade o seu poder est na capacidade que pode facultar de forma automtica, a capacidade de estabelecer relaes entre estados ou fenmenos diversos. A partir desse ponto podem-se inferir concluses. Podemos dar um exemplo de um estudo [Naganobu03] da populao de baleias num ambiente marinho. A informao para o estudo foi capturada via diferente fontes: observao de satlite (temperatura da gua, concentrao de zooplacton placas de gelo), amostras capturadas 1
1 O estudo no explicito se foram capturadas baleias para o estudo. Mas o navio referido no estudo reconhecido como baleeiro. Este autor no aprova a caa s baleias.

Reviso Bibliogrfica de krill, observaes directas de baleias. Todos estas variveis esto georeferenciadas. Os dados foram analisados e no fim foi sintetizado visualmente um mapa que demonstra a relao directa entre as concentraes de krill, temperaturas e as diferentes espcies de baleias.

2.2 SIG e distribuio de energia


O uso de sistemas grficos na indstria da gesto de redes elctricas j est estabelecido desde os anos 70[ERSI]. Comeou com sistemas de desenho de topologia de rede associados a atributos diversos no grficos. Estes diagramas contem a informao de como cada equipamento de rede est ligado fisicamente a outro. Este tipo de sistemas foram denominados por automated mapping/facilities management (AM/FM), no contexto das redes. Com passar dos anos associou-se essa topologia a coordenadas geogrficas. Adicionando a possibilidade de usar funes interrogao espaciais entre elementos (ex: equipamentos como pontos dentro de um distrito representado por uma rea) surgiu naturalmente a associao aos SIG. A utilizao mais bsica dada neste contexto de operao a de registo de infraestruturas elctricas (cabos elctricos, equipamentos). Estes sistemas permitem algumas funcionalidades:

inventrios por rea geogrfica planos de manuteno de equipamentos. indicao s equipas do terreno da localizao precisa (mesmo em profundidade) de equipamentos.

Um Centro de Comando de uma empresa de distribuio de energia apoiado por um sistema SCADA/DMS (Supervisory Control and Data Acquisition/Distribution Management System). Estes sistemas englobam duas funes interligadas. Uma a capacidade de monitorizar estados de equipamentos ou grandezas fsicas (temperatura, corrente elctrica, etc), atravs de sensores geograficamente espalhados por grandes reas. Tambm est includo a capacidade de controlar/operar remotamente esses mesmos equipamentos. O termo DMS, indica a disponibilidade de funcionalidades relacionadas com o conhecimento que se est a operar uma rede elctrica. Alguns exemplos de funcionalidades adicionais so:

clculo de cargas (load balancing) encontrar caminhos alternativos de transmisso face a uma falha num caminho ou n da rede. visualizao em tempo real do estado de energizao da rede indicao da conectividade entre dois pontos da rede ligar/desligar automaticamente a iluminao pblica dependente da incidncia solar. diagnstico de cascata de eventos de falha [Wendou]

Reviso Bibliogrfica Se adicionar a estes sistemas, dados georeferenciados fora do mbito da redes elctricas, abre novas possibilidades de estudos e gesto (ver Tabela 2.1)
Tipo de dados Possibilidades

Topologia do terreno, reas protegidas


ndice de vegetao

planeamento de localizao de postes de longo curso para transporte de energia[Jiaju]. planeamento de corte de ramos de rvores perto de linhas de transmisso. planeamento da localizao de novas subestaes.

Densidade populacional, crescimento esperado futuro Estradas e nmero postal das habitaes

planeamento de rotas de equipas de manuteno a diferentes pontos da rede. diminuir tempos de resposta das equipas de manuteno mais prximas (em tempo e no distncia) a uma falha de equipamento. aviso prvio de reas afectadas pela manuteno da rede.

Tabela 2.1: Tipos de dados e possibilidades


A maioria dos exemplos dados anteriormente podem ser automatizados por processos matemticos. Mas uma no menos importante funcionalidade permitir a um operador humano da rede, ter uma referncia visual do ambiente geogrfico onde esto inseridos os equipamentos que controla, os quais podem ajudar para decises crticas no momento.

2.3 Tipos de mapas


O objectivo deste trabalho permitir visualizar contedos geogrficos sobrepostos com diagramas de redes elctricas. Alguns exemplos de contedos geogrficos so: mapa da rede rodoviria e ferroviria, mapa de divises administrativas e fronteiras territoriais, mapa geogrficos (altitude, rios, lagos), pontos a especificar cidades e outros aglomerados populacionais, pontos a indicar a localizao de recursos mveis (ex: frota automvel), fotografias reas, estatsticas relacionadas com uma rea geogrfica (ex: densidade populacional).

Reviso Bibliogrfica O que todos estes exemplos tem em comum a associao da informao a localizaes precisas no planeta. Existem empresas e organismos pblicos especializados na captura, tratamento e disponibilizao destes contedos. Normalmente implicam custos elevados. Estes so em funo da rea pedida ou da resoluo pretendida para essa mesma rea. Por exemplo, o Instituto Geogrfico do Exrcito2, comercializa o Modelo de Elevao do Terreno a um custo de 20.000 para uma resoluo de 90metros. Para uma resoluo de 30m, o preo sobe para 100.000. Esta informao pode ser disponibilizada em dezenas de formatos. A razo da existncia destes inmeros formatos pode ser devido a trs factores: s diferentes entidades e respectivas aplicaes que capturaram esse contedo, informao especfica ao domnio e finalmente devido a aplicaes de gesto e analise dessa informao. Os contedos geogrficos podem ser agrupados em dois tipos: raster ou vectorial. A escolha pode depender dos seguintes factores: facilidade na captura da informao, necessidade de falta de espao ocupado, capacidade de processamento do sistemas e flexibilidade na interrogao de dados.

2.3.1 Mapa raster


um formato em que se representa como uma matriz com um nmero de linhas (y) e com outro nmero de colunas (x). Cada posio (x,y) representa uma localizao geogrfica relativa a uma coordenada absoluta guardada com o mapa, segundo um sistema de coordenadas prdefinido. O valor numrico dessa posio (x,y) denominado por pixel e representa alguma caracterstica fsica ou estatstica desse ponto (por exemplo: cdigo de cor, valor da altitude, densidade populacional). Para a mesma rea terrestre, quantos mais pontos forem usados para a representar, melhor a resoluo da informao porque cada ponto s se refere a uma pequena rea. Exemplos de contedos tipo raster:

Fotografias reas. Modelo de Elevao Terreno (MET) em que o valor de cada pixel representa a altitude mdia da rea correspondente. Mapas temticos em que cada valor de pixel pode representar uma determinada temtica.

A vantagem deste formato a relativa facilidade de capturar informao. Uma cmara fotogrfica captura instantaneamente a imagem de uma rea a partir de uma localizao bem conhecida. A tcnica de "Synthetic aperture radar"3 permite obter imediatamente por satlite as

2 3

http://www.igeoe.pt/produtos/precario.asp http://southport.jpl.nasa.gov/desc/imagingradarv3.html

Reviso Bibliogrfica caractersticas de elevao do terreno de grandes superfcies do planeta (denominado MET). Cmaras de infravermelhos4 por sua vez conseguem capturar ndices de vegetao existente. O inconveniente deste formato ocupar grande espao em disco. O MET de Portugal Continental, para uma resoluo de 30 metros por pixel, ocupa um ficheiro 350GB (ver Figura 6: Altitude). Nesta imagem foi atribudo nveis de cinzento mais claros em funo da altitude crescente que representam.

2.3.2 Vectorial
Neste formato, caractersticas geogrficas so expressas por intermdio de formas geomtricas: pontos, linhas e polgonos. Alguns exemplos para cada tipo so: os pontos podem representar cidades ou locais de interesse, linhas podem representar: ruas, rios, linhas de transmisso elctrica e os polgonos podem ser usados para regies, lagos e habitaes. As coordenadas so expressas num sistema de coordenadas pr-definido para esse mapa. Esta composta por dois eixos (latitude e longitude) em coordenadas geogrficas ou se a rea for projectada podem ser usadas coordenadas cartesianas. Tambm pode ser adicionado mais um eixo que representa a altitude. Para alm destas primitivas tambm podem ser associadas caractersticas ou propriedades relacionadas com o mbito do mapa. Um ponto que representa uma localidade pode ter associado uma caracterstica com nome "Classificao". Esta pode ter os valores "cidade", "vila" ou "aldeia". Uma linha elctrica pode ter a caracterstica "Tenso" e pode conter os valores 220V, 400MV e 20KV. Um polgono pode representar as fronteiras de uma freguesia. Este pode ter como caracterstica "Nome". Este nome pode ser "Porto", "Maia" ou "Valongo". Pode ser adicionado a dimenso de data e hora aos dados. Desta forma consegue-se descrever fenmenos que variam ao longo do tempo. Este formato vantajoso em mais situaes que o formato raster . As seguintes qualidades so lhes atribudas:

Ocupam menos espao em disco. Para definir uma linha basta especificar dois pares de coordenadas (x,y). Num raster teria que ser definido todos os pontos (x,y) por onde a linha passasse. fcil fazer interrogaes s geometrias. Operaes do tipo rea ocupada por um polgono, coordenadas de intercepo de duas linhas analise de grafos, so bem conhecidas da matemtica. Operaes de aproximao (zoom) ao mapa no provocam a degradao de imagem como num raster que fica com aspecto de blocos. mais fcil actualizar mapas vectoriais para pequenas alteraes no ambiente. Num raster obrigado a actualizar logo toda uma regio de uma vez.

http://science.hq.nasa.gov/kids/imagers/ems/infrared.html

Reviso Bibliogrfica

As desvantagens deste formato so:

mais demorado capturar a informao inicial porque normalmente envolve um trabalho manual exige recursos de processamento de CPU para clculos complexos de projeco de pontos num plano.

Os formatos mais encontrados de informao vectorial so: o KML, AutoCAD DXF e ESRI Shapefile. Exemplos destes podem ser visualizados na Figura 4: Freguesias e na Figura 5: Estradas.

Figura 4: Freguesias

Figura 5: Estradas

Figura 6: Altitude

2.4 Sistemas de Coordenadas


Os formatos raster e vectorial descritos na seco anterior precisam de ter uma forma de especificar a localizao no planeta a que esses mapas se referem. Existe muitos sistemas em uso. Podem ser definidos como coordenadas esfricas em semelhana com a forma do planeta, ou em cartesianas segundo eixos (x,y,z).

10

Reviso Bibliogrfica

2.4.1 Coordenadas Geogrficas


As coordenadas geogrficas permitem identificar uma localizao precisa no planeta. Na Figura 7, est representado o globo terrestre. A coordenada do ponto (P) obtido pelo ngulo () denominado por Latitude e pelo ngulo () denominado por Longitude.

Figura 7: Latitude e Longitude

Latitude o nome dado coordenada vertical de um ponto do planeta Terra em relao equador. uma medida angular em graus, dada pelo ngulo formado entre duas linhas. Ambas tm a mesma origem no centro de massa do planeta. Os outros dois pontos de destino esto separados na vertical. Um deles est localizado na superfcie sobre o equador. A outra linha passa pelo ponto na superfcie do planeta que se deseja medir. O ngulo varia num intervalo de 0 a 90. Se estiver acima do equador acrescenta-se a letra (N) de North e a baixo a letra (S) de South. Longitude o nome dado coordenada horizontal de um ponto no planeta em relao ao meridiano de Greenwich. Em contraponto com a Latitude, os pontos so esto separadas na horizontal e um deles est convencionado nesse meridiano. O ngulo total varia entre o 0 e 180. Pontos esquerda do meridiano acrescenta-se so identificados com a letra (W) do ingls West, e direita com a letra (E) de East.

2.4.2 Projeco
O planeta Terra uma superfcie esfrica. Coordenadas geogrficas so perfeitamente adequadas a essa geometria. Na prtica, as pessoas representam mapas em superfcies planas, desde uma folha de papel at a um ecr de computador. A passagem de uma representao

11

Reviso Bibliogrfica esfrica para plana conseguida por mtodos de projeco. Um novo mapa criado e este ter um novo sistema de coordenadas.

Figura 8: Projeco Mercator

Essa transformao implica alguma distoro da realidade, por isso existem critrios na seleco do tipo de projeco. Estes critrios dependem da superfcie total a representar a localizao no planeta dessa rea ou aplicao pretendida. Na Figura 8, vemos um exemplo de projeco de Mercator. Uma vista do planeta Terra a partir do Equador projectado num cilindro. Este cilindro aps ser desenrolado obtemos um mapa projectado num plano. As coordenadas dos pontos projectados passam a ser cartesianas (x,y). O planeta terra no uma circunferncia perfeita mas sim uma forma elipside. O planeta mais achatado nos seus plos que no equador. Ao longo do tempo os valores de referncia dessa forma foram sendo sucessivamente refinados. Os valores mais recentes esto definidos na norma GRS-80 (1979) so um raio equatorial de 6.378.137,0000, um raio polar de 6.356.752,3141. Estes valores so importantes para o algoritmo de transformao de coordenadas. A alterao a essas medidas tambm faz com que se passe a usar outro sistemas de coordenadas. Na Figura 9 apresentado uma a imagem dos Estados Unidades 5 em trs projeces diferentes. Nela podemos observar diferenas significativas nas fronteiras medida que se desloca do centro. Em Portugal foram definidas ao longo do tempo vrias normas de projeco de mapas [PTGRID]. Eles foram aparecendo ao longo da histria associado continua melhoria de processos de captura de informao e de conhecimentos geofsicos. Diferentes partes do territrio nacional tambm podem ter as suas coordenadas: Portugal Continental pode ter como referncia o castelo de So Jorge como centro do mapa, enquanto o arquiplago da Madeira e dos Aores tem cada os seus em particular. Se fosse necessrio desenhar estes trs territrios no mesmo mapa, haveria muitas caractersticas geomtricas que se seriam profundamente distorcidas por estes territrios se situarem distantes entre si no globo.

http://www.colorado.edu/geography/gcraft/notes/mapproj/mapproj.html

12

Reviso Bibliogrfica

Figura 9: Trs tipos de projeces

A projeco usada neste projecto a mais recente definida para Portugal Continental. Denomina-se por PT-TM06/ETRS896 ou por EPSG:3763. com base nela que se convertem as coordenadas geogrficas para cartesianas segundo a projeco Transverse Mercator. O organismo International Association of Oil & Gas Producers 7 define um documento com o nome ESPG que contm o catlogo de todos os sistema de coordenadas existentes no mundo e suas formulas de converso. Na Tabela 2.2 apresentado o formato Well Know Text (WKT) segundo especificado pela OGC, para transmisso desses parmetros. Os sistemas de projeco esto sempre presentes em qualquer ferramenta de sistemas georefernciados.

6 7

http://www.igeo.pt/produtos/Geodesia/Inf_tecnica/sistemas_referencia/Datum_ETRS89.htm http://www.ogp.org.uk/

13

Reviso Bibliogrfica

PROJCS["ETRS89 / Portugal TM06", GEOGCS["ETRS89", DATUM["Europea !Terre"tr#al!Re$ere %e!S&"te'!(989", SP)ERO*D["GRS (980",6+,8(+,,-98.-/,---(0(, AUT)OR*T0["EPSG",",0(9"11, AUT)OR*T0["EPSG","6-/8"11, PR*MEM["Gree 2#%3",0, AUT)OR*T0["EPSG","890("11, U4*T["5egree",0.0(,6/+-9-/(996+-8, AUT)OR*T0["EPSG","9(--"11, AUT)OR*T0["EPSG","6-/8"11, U4*T["'etre",(, AUT)OR*T0["EPSG","900("11, PROJECT*O4["Tra "7er"e!Mer%ator"1, PARAMETER["lat#tu5e!o$!or#g# ",+9.668-/8++++++++1, PARAMETER["%e tral!'er#5#a ",88.(++(08++++++++61, PARAMETER[""%ale!$a%tor",(1, PARAMETER["$al"e!ea"t# g",01, PARAMETER["$al"e! ort3# g",01, AUT)OR*T0["EPSG","+,6+"1, A9*S["9",EAST1, A9*S["0",4ORT)11

Tabela 2.2: WKT de Portugal

2.5 Bases de dados espaciais


Uma base de dados espacial permite guardar os contedos vectoriais e rasterizados num tipo de sistema consistente (modelo relacional) e de gesto bem conhecido. As principais vantagens de o usar num sistema geogrfico so:

As geometrias e informao diversa associada ficam juntas no mesmo sistema e so acedidas pela mesma linguagem (SQL) Possibilidade de usar ndices espaciais que tornam as pesquisas muito mais rpidas. Esto disponveis logo junto aos dados funes matemticas para anlise dos dados e cruzamento de informao de natureza diferentes. A projeco de coordenadas para outros sistemas pode ser realizado logo na fonte. Guardar imagens georeferenciadas neste sistema.

14

Reviso Bibliogrfica Actualmente praticamente todas as principais bases de dados suportam extenses espaciais. Por exemplo a Smallworld da GE prpria para redes de energia, a Oracle Spatial/Locator mais genrica mas com custos elevados e finalmente a Postgres com a extenso Postigs grtis. Para melhor compreender o que uma base de dados espacial pode fazer, temos o exemplo 2.3. Um SQL select retorna as ruas guardas na tabela roads. Cada rua tem associada as coordenadas da linha que compe esse segmento da estrada. Uma operao habitual em clientes de visualizao de mapas s retornar os elementos que esto dentro da rea visvel do ecr. Para isso pode ser definida uma restrio via SQL, como na Tabela 2.4: Restrio por vista.
5:;< SE=ECT roa5!#5, ST!A"Te>t?roa5!geo'@ AS geo', roa5! a'e AROM roa5"B roa5!#5 C geo' C roa5! a'e 88888888D88888888888888888888888888888888888888888D88888888888 ( C =*4ESTR*4G?(9(-+- -6+((8,(9((08 -6+-6-@ C Je$$ R5 - C =*4ESTR*4G?(89(6( -66(/8,(89-6/ -668(,@ C Geor5#e R5 + C =*4ESTR*4G?(9-,8+ --8(+8,(9-6(- --98(6@ C Paul St 6 C =*4ESTR*4G?(896(- -/-6+(,(896+( -/9(--@ C Grae'e A7e / C =*4ESTR*4G?(90(+( --6(68,(908,( --8(+6@ C P3#l T%e 6 C =*4ESTR*4G?(98-+( -6+6(8,(98-(+ -68+--@ C Da7e Cre" , C =*4ESTR*4G?-(86-( -86(-(,--6(-+ -6(-+(@ C C3r#" Ea&

Tabela 2.3: Lista de estradas 8

SE=ECT ST!A"Te>t?roa5"!geo'@ AS geo' AROM roa5" E)ERE roa5"!geo' FF SetSR*D?GHO9+D?(9(-+- -6+((,,(9(-+- -6+((9@GII:o>+5,8(@B

Tabela 2.4: Restrio por vista

2.6 Gerar mapas


necessrio um componente que converta os contedos geogrficos num mapa pronto a ser visualizado em browsers ou aplicaes. Existem vrias ferramentas no mercado. As suas caractersticas em comuns so:

aceder aos contedos guardados em base de dados ou ficheiros. aplicar uma projeco que o cliente pretender.

Exemplo retirado de http://postgis.refractions.net/docs/ch04.html#id2638365

15

Reviso Bibliogrfica

ter a capacidade de pintar ou desenhar os mapas segundo qualquer estilos grficos definido. disponibilizar os mapas finais via interface bem definida.

Para gerar uma imagem, normalmente aplicado uma formatao ou estilo aos contedos. O objectivo sobressair alguma propriedade ou diminuir a quantidade de informao a desenhar. Existem duas formas de colorir os elementos a desenhar. A primeira e mais simples, o utilizador pode definir a cor depende do tipo de geometria a ser desenhada. Por exemplo, todas as linhas serem desenhadas a verde e os polgonos a azul. A segunda forma mais flexvel desenhar dependente das propriedades que cada geometria tem associado. Uma linha pode representar um estrada nacional ou auto-estrada dependente da propriedade "tipo" associada a essa linha. Numa desenha um risco a vermelho e noutra desenha um trs riscos paralelos com a cor amarelo, vermelho e amarelo. Imagens tambm podem ser estilizadas. Se cada pixel da imagem original representar uma altitude ento pode ser convertido na imagem final numa rampa de cores em funo desse valor. Outras opes a disponibilizar colorao dependente do nvel de detalhe pretendido. Por fim, estas ferramentas tambm podem desenhar frases sobre os contedos (por exemplo nomes de ruas ou pontos de interesse).

2.7 Pr-gerao de imagens


Os geradores de imagens tem a flexibilidade suficiente para servir mapas conforme especificados em tempo real por aplicaes clientes. Mas a desvantagem desse trabalho a quantidade de recursos computacionais que exige enquanto gera os mapas. A consequncia disto so principalmente dois: o cliente fica uma dezena de segundos espera do mapa e o servidor pode ficar entupido com gerao em simultneo de mapas. Existe uma caracterstica dos mapas que pode ser aproveitada para colmatar esta falha. Os contedos geogrficos so estveis ao longo do tempo. Salvo situaes excepcionais um mapa gerado ontem ser igual ao mapa de hoje. Por exemplo, apesar de surgir estradas novas todos os dias, os mapas s so actualizados mensalmente. Isto pode ser aproveitado para pr-gerar os mapas em tamanhos de imagem pequenos, normalmente blocos de 256x256 pixeis, que depois so servidos em funo do pedido realizado. A estratgia de responder com blocos gerar uma pirmide de imagens, em que cada nivel corresponde a uma escala pr-definida de aproximao ao mapa. Por exemplo, numa escala grande, representar Portugal Continental basta dois blocos de imagens na vertical. Se a aplicao cliente pedisse um mapa com o tamanho 256 por 512 pixeis, era servidor esses dois blocos. Mas se o cliente j pedisse uma imagem 1024x2048 pixeis, ento j era servido por com imagens a um nvel a baixo da pirmide e com 32 blocos de imagens.

16

Reviso Bibliogrfica Caso o cliente dos mapas pedisse uma regio de 100x100 quilmetros e com um tamanho de mapa de 1000x1000 pixeis os blocos de imagens que seriam servidas eram os que mais se aproximassem das resolues pr-geradas. Os blocos finais tero que ser escalados no final para as dimenses indicadas pelo cliente. Na Figura 10, podemos visualizar esse crescente nvel de detalhe para a representao de todo o globo. Os nmeros so a identificao do bloco da imagem segundo o sistema de cache da Microsoft Bing Maps.

Figura 10: Pirmide de imagens

2.8 Resumo
Neste captulo foi introduzido o conceito de Sistema de Informao Geogrfica. So apresentados alguns casos de estudo para demonstrar a sua vantagem em os integrar em sistema SCADA/DMS. apresentado os tipos de contedos existentes e como este ficam capturados num sistema. indicado o conceito de sistemas de coordenadas e de projeco para esses contedos. Como forma de persistir, manipular e interrogar a informao apresentado o conceito de base de dados espacial. Por fim indicado como as imagens so geradas e as vantagens da tcnica de pr-gerao das imagens.

17

3 Metodologia

Este captulo comea por fazer uma apresentao detalhada do problema a resolver e termina com detalhes da soluo encontrada.

3.1 Problema
O sistema SCADA da EFACEC composto por inmeros componentes ou aplicaes. No mbito desta dissertao existem duas de interesse aos objectivos propostos. O objectivo entender onde este trabalho ir melhorar o processo actual e tornar possvel os objectivos propostos. Actualmente com o Scatex+ podemos visualizar a topologia das redes elctricas via um visualizador denominado Draw. As redes elctricas visualizadas so divididas em dois tipos: geogrfico e unifilares. Rede geogrfica a capacidade de representao da rede como est disposta no terreno. Esta inclui elementos como cabos de transmisso de alta e mdia tenso ligados a subestaes ou postos de transformao (PT). Nos desenhos de unifilares, visualizado o contedo dessas subestaes e PT. Os desenhos representam as ligaes lgicas entre equipamentos e no como esto fisicamente dispostos no local. O Draw usa a biblioteca ILOG para implementar as funes de desenho. Esta contm primitivas grficas suficientes para o desenho pretendido. Estas primitivas so as linhas, rectngulos, circunferncias e pontos. Como complemento podemos tambm incluir imagens como fundo aos desenhos e escrever texto. As coordenadas dos elementos desenhados no Draw segue a norma portuguesa de projeco EPSG:3763. A fonte de dados que alimenta o Draw da responsabilidade dos clientes. No contexto do desenvolvimento deste trabalho, foi usada a base de dados da EDP. O processo de importao comea com a captura e gesto da informao no sistema adquirido pela EDP

18

Metodologia denominado por Smallworld da GE Energy. Todos os dias so feitas alteraes como adio de equipamentos ou disposio de linhas na rede. Existe um processo que importa uma vez por dia esses dados para a base de dados do Scatex+ e para dois ficheiros de texto. So os ficheiros de texto que alimentam os visualizador de SCADA Draw. Estes ficheiros so de dois tipos: disposio geomtrica de equipamentos e o outro so os atributos no grficos desses equipamentos. O contedo est num formato proprietrio da EFACEC denominado por striguificado (ver Tabela 3.1). Este so carregados na totalidade para a memria logo no processo de arranque do componente.

[Pol&=# e;[Eorl5*5;01[Aer#al;(1[T&pe;l# e1[S&':ol;tro%o!(/1 [4o'# alJoltage;(/.00000000000001[Po# t"[K61;[8,9,,6880.00000001[8 (-0698600.0000001[8,986+/,6.00000001[8(-088-0+-.00000011 [EorL# gJoltage;(/.00000000000001[U#5;?6,-69866,(@I-1 [Repre"e tat#o ;tro%o!'t1[4or'alPo"#t#o ;01[S#glaPat3;(/06=-0-+600.1 [Mo5elCla"";tro%o!'t11 [C*MTe>t;[Te>t;((66.( / ( / AA +>(601[S#glaPat3;(/06=-0-+600.1 [Ju"t#$#%at#o ;--1[Or#e tat#o ;01[0;8(-0,6/60-.0000001 [4or'alPo"#t#o ;01[Mo5elCla"";tro%o!'t1[S%ale;(.000000000000001 [Eorl5*5;01[T&pe;l# e1[U#5;?6,-69866,(@I-1 [4o'# alJoltage;(/.00000000000001[Repre"e tat#o ;tro%o!'t1 [A gle;(.(-086-099(89,61[S&':ol;a ota%ao!tro%o!'t1[9;8 ,980,8,+.000000011

Tabela 3.1: Stringuificado


O objectivo desta dissertao integrar contedos geogrficos diversos fora do mbito das redes elctricas, no sistema existente. Este pode ser melhorado nas seguintes vertentes: na fonte, nos formatos e alojamento desses dados, na facilidade de acesso e analise automtica e finalmente na qualidade de desenho. O problema da fonte de dados a dependncia que Scatex+ tem do seus clientes para fornecer elementos geogrficos complementares. O cliente s captura elementos necessrios dentro da sua rea de actividade. A soluo passa obrigatoriamente por recorrer s entidades externas para fornecer contedos. Devido a isto introduzida mais uma dificuldade, estes dados podem ser capturados em diferentes formatos. Estes podem ser do tipo vectorial ou raster, podem estar armazenados em diferentes tipos de ficheiros e estar com sistemas de coordenadas diversas. Actualmente existe uma aplicao desenvolvida especificamente para o processo de importao do Smallworld para o Scatex+. A partir do momento que o leque de formatos se multiplica, deixa de ser vivel gastar recursos no desenvolvimento especfico de cada importador de dados. Para alm disso o formato de dados proprietrio da EFACEC funciona bem para guardar elementos geomtricos mas no contempla as imagens. Por isso se impe uma

19

Metodologia soluo de alojamento de dados o mais genrica e standard possvel. Dessa forma s necessrio as aplicaes se preocuparem com um tipo de interface de acesso a esses dados. Existe um problema latente relacionado com a necessidade de todos os dados terem que estar presente em memria. Actualmente o arranque do Draw no ambiente de testes demora 1 minuto a carregar todos os dados e o processo passa a ocupar 300MB de memoria. O sistema tem operado bem assim. Mas a partir do momento que se amplia a quantidade de contedos e se passa a usar imagens deixa de ser vivel a estratgia actual. Por exemplo, o modelo de elevao do terreno (MDT) de Portugal Continental ocupa 300MB. O sistema actual tem capacidades avanadas de anlise das propriedades elctricas da rede. Para isso esto disponveis internamente funes especficas neste mbito aplicadas a topologias (por ex: calculo de cargas elctricas e reas da rede energizadas). No existem funes para anlise de relaes espaciais entre elementos. Um exemplo de relaes espaciais interrogar para um determinado ponto da rede, quais as ruas que passam mais prximas. Por fim, falta referir a vertente de visualizao. O Draw oferece uma interaco rica com o utilizador. Isto inclui as funcionalidades normais de seleco de elementos com o rato, aproximao em reas do desenho com nveis de detalhe crescentes e alteraes de estilos de desenho em tempo-real em funo de propriedades da rede. No caso de visualizao de mapas, este ltima componente estilo dinmico no importante, porque a informao esttica. Mas em contrapartida, a visualizao de mapas de estradas e de imagens georeferenciadas necessita de mais opes de estilizao de elementos. Por exemplo o Draw no suportar a aplicao de texturas dentro de elementos, vrias cores na mesma linha e textos que seguem a curvatura das linhas. Estes no so importantes para a operao da rede, mas so importantes para um desenho de mapas agradvel que seguem os estilos correntes. Existem tambm duas restries que afectam uma potencial soluo. O Draw deve ser usado para visualizar contedo geogrfico e todas as ferramentas necessrias devero ser livres e grtis.

3.2 Proposta de arquitectura


O sistema do Scatex+ eficaz na visualizao da rede elctrica. Por esta razo pretende-se que a integrao das funcionalidades de um SIG tenham o mnimo impacto nas aplicaes existentes. O Draw o visualizador de eleio no Scatex+ enquanto que os mapas so acessrios. No h necessidade de permitir ao operador seleccionar esses elementos geogrficos com o rato nem a necessidade de mudar cores ou estilos desses desenhos em tempo-real. Com base nisto optouse por integrar no Draw a visualizao de imagens de mapas. Desta forma o Draw no precisa de ser adaptado tendo em conta todas as necessidades de base de um SIG. Essa responsabilidade ser passada para outros componentes. Este tipo de utilizao denominada por Thin Client.

20

Metodologia Por isso, a soluo passou por criar uma arquitectura semelhante para disponibilizar mapas em aplicaes tipo Web. Na figura Figura 11 encontramos a disposio dos elementos necessrios. A soluo passa por integrar no Draw a biblioteca GDAL de acesso a dados. Esta tem funcionalidades para aceder a imagens por protocolos de rede normalizados (TMS e WMS). O componente GeoServer responsvel por gerar as imagens usando como fonte a base de dados Postgres ou ficheiros prprios. Como a gerao de imagens demora sempre alguns segundos, introduziu-se entre o Draw e o GeoServer um mecanismo de cache de imagens pr-geradas baseada na aplicao TileCache.

Figura 11: Arquitectura

Em relao s necessidades identificadas na seco 3.1 Problema, a Tabela 3.2 indica os componentes responsveis por colmatar essas limitaes.

21

Metodologia
Formatos de dados Postgres, Geoserver e GDAL tem a capacidade de ler inmeros formatos. Repositrio de dados Ferramentas de anlise Visualizao Estilizao Postgres a base de dados para contedos vectoriais e de raster. Postgres/Postgis contm as ferramentas de base para essa anlise e tratamento de dados. O Draw consegue visualizar mapas via biblioteca GDAL. O GeoServer implementa a especificao SLD de estilizao de mapas.

Tabela 3.2: reas resolvidas pela arquitectura

No captulos anteriores, j foi feita a referncia utilidade dos componentes 2.5 Bases de dados espaciais, 2.6 Gerar mapas e 2.7 Pr-gerao de imagens. Nas seces seguintes feita a introduo a protocolos de acesso a dados WMS e TMS, a biblioteca GDAL e o SLD.

3.2.1 WMS
A interface Web Map Service (WMS) foi definida com o propsito de aceder a mapas dinmicos e georefernciados via web. Este servio pode ser invocado via Browser atravs de um endereo HTTP no formato Uniform Resource Locators (URL). As operaes e configuraes dos pedidos so todas definidas como parmetros desse endereo. Este standard define trs operaes: GetMap, GetCapabilities e GetFeatureInfo.

GetMap Para a realizao deste projecto s a funcionalidade de obteno de mapas importante. A seguir apresentamos um exemplo de um pedido segundo a norma WMS.
3ttpI//lo%al3o"tI8080/geo"er7er/2'"M "er7#%e;EMSF7er"#o ;(.(.0FreNue"t;GetMapFla&er";portugalI%aop+F"t&le";F::o>;8((9(9(.608 ,8+00606.806,(6-(-9.08(,-,608+.,6,F2#5t3;996F3e#g3t;-068F"r";EPSGI+,6+F$or'at;#'age/p g FTRA4SPARE4T;TRUE

Tabela 3.3: Exemplo URL de pedido WMS


O significado dos parmetros est decomposto na Tabela 3.4.

22

Metodologia
Attributo http://localhost:8080/ Request=GetMap Layers=portugal:caop srs=EPSG:3763 Bbox=-119191.408, -300404.804, 162129.081, 276083.767 width=996&height=2048 Significado Indicao da localizao na rede do servidor de imagens. Indicao que o tipo do servio pedido de imagem. Indica o nome do mapa a devolver. Cdigo do sistema de coordenadas a usar para projectar a imagem final. Define um rectngulo no qual s devolve os elementos geogrfico no seu interior. Tamanho da imagem a retornar. A rcio de altura e largura deve ser o mesmo que o parmetro "bbox". Caso contrrio a imagem gerada ir ser distorcida e no corresponde realidade. A imagem gerada deve est segundo a codificao PNG. A imagem gerada deve ter uma camada com a informao de transparncia da cada pixel.

format=image/png TRANSPARENT=TRUE

Tabela 3.4: Parmetros de um pedido WMS

Os parmetros "Transparent" e "Layers" so importante porque permite obter de uma s vez uma imagem com vrios mapas desenhados sobrepostos.

GetCapabilities Esta funcionalidade faz-se com o pedido " ReNue"t;GetCapa:#l#t#e"". O objectivo no retornar uma imagem mas sim um documento XML com a descrio dos mapas e suas caractersticas que esto configurados no servidor na altura do pedido. O cliente depois pode usar essa informao para mostrar ao utilizador os mapas disponveis.

GetFeatureInfo A funcionalidade permite ao cliente dos mapas obter mais informao sobre um determinada coordenada que est a visualizar. Por exemplo, se o utilizador clicar numa linha, o cliente de mapas, constri um pedido WMS com a coordenada dessa linha e a identificao do mapa. O servidor responde com um documento XML, sobre entidades a que esse ponto se pode referir. Esta funcionalidade importante para futura expanso de funcionalidades para alm de mostrar mapas.

3.2.2 GDAL

23

Metodologia A biblioteca Geospatial Data Abstraction Library 9 (GDAL) uma ferramenta de manipulao de contedos geogrficos. escrita em C++, com cdigo aberto ( opensource) e livre (licena X11/ MIT) e que pode ser compilado em sistemas Linux (GCC4) e Windows (VS2005). As funcionalidades disponibilizadas so:

ler mapas em praticamente todos os formatos e suportes em uso corrente. obter informao de metadados associados aos contedos geogrficos como sistema de projeco usado e nmero de bandas de informao. reprojectar mapas noutros sistemas de coordenadas cpia de contedos entre formatos (imagem e vectorial) e suportes informticos (ficheiros e base de dados) colorao de mapas MDT com efeitos 3D de sombreado do terreno criao de mosaicos de imagens

Esta ferramenta est includa em mais de sessenta aplicaes de informao geogrfica e com a consequente base de suporte de desenvolvimento e suporte. Existe uma particularidade encontrada nesta biblioteca que essencial para o prottipo. Ela permite ler mapas disponibilizados por rede pelos protocolos WMS e TMS.

3.2.3 TMS
O servio Tile Map Service (TMS) um protocolo de obteno de imagens parte de mapas maiores, j pr-gravados num servidor. implementado por cima do servio HTTP. Mais uma vez este protocolo definido pela OGC. Um exemplo de endereos que especificam blocos de imagens indicado na Tabela 4. Este significa que est a requerer um mapa denominado por "vmap0" no nvel de zoom ou resoluo 2, e o bloco que se encontra na coluna 3, linha 4.
http://tms.osgeo.org/1.0.0/vmap0/2/3/4.jpg

Tabela 3.5: Identificao de cada mosaico em TMS

A Tabela 3.5 indica como so identificados os blocos para um determinado nvel da pirmide. O nvel da pirmide dado por um conjunto de escalas pr-estabelecidas na configurao do TileCache.

http://www.gdal.org/

24

Metodologia

Figura 12: Coordenadas TMS

Este tipo de endereo tem a particularidade de mapear directamente para uma estrutura de directorias num sistema de ficheiros onde o ficheiro se pode encontrar. Assim o software que implementa o servio de cache muito mais simples e rpido porque no precisa de processar variveis no endereo URL. Este servidor pode ter uma funcionalidade extra que , quando uma imagem ainda no est gerada, sabe consultar o GeoServer via protocolo WMS para gerar essa imagem em falta. O Draw ter a capacidade de obter os mapas por TMS ou por WMS. A escolha vai depender da performance pretendida em contraponto com a versatilidade do WMS para aplicar estilos grficos (ver 3.2.4).

3.2.4 Estilizao de mapas


A vantagem do Draw simplesmente ler uma imagem que no necessrio o trabalho implementar todo o tipo de funes de colorao de dados. O GeoServer j executa essa tarefa por ele. Assim, resta s indicar a esta aplicao como se desenham os elementos. O GeoServer implementa um protocolo denominado de Style Layer Descriptor[SLD] para essa tarefa. O SLD um conjunto de regras que define como cada elemento geomtrico desenhado. Existem vrias estratgias de desenho. A mais simples baseada na geometria dos dados. Todas as linhas so pintadas com cor vermelha. Todos os polgonos so pintados nas bordas de azul e no interior de verde.

25

Metodologia Uma funcionalidade mais avanada desenhar conforme o tipo de propriedades associadas as geometrias. Por exemplo, as estradas no OpenStreetMaps, tem a propriedade highway associado a linhas. Esta propriedade pode ter os valores primary, secondary e others. Se for primary representa auto-estradas, por isso so desenhadas com trs traos paralelos (vermelho, amarelo, vermelho). Se for secondary representa outras estradas e pode ser desenhado como uma linha amarela de 1 pixel. Para others no desenhado nada. Outra forma de filtragem de elementos em funo do nvel de escala do mapa. Se estivermos a observar o mapa de Portugal, podemos indicar s para visualizar as auto-estradas. Mas se aproximar a vista para a rea do Porto, ficam visveis as restantes estradas e vias. Por fim, para cada regra e geometria, existem vrios construes possveis de serem usadas para estilizar os mapas. As existentes so: linhas, polgonos, circunferncias, texto e imagens. Cada uma pode ser opes de preenchimento com cores, nveis de transparncia, tipo de fontes, espessura do trao usado (stroke), etc. Esta especificao est intimamente ligado ao protocolo WMS. No URL usado pelo Draw para obter os mapas, possvel indicar o parmetro Styles. O nome atribudo a esse campo o estilo a usar para pintar o mapa. No exemplo da Tabela 3.6, estamos a pedir para mostrar os dados Roads e Houses em que aplicamos respectivamente os estilo centerline e outline.
http://yourfavoritesite.com/WMS?VERSION=1.1.0&REQUEST=GetMap& BBOX=0.0,0.0,1.0,1.0&WIDTH=400&HEIGHT=400&FORMAT=PNG LAYERS=Roads,Houses& STYLES=CenterLine,Outline

Tabela 3.6: Especificao do SLD via WMS

Figura 13: Rua e Casas


O resultado desta chamada WMS pode ser a imagem da Figura 13, em que os quadrados representam habitaes e o os riscos paralelos, as estradas. A forma de especificao das regras de desenho com base numa sintaxe XML, com elementos bem definidos (ver Tabela 3.7). Esta especificao implementada no GeoServer, muito mais abrangente do que as funcionalidades existentes no Draw, por isso no compensa trabalho suplementar de implementao do Draw. 26

Metodologia

OM>'l 7er"#o ;"(.0" e %o5# g;"ut$88"MP O"l5ISt&le5=a&erDe"%r#ptor >'l ";"http://www.opengis.net/sld"... ... O"l5IRuleP O"l5I4a'ePrule 'otor2a& tru L '# (000000O/"l5I4a'eP O"l5IT#tlePFltB5#$ere teFgtB, 'otor2a&, 'otor2a&!l# L, tru L, tru L!l# L, '# (000000O/"l5IT#tleP Oog%IA#lterP Oog%IOrP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralP'otor2a&O/og%I=#teralP O/og%IPropert&*"ENualToP O/og%IA#lterP O"l5IM# S%aleDe o'# atorP (000000O/"l5IM# S%aleDe o'# atorP O"l5I=# eS&':ol#QerP O"l5IStroLeP O"l5IC""Para'eter a'e;""troLe"P <000000O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe82#5t3"P +O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe8l# eRo# "P rou 5O/"l5IC""Para'eterP O/"l5IStroLeP ...

Tabela 3.7: Exemplo SLD

3.3 Resumo e Concluses


Este captulo est dividido em duas seces. Comeam por ser identificadas as lacunas do sistema Scatex+ que dificultam o suporte de visualizao de mapas. Na seco seguinte indicado a arquitectura proposta como resposta.

27

4 Implementao

Este captulo dedicado a expor pormenores de implementao da metodologia proposta no capitulo anterior. So apresentadas diferentes formas de importar dados geogrficos de teste. So apresentadas as alteraes necessrias ao Draw e como foi estilizado o mapa de estradas.

4.1 Integrao de mapas de teste


O primeiro passo da validao da prottipo importar diferentes tipos de dados. As seces seguintes indicam como se importam os trs tipos de contedos geogrficos usados em testes.

4.1.1 Integrao de MDT


O Modelo Digital do Terreno (MDT) um mapa do tipo imagem em que cada pixel ou ponto corresponde a uma rea geogrfica de Portugal Continental. O valor desse pixel no um cdigo de cor mas sim o valor da altitude mdia dessa rea. No MDT usado cada pixel corresponde a 30m no terreno. Este mapa foi capturado e disponibilizado pela NASA gratuitamente e no formato GeoTiff. Este mapa usado no mbito deste trabalho para controlo de projeco no visualizador.

Fonte Data Formato

3ttpI//:log.7#a"#g.%o'/-0(0/0+/'5t8+0'8para8 portugal/ -, Novembro, -0(0 GeoT*AA, ra"ter

Projeco )a&$or58Gau"" Datu' ,+

Tabela 4.1: Dados MDT


28

Implementao

O nico tratamento de imagem dado ao mapa a gerao de perfil de relevo com base em sombras a partir da informao da altitude. A ferramenta usada o gdaldem da biblioteca GDAL.
CISportugal!terra# S'5tPg5al5e' 3#ll"3a5e 8Q 6 '5t.t#$ pt.t#$ 0...(0...-0...+0...60.../0...60...,0...80...90...(00 8 5o e.a

Tabela 4.2: Execuo do comando gdaldem


gerado o ficheiro pt.tif o qual importado para o GeoServer.

4.1.2 Integrao do CAOP


O mapa Carta Administrativa Oficial de Portugal (CAOP) representa a fronteira territorial soberana, fronteiras geogrficas naturais e fronteiras administrativas (freguesias e concelhos). disponibilizada gratuitamente pelo Instituto Geogrfico Portugus. Este mapa do tipo vectorial. Este mapa importante porque usado como controlo. A rede elctrica actualmente desenhada, contm tambm linhas auxiliares que identificam as fronteiras portuguesas. Essas linhas tm que estar sobrepostas com as do CAOP.
Fonte 3ttpI//222.#geo.pt /pro5uto" /%a5a"tro /%aop /5o2 loa5 /CAOP-0(0!S3ape" /Co t!tro%o!CAOP-0(0.Q#p -, 4o7e':ro, -0(0 ERS* S3ape$#le, 7e%tor#al EPSGI+6,+

Data Formato Projeco

Tabela 4.3: Dados CAOP


As instrues seguintes indicam como importar os dados para a base de dados Postgres. Preparar a base de dados:
DIS"o$tSPo"tgreST=S8.6S:# P%reateu"er 8U po"tgre" %aop S3all t3e e2 role :e a "uperu"erM ?&/ @ & DIS"o$tSPo"tgreST=S8.6S:# P%reate5: 8U po"tgre" 8E UTA8 8O %aop %aop DIS"o$tSPo"tgreST=S8.6S:# P%reatela g 8U po"tgre" plpg"Nl %aop DIS"o$tSPo"tgreST=S8.6S:# Pp"Nl 8U po"tgre" 85 %aop 8$ ..S"3areS%o tr#:Spo"tg#"8(./Spo"tg#"."Nl

Tabela 4.4: Instrues preparar o Postgres para o CAOP


29

Implementao

Do ficheiro Cont_troco_CAOP2010.zip extrair o seu contedo para c:\. Correr a aplicao Shape File to PostGIS Importer. Esta aplicao instalada juntamente com o PostgresSQL. Os seguintes parmetros so necessrios para a correcta importao:
U"er a'e Data:a"e SR*D S3ape$#le ; ; ; ; po"tgre" %aop +,6+ %ISCo t!AA5!CAOP-0090SCo t!AA5!CAOP-0090."3p

Tabela 4.5: Parmetros para importao da CAOP

4.1.3 Integrao da rede viria


A OpenStreetMaps (OSM) um projecto colaborativo de pessoas annimas com o objectivo de captura e catalogao de informao relativa a estradas e outros pontos de interesse. O resultado uma base de dado com contedo grtis. So disponibilizados num formato XML do tipo vectorial. O objectivo deste tipo de mapas avaliar as capacidades de definio de estilos do GeoServer segundo o protocolo SLD e analise da qualidade do desenho quando colocadas no ecr.
Fonte Data Formato Projeco 3ttpI//5o2 loa5".%lou5'a5e.%o'/ europe/ portugal/ portugal.o"'.:Q-, 4o7e':ro, -0(0 OSM, 7e%tor#al EPSGI909(8

Tabela 4.6: Dados OSM


As seguintes instrues so necessrias para importar as estradas, para a base de dados Postgres.

30

Implementao
DIS"o$tSPo"tgreST=S8.6S:# P%reateu"er 8U po"tgre" o"' S3all t3e e2 role :e a "uperu"erM ?&/ @ & DIS"o$tSPo"tgreST=S8.6S:# P%reate5: 8U po"tgre" 8E UTA8 8O o"' g#" DIS"o$tSPo"tgreST=S8.6S:# P%reatela g 8U po"tgre" plpg"Nl g#" %reatela gI la guage "plpg"Nl" #" alrea5& # "talle5 # 5ata:a"e "g#"" DIS"o$tSPo"tgreST=S8.6S:# Pp"Nl 8U po"tgre" 85 g#" 8$ "DIS"o$tSPo"tgreST=S8.6S"3areS%o tr#:Spo"tg#"8(./Spo"tg#"."Nl" DIStra "$erU %#a"So"'-pg"NlSo"'-pg"NlPo"'-pg"Nl 8% 85 o"' 8U po"tgre" 8E 8) lo%al3o"t 8P /6+- DIS2orL"pa%eS'apa"Sportugal.o"'

Tabela 4.7: Importao OSM para Postgres


Aps importao necessrio converter da projeco EPSG:90918 para a EPSG:3763. As seguintes instrues so executadas dentro da linha de comando do PLSQL.
p"Nl 8U po"tgre" p"NlP up5ate pla et!o"'!po# t "et 2a&;tra "$or'?2a&,+,6+@B p"NlP up5ate pla et!o"'!l# e "et 2a&;tra "$or'?2a&,+,6+@B p"NlP up5ate pla et!o"'!pol&go "et 2a&;tra "$or'?2a&,+,6+@B

p"NlP up5ate pla et!o"'!roa5" "et 2a&;tra "$or'?2a&,+,6+@B p"NlP up5ate geo'etr&!%olu' " "et "r#5;+,6+ 23ere $!ta:le! a'e;Gpla et!o"'!po# tGB p"NlP up5ate geo'etr&!%olu' " "et "r#5;+,6+ 23ere $!ta:le! a'e;Gpla et!o"'!l# eGB p"NlP up5ate geo'etr&!%olu' " "et "r#5;+,6+ 23ere $!ta:le! a'e;Gpla et!o"'!roa5"GB p"NlP %o''#tB

Tabela 4.8: Converso da projeco OSM

4.2 Optimizao de mapas via TileCache

31

Implementao Os primeiros testes de consulta de informao via protocolo WMS, revelaram um consumo de CPU excessivo e tempo de resposta de desenho superior a 5 segundos para obter um mapa de estradas resoluo de 1280x1024 pixels. Procedeu-se uma pequena analise do ambiente de teste para descubrir qual era o processo mais solicitado. Foram realizadas vrias operaes manuais de zoom no mapa enquanto se observava a taxa de ocupao do CPU via ferramenta Process Explorer 10. Esta ferramenta revelou que era o processo do GeoServer (o gerador de imagens) que ocupava por completo o CPU por alguns segundos. Empiramente este comportamento no aceitvel tendo em conta que numa instalao actual do Scatex+, podem existir 20 clientes Draw a aceder a mapas em simultneo. Foi incorporado no sistema a ferramenta TileCache. O objectivo foi melhorar o desempeho atravs da cache de imagens pr-geradas. Os mesmo testes anteriores comprovaram que a taxa de ocupao global de CPU baixou para os 20%, ocupado maioritariamente pelo Draw. O intervalo de tempo entre uma aco de zoom no ecr e o desenho do mapa ficou sempre em menos de 3 segundos. A Tabela 4.9 indica a configurao do TileCache usada para testes.
[%a%3e1 t&pe;D#"L :a"e;DIS2orL"pa%eSt#le%a%3e8-.(0S%a%3e[pt!%aopa1 t&pe;EMS url;3ttpI//lo%al3o"tI8080/geo"er7er/2'"M e>te "#o ;p g la&er";pt!%aopa ::o>;8((9(9(.608,8+00606.806,(6-(-9.08(,-,608+.,6, "r";EPSGI+,6+ le7el";-0 "#Qe;-/6,-/6

Tabela 4.9: Configurao do TileCache

4.3 Draw
As alteraes ao nvel do Draw consistiram em fazer chamadas biblioteca GDAL para obter as imagens dos mapas. Todo o cdigo necessrio est descrito na integra no Anexo A: Draw e GDAL. Nesta seco s ser focado as partes mais importantes. A implementao desta parte baseada na aplicao de teste do prprio GDAL, denominada por gdal_translate11. Esta aplicao demonsta o uso da API em que obtem mapas via protocolo WMS/TMS, de um servidor externo e gera um ficheiro no disco local com esse

10 http://technet.microsoft.com/en-us/sysinternals/bb896653 11 http://www.gdal.org/gdal_translate.html

32

Implementao contedo. No caso desta integrao, no necessrio criar o ficheiro. Basta gerar a imagem em memria sem qualquer tipo de codificao aplicada (PNG ou JPG). O primeiro passo indicar biblioteca parmetros sobre o mapa que pretendido. A funo implementada : DREJ#e2II:u#l5!>'l$#le!$or!g5al. Para isso, necessrio definir um texto no formato XML essa configurao como indicado como exemplo na Tabela 4.10. Nela definido: o endereo do servidor de mapas (o GeoServer), o nome do mapa (o CAOP), e parmetros de definio da bounding box do mapa e o protocolo a usar (o TMS). As coordenadas da rea do mapa a mostrar so obtidas directamente da aplicao do Draw. Este j tem funes que convertem tamanhos de janelas em pixels para a projeco EPSG:3763, usada nos mapas. Esta configurao gerada num ficheiro virtual. No tem existncia fsica no disco.

OGDA=!EMSP OSer7#%e a'e;"TMS"P OSer7erUrlP3ttpI//lo%al3o"tI8888/O/Ser7erUrlP O=a&erPpt!%aopaO/=a&erP OAor'atPp gO/Aor'atP O/Ser7#%eP ODataE# 5o2P OUpper=e$t9P8((9(9(.608000O/Upper=e$t9P OUpper=e$t0P-,608+.,6,000O/Upper=e$t0P O=o2erR#g3t9P(690/-.8,,/00O/=o2erR#g3t9P O=o2erR#g3t0P8+00606.806000O/=o2erR#g3t0P OT#le=e7elP-0O/T#le=e7elP OT#leCou t9P(O/T#leCou t9P OT#leCou t0P-O/T#leCou t0P O/DataE# 5o2P OProRe%t#o PEPSGI+,6+O/ProRe%t#o P OHlo%LS#Qe9P-/6O/Hlo%LS#Qe9P OHlo%LS#Qe0P-/6O/Hlo%LS#Qe0P OHa 5"Cou tP6O/Ha 5"Cou tP O/GDA=!EMSP

Tabela 4.10: Pedido via GDAL

Esse

ficheiro

virtual

criado

entregue

ao

GDAL

via

funes:

VJS*A#leAro'Me'Hu$$er?...@BW e VGDA=Ope S3are5? p"QSour%e, GA!Rea5O l& @.

As intrues da funo GDA=GetData"et?...@ so uma cpia do cdigo do gdal_translate, at ao passo de construo da imagem na memria. As funes usadas para essa construo so:

33

Implementao
:a 5Re58P Ra"ter*O?GA!Rea5, 0,0, O9S#Qe, O0S#Qe, #'ageDataD0, O9S#Qe, O0S#Qe,GDT!H&te,6, O9S#Qe K 6@B :a 5Gree 8P Ra"ter*O?GA!Rea5, 0,0, O9S#Qe, O0S#Qe, #'ageDataD(, O9S#Qe, O0S#Qe,GDT!H&te,6, O9S#Qe K 6@B :a 5Hlue8P Ra"ter*O?GA!Rea5, 0,0, O9S#Qe, O0S#Qe, #'ageDataD-, O9S#Qe, O0S#Qe,GDT!H&te,6, O9S#Qe K 6@B :a 5Alp3a8P Ra"ter*O?GA!Rea5, 0,0, O9S#Qe, O0S#Qe, #'ageDataD+, O9S#Qe, O0S#Qe,GDT!H&te,6, O9S#Qe K 6@B

Tabela 4.11: Funes de leitura por banda


Um pixel representado por 4 bytes. Cada byte corresponde a uma componente de cor RGB (vermelho, verde e azul), e nvel de transparncia ( alpha). Para a biblioteca GDAL, cada pixel no corresponde obrigatoriamente a uma imagem. Cada conjunto de bytes para um pixel, pode corresponder a valores de altitude ou indice populacional e no um cdigo RGB. Para a implementao foi realizada a simplificao de considerar que o GDAL recebe sempre imagens no formato RGB. construdo uma estrutura em memria #'ageData com essa imagem, a qual entregue biblioteca ILOG via funo *l7H#t'ap?...@. Esta usada automaticamente pelo Draw para colocar a imagem do mapa como fundo da janela.

4.4 SLD
Foi realizada a experincia de estilizao de mapas de estradas via SLD. No Anexo C, encontramos um excerto do ficheiro criado. O teste consistiu em trs partes da estilizao: desenho com base na escala da imagem, desenho em funo do tipo de entidade e colocao de nomes de ruas. A base de dados da OpenStreetMaps define vrios tipos de estradas 12. No SLD de teste, essas estradas foram agrupadas em trs tipos para simplificao, como indicado na Tabela 4.12.

12 http://wiki.openstreetmap.org/wiki/Key:highway

34

Implementao
Tipo de Estrada Auto-estradas Estradas Identificaes usadas no OpenStreetMaps
'otor2a&, 'otor2a&!l# L, tru L, tru L!l# L tert#ar&, tert#ar&!l# L, Ru %t#o , ro 5a:out, l#7# g!"treet, '# or, pat3, pe5e"tr#a , pla e5, pr#'ar&, pr#'ar&!l# L, re"#5e t#al, roa5, "e%o 5ar&, "e%o 5ar&!l# L

Ruas ou diversos

:r#5le2a&, %o "tru%t#o , $or5, propo"e5, ra%e2a&, "ta#r%a"e, "tep", tra%L, u %la""#$#e5B "e%o 5ar&,

%&%le2a&, $oot2a&, re"t!area, "er7#%e, u %la""#$#e5, u "ur$a%e5

Tabela 4.12: Identificaes usadas pelo OpenStreetMaps


O excerto de cdigo SLD da Tabela 4.13 indica como realizada essa primeira filtragem. Neste s indicado que a regra definda s se aplica s autoestradas atravs dos elementos XML: Filter e PropertyIsEqualTo. O passo seguinte definir o nvel de escala para qual a regra se aplica. So usados os elementos Ma>S%aleDe o'# ator e M# S%aleDe o'# ator.

35

Implementao
O"l5IRuleP Oog%IA#lterP Oog%IOrP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralP'otor2a&O/og%I=#teralP O/og%IPropert&*"ENualToP

O"l5IMa>S%aleDe o'# atorP(000000 O/"l5IMa>S%aleDe o'# atorP O"l5IM# S%aleDe o'# atorP(00000 O/"l5IM# S%aleDe o'# atorP O"l5I=# eS&':ol#QerP O"l5IStroLeP O"l5IC""Para'eter a'e;""troLe"P <000000O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe8 2#5t3"P+ O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe8 l# eRo# "Prou 5O/"l5IC""Para'eterP O/"l5IStroLeP O/"l5I=# eS&':ol#QerP O"l5ITe>tS&':ol#QerP O"l5I=a:elP Oog%IPropert&4a'ePre$ O/og%IPropert&4a'eP O/"l5I=a:elP O"l5IAo tP OC""Para'eter a'e; "$o t8$a'#l&"PAr#alO/C""Para'eterP O/"l5IAo tP O"l5IJe 5orOpt#o a'e;"$ollo2=# e"P true O/"l5IJe 5orOpt#o P O"l5I=a:elPla%e'e tP O"l5I=# ePla%e'e t /P O/"l5I=a:elPla%e'e tP O/"l5ITe>tS&':ol#QerP
O/"l5IRuleP

Tabela 4.13: Definio SLD do elemento a desenhar


Por fim indicado como desenhar a estrada. usado o elemento =# eS&':ol#Qer para indicar que ser representado por uma linha. Nessa linha indicado o tamanho do trao de trs pixies e a forma do inicio e fim desse segmento dever ser redonda. Associado estrada colocado uma frase com o nome dessa rua. O nome vem associado propriedade ref da base de dados. O elemento XML usado o Te>tS&':ol#Qer na qual indicamos como realizado a colocao do nome da estrada no ecr.

36

Implementao O resultado visual pode ser consultado no Erro: Origem da referncia no encontradaErro: Origem da referncia no encontrada. Neste existem vrias capturas visuais da janela que representam desde da rea do Algarve at uma aproximao a ruas de Faro. Um facto curioso s evidente aps os primeiros testes, as linhas de mdia tenso representadas no SCATEX+ como tracejado, estarem coincidentes com as estradas. Isto acontece na realidade porque as vias so usadas para passar esses cabos no subsolo. A Figura 15 demonstra esse resultado obtido para a cidade de Faro.

4.5 Resultados obtidos


Esta seco apresenta o resultado visual final da integrao dos mapas como pano de fundo para a rede elctrica do Scatex+.

4.5.1 CAOP
Na Figura 14 mostrado o resultado da integrao do mapa CAOP (fronteiras e freguesias) com a rede elctrica. A rea observada a da Grande Lisboa e Pennsula de Setbal. Nesta imagem pode ser observado que os limites de Portugal Continental coincidem com as nativas ao visualizador. Esta a indicao que o mapa gerado est na projeco certa.

Figura 14: CAOP

37

Implementao

Figura 15: Autoestradas Algarve

As linhas a rosa, representam linhas de alta tenso e as circunferncias representam subestaes. O utilizador do sistema continua a operar nessa rede sem alteraes.

4.5.2 Estradas
A sequncia das quatro figuras seguintes, mostra a integrao do mapa de estradas com a rede elctrica.

38

Implementao Cada imagem uma aproximao sucessivamente crescente desde a rea do Algarve at cidade de Faro. O objectivo deste mapa foi demonstrar as capacidades de estilizao das estradas via SDL. Neste so seleccionados os elementos a desenhar em funo do nvel de zoom crescente. A partir de um determinado nvel, j possvel colocar o desenho dos nomes das estradas no mapa. Imagens com linhas a tracejado e os tringulos representam respectivamente as linhas de baixa tenso e postos de transformao.

Figura 16: Ruas urbanas

Figura 17: Nomes de ruas

39

Implementao

4.6 Resumo
Neste capitulo so referidos pormenores de implementao. As trs grandes tarefas realizadas foram a importao de dados, a visualizao e a estilizao de mapas. Foram importados com sucesso trs tipo de mapas diferentes (dois do tipo vectorial e outro do tipo raster) e com diferentes projeces de origem. Os mapas vectoriais foram importados para o Postgres enquanto a imagem foi tratada directamente pelo GeoServer. A visualizao consistiu em provar que o conceito de obter mapas de um servidor remoto funciona e dentro dos tempos aceitveis. Foi testado tambm as capacidade de estilizao de mapas via SLD. No fim, o prototipo implementado demonstrou que a abordagem delineada funcionou como previsto.

40

5 Concluses e Trabalho Futuro

Este captulo apresenta as contribuies deste trabalho para o problema proposto assim como propostas de desenvolvimentos futuros.

5.1 Objectivo e resultados


O objectivo desta dissertao era encontrar um processo de integrar informao geogrfica diversa num visualizar da rede elctrica de um sistema SCADA/DMS. Basicamente pretendiase visualizar mapas diversos como pano de fundo da rede elctrica. Foi realizado um estudo das vrias vertentes que compem um sistema SIG em geral. Foi identificado que elementos geogrficos capturados podem ser do tipo vectorial ou raster. Cada um destes representado por dezenas de formatos ou suportes de informao. Esta informao precisa de persistir num sistema e ser facilmente manipulado e interrogada. A soluo para isto consistiu em usar uma base de dados espacial baseada em Postgres/Postgis. Todos os contedos analisados so possveis de serem inseridos nesse sistema. Este por sua vez disponibiliza a interface SQL como standard conhecido para manipulao e interrogao de dados. A outra vertente identificada era como desenhar os mapas e os colocar no visualizador. Optou-se por introduzir um componente externo, denominado por Geoserver. A responsabilidade deste interrogar a base de dados e gerar imagens a partir dos elementos guardados. A especificao de como desenhar esses elementos definida atravs da linguagem SLD. A adaptao do visualizador consistiu pedir ao Geoserver para gerar uma imagem em tempo-real, para a rea visvel no ecr. Esta tarefa possvel com o recurso biblioteca GDAL e ao protocolo WMS de acesso ao Geoserver. Por fim foi implementada uma optimizao em complemento com a soluo anterior. Em vez do Geoserver, responder a cada pedido com o redesenho da imagem, foi introduzido o componente TileCache para guarda imagens pr-geradas. Desta forma o tempo de obteno de uma imagem foi minimizado de 10 segundos para 3 segundos. 41

Concluses e Trabalho Futuro

O prottipo foi testado e demonstrado com sucesso tendo sido importados vrios tipos de dados cuja visualizao foi correctamente integrada. Toda as partes da soluo no apresentam custos de licenciamento permitindo flexibilidade na sua comercializao e na definio de margens. O nico custo identificado so os custos dos contedos de interesse para o cliente final.

5.2 Trabalho Futuro


O problema foi identificado e os objectivos foram cumpridos. O desempenho cumpre os requisitos mas existe ainda espao para desenvolvimentos e experincias futuras. Na vertente do desempenho ainda se pode fazer os seguintes desenvolvimentos: pedir os mapas assincronamente e fazer cache de imagens no cliente. A vantagem do pedidos assncronos o desenho da rede ser o mais imediato possvel. esse desenho que crtico para o operador e no o mapa. Por isso o compasso de espera existente enquanto criado e copiado o mapa do servidor pode desaparecer. Quanto cache de imagens o objectivo no repetir os pedidos de blocos de imagens quando o cliente j sabe partida que os tens em memria. Desta forma espera-se tornar a operao arrasto da rede mais fluda. Por fim, fica por fazer a experincia de importar os dados da rede elctrica para a arquitectura descrita neste trabalho. Isto abriria duas possibilidades futuras. Numa a rede podia ser visualizada por mais aplicaes ( browsers, google earth), para alm da actual. Outra possibilidade seria o potencial de estudos da integrao da rede com o ambiente usando as ferramentas de anlise espacial facultadas pela arquitectura.

42

Referncias
[ERSI] [GIS] [Jiaju04] ERSI. Utility GISMore Than Just AM/FM, www.esri.com/library/whitepapers/pdfs/utility-gis.pdf, Consulta em 2010/Dez What is GIS?, http://www.gis.com/content/what-gis, Consulta em 2010/Dez Jiaju Qiu and Xiaomeng Bian, Xiaojun Li. Intelligent Design of Power Transmission Lines Based on 3D GIS. In Proceedings of the 5 World Congress on Intelligent Control and Automation, 2004, pp. 5125-5128 Vol.6

[Naganobu03] Naganobu, M., S. Nishiwaki, H. Yasuma, R. Matsukura, Y. Takao, K. Taki, T. Hayashi ,Y. Watanabe, T. Yabuki, Y. Yoda, Y. Noiri, M. Kuga, K. Yoshikaw, N. Kokubun, H. Murase, K. Matsuoka, and K. Ito. Interactions between oceanography, krill and baleen whales in the Ross Sea and Adjacent Waters. In 2003. [PTGRID] Cliff Mugnier. The Portuguese Republic.. In PHOTOGRAMMETRIC ENGINEERING & REMOTE SENSING, April 2002. [Rappenglck99] Michael A. Rappenglck. Palaeolithic Timekeepers Looking At The Golden Gate Of The Ecliptic; The Lunar Cycle And The Pleiades In The Cave Of Lascaux. In , pp. 391-404. , 1999. [SLD] [TMS] Open GIS Consortium Inc. Styled Layer Descriptor Implementation Specification. , , 2002, http://www.opengeospatial.org/standards/sld, Consultado em 2010/Dez. OSGeo. Tile Map Service Specification, 1.0, http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification, Consulta em 2011/Dez

[Wendou04] Wendou AN, Caixin SUN, Quan ZHOU, Ji YANG. GIs Based Multi-Level Intelligent Fault Diagnosis System on Electric Power Equipment, 2004, Pp 398 401, Electrical Insulation, 2004. Conference Record of the 2004 IEEE International Symposium

43

Draw e GDAL

Anexo A: Draw e GDAL

Nesta seco descrito as adaptaes necessrias ao visualizador DRAW para usar a biblioteca GDAL.

A.1 Configurao XML


O seguinte texto foi usado para indicar biblioteca GDAL, os parmetros necessrios para obter um mapa do servidor. Est no formato XML.
OGDA=!EMSP OSer7#%e a'e;"TMS"P OSer7erUrlP3ttpI//lo%al3o"tI8888/O/Ser7erUrlP O=a&erPpt!%aopaO/=a&erP OAor'atPp gO/Aor'atP O/Ser7#%eP ODataE# 5o2P OUpper=e$t9P8((9(9(.608000O/Upper=e$t9P OUpper=e$t0P-,608+.,6,000O/Upper=e$t0P O=o2erR#g3t9P(690/-.8,,/00O/=o2erR#g3t9P O=o2erR#g3t0P8+00606.806000O/=o2erR#g3t0P OT#le=e7elP-0O/T#le=e7elP OT#leCou t9P(O/T#leCou t9P OT#leCou t0P-O/T#leCou t0P O/DataE# 5o2P OProRe%t#o PEPSGI+,6+O/ProRe%t#o P OHlo%LS#Qe9P-/6O/Hlo%LS#Qe9P OHlo%LS#Qe0P-/6O/Hlo%LS#Qe0P OHa 5"Cou tP6O/Ha 5"Cou tP O/GDA=!EMSP

Os nicos parmetros alterados dinmicamente so os relacionados com a definio da janela de visualizao (Upper=e$t9, Upper=e$t0, =o2erR#g3t9, =o2erR#g3t0). 44

Draw e GDAL

A.1 gdal_utils.hxx
<#$ X5e$# e5?DRE!GDA=!UT*=S!)99@ <5e$# e DRE!GDA=!UT*=S!)99 <# %lu5e "g5al!pr#7.3" %la"" *l7D#"pla&B CP=Err GDA=GetData"et? u "#g e5 %3ar K #'ageData, *l7D#"pla&K pD#"pla&, %o "t %3ar Kp"QA#le a'e, %o "t %3ar Kp"QDe"t, 5ou:le 5$U=9, 5ou:le 5$U=0, 5ou:le 5$=R9, 5ou:le 5$=R0, # t O9S#Qe, # t O0S#Qe @B <e 5#$

A.2 gdal_utils.cxx
<5e$# e CP=!D== !!5e%l"pe%?5ll#'port@ <# %lu5e "g5al!ut#l".3" <# %lu5e "g5al!pr#7.3" <# %lu5e "%pl!7"#.3" <# %lu5e "%pl!%o 7.3" <# %lu5e "%pl!"tr# g.3" <# %lu5e "ogr!"pat#alre$.3" <# %lu5e "7rt5ata"et.3" <# %lu5e O:u"/:u".3>>P <# %lu5e "7#e2.3>>" //<# %lu5e ""t&le!'a ager.3>>"

//CP=!CJS*D?"Y*5I g5al!tra "late.%pp (8/,6 -0(080(8(, --I+-I-6Z rouault Y"@B "tat#% 7o#5 Atta%3Meta5ata? GDA=Data"et), %3ar KK @B "tat#% # t :Su:Call ; AA=SEB

/KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK/ /K Pro>&Ma# ?@ K/ /KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK/

45

Draw e GDAL
CP=Err GDA=GetData"et? u "#g e5 %3ar K #'ageData, *l7D#"pla&K pD#"pla&, %o "t %3ar Kp"QA#le a'e, %o "t %3ar Kp"QDe"t, 5ou:le 5$U=9, 5ou:le 5$U=0, 5ou:le 5$=R9, 5ou:le 5$=R0, # t O9S#Qe, # t O0S#Qe @ [ %o "t %3ar Kp"QSour%e ; p"QA#le a'eB //%o "t %3ar Kp"QDe"t ; "7o#5.'e'"B %o "t %3ar Kp"QAor'at ; "P4G"B GDA=Data"et) 3Data"etB # t #B # t Ra"ter9S#Qe, Ra"ter0S#QeB GDA=Dr#7er) 3Dr#7erB # t Kpa Ha 5=#"t ; 4U==, Ha 5Cou t ; 0, :De$Ha 5" ; TRUEB 5ou:le a5$GeoTra "$or'[61B GDA=DataT&pe eOutputT&pe ; GDT!U L o2 B %3ar Kp"QO9S#Qe;4U==, Kp"QO0S#Qe;4U==B %3ar KKpap"QCreateOpt#o " ; 4U==B # t a Sr%E# [61, :Str#%t ; AA=SEB %o "t %3ar Kp"QProRe%t#o B # t :S%ale ; AA=SE, :)a7eS%aleSr% ; AA=SE, :U "%ale;AA=SEB 5ou:le 5$S%aleSr%M# ;0.0, 5$S%aleSr%Ma>;-//.0B 5ou:le 5$S%aleD"tM# ;0.0, 5$S%aleD"tMa>;-//.0B %3ar KKpap"QMeta5ataOpt#o " ; 4U==B %3ar Kp"QOutputSRS ; 4U==B # t :Tu#et ; TRUE, :GotHou 5" ; AA=SEB GDA=Progre""Au % p$ Progre"" ; GDA=Ter'Progre""B # t GCPCou t ; 0B GDA=!GCP Kpa"GCP" ; 4U==B # t #Sr%A#leArg ; 8(, #D"tA#leArg ; 8(B # t :Cop&Su:Data"et" ; AA=SEB 5ou:le a5$U==R[61 ; [ 0,0,0,0 \B # t :Set4oData ; AA=SEB 5ou:le 5$4oDataReal ; 0.0B # t RGHE>pa 5 ; 0B

a a a a

Sr%E# Sr%E# Sr%E# Sr%E#

[01 [(1 [-1 [+1

; ; ; ;

0B 0B 0B 0B

CP=SetCo $#gOpt#o ? "CP=!DEHUG", "O4" @B CP=SetCo $#gOpt#o ? "CP=!T*MESTAMP", "O4" @B CP=SetCo $#gOpt#o ? "GDA=!CAC)EMA9", "66" @B 5$U=9 ; 5$U=9 / (000.0B 5$U=0 ; 5$U=0 / (000.0B 5$=R9 ; 5$=R9 / (000.0B

46

Draw e GDAL
5$=R0 ; 5$=R0 / (000.0B

/K 88888888888888888888888888888888888888888888888888888888888888888888 K/ /K Atte'pt to ope "our%e $#le. K/ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ 3Data"et ; GDA=Ope S3are5? p"QSour%e, GA!Rea5O l& @B #$? 3Data"et ;; 4U== @ [ $pr# t$? "t5err, "GDA=Ope $a#le5 8 ]5S ]"S ", CP=Get=a"tError4o?@, CP=Get=a"tErrorM"g?@ @B //GDA=De"tro&Dr#7erMa ager?@B retur CE!Aa#lureB \ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ /K Colle%t "o'e # $or'at#o $ro' t3e "our%e $#le. K/ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ Ra"ter9S#Qe ; GDA=GetRa"ter9S#Qe? 3Data"et @B Ra"ter0S#Qe ; GDA=GetRa"ter0S#Qe? 3Data"et @B #$? X:Tu#et @ pr# t$? "* put $#le "#Qe #" ]5, ]5S ", #$? a Sr%E# [-1 ;; 0 FF a Sr%E# [+1 ;; 0 @ [ a Sr%E# [-1 ; Ra"ter9S#QeB a Sr%E# [+1 ; Ra"ter0S#QeB \ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ /K Hu#l5 :a 5 l#"t to tra "late K/ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ #$? Ha 5Cou t ;; 0 @ [ Ha 5Cou t ; GDA=GetRa"terCou t? 3Data"et @B #$? Ha 5Cou t ;; 0 @ [ $pr# t$? "t5err, "* put $#le 3a" o :a 5", a 5 "o %a ot :e tra "late5.S " @B //GDA=De"tro&Dr#7erMa ager?@B retur CE!Aa#lureB \ pa Ha 5=#"t ; ?# t K@ CP=Mallo%?"#Qeo$?# t@K Ha 5Cou t@B $or? # ; 0B # O Ha 5Cou tB #DD @ pa Ha 5=#"t[#1 ; #D(B \ el"e [ //GDA=De"tro&Dr#7erMa ager?@B retur CE!Aa#lureB \ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ /K Co'pute t3e "our%e 2# 5o2 $ro' t3e proRe%te5 "our%e 2# 5o2 K/ /K #$ t3e proRe%te5 %oor5# ate" 2ere pro7#5e5. 4ote t3at t3e K/

Ra"ter9S#Qe,

Ra"ter0S#Qe @B

47

Draw e GDAL
/K proRe%te5 %oor5# ate" are # ul>, ul&, lr>, lr& $or'at, /K 23#le t3e a Sr%E# #" >o$$, &o$$, >"#Qe, &"#Qe 2#t3 t3e /K >o$$,&o$$ :e# g t3e ul>, ul& # p#>el/l# e. /K 88888888888888888888888888888888888888888888888888888888888888888888 #$? 5$U=9 X; 0.0 CC 5$U=0 X; 0.0 CC 5$=R9 X; 0.0 CC 5$=R0 X; 0.0 @ [ 5ou:le a5$GeoTra "$or'[61B GDA=GetGeoTra "$or'? 3Data"et, a5$GeoTra "$or' @B #$? a5$GeoTra "$or'[-1 X; 0.0 CC a5$GeoTra "$or'[61 X; 0.0 @ [ $pr# t$? "t5err, "T3e 8proR2# opt#o 2a" u"e5, :ut t3e geotra "$or' #"S " "rotate5. T3#" %o $#gurat#o #" ot "upporte5.S " @B GDA=Clo"e? 3Data"et @B CP=Aree? pa Ha 5=#"t @B //GDA=De"tro&Dr#7erMa ager?@B retur CE!Aa#lureB \ a Sr%E# [01 ??5$U=9 a Sr%E# [(1 ??5$U=0 ; 8 ; 8 ?# t@ a5$GeoTra "$or'[01@ / a5$GeoTra "$or'[(1 D 0.00(@B ?# t@ a5$GeoTra "$or'[+1@ / a5$GeoTra "$or'[/1 D 0.00(@B K/ K/ K/ K/

a Sr%E# [-1 ; ?# t@ ??5$=R9 8 5$U=9@ / a5$GeoTra "$or'[(1 D 0./@B a Sr%E# [+1 ; ?# t@ ??5$=R0 8 5$U=0@ / a5$GeoTra "$or'[/1 D 0./@B #$? X:Tu#et @ $pr# t$? "t5out, "Co'pute5 8"r%2# a Sr%E# [01, a Sr%E# [(1, a Sr%E# [-1, a Sr%E# [+1 @B

]5 ]5 ]5 ]5 $ro' proRe%te5 2# 5o2.S ",

#$? a Sr%E# [01 O 0 CC a Sr%E# [(1 O 0 CC a Sr%E# [01 D a Sr%E# [-1 P GDA=GetRa"ter9S#Qe?3Data"et@ CC a Sr%E# [(1 D a Sr%E# [+1 P GDA=GetRa"ter0S#Qe?3Data"et@ @ [ $pr# t$? "t5err, "Co'pute5 8"r%2# $all" out"#5e ra"ter "#Qe o$ ]5>]5.S ", GDA=GetRa"ter9S#Qe?3Data"et@, GDA=GetRa"ter0S#Qe?3Data"et@ @B retur CE!Aa#lureB \ \ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ /K Jer#$& "our%e 2# 5o2. K/ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ #$? a Sr%E# [01 O 0 CC a Sr%E# [(1 O 0 CC a Sr%E# [-1 O; 0 CC a Sr%E# [+1 O; 0 CC a Sr%E# [01 D a Sr%E# [-1 P GDA=GetRa"ter9S#Qe?3Data"et@ CC a Sr%E# [(1 D a Sr%E# [+1 P GDA=GetRa"ter0S#Qe?3Data"et@ @ [ $pr# t$? "t5err, "8"r%2# ]5 ]5 ]5 ]5 $all" out"#5e ra"ter "#Qe o$ ]5>]5S " "or #" ot3er2#"e #llegal.S ",

48

Draw e GDAL
a Sr%E# [01, a Sr%E# [(1, a Sr%E# [-1, a Sr%E# [+1, GDA=GetRa"ter9S#Qe?3Data"et@, GDA=GetRa"ter0S#Qe?3Data"et@ @B CE!Aa#lureB

retur \

/K 88888888888888888888888888888888888888888888888888888888888888888888 K/ /K A# 5 t3e output 5r#7er. K/ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ 3Dr#7er ; GDA=GetDr#7erH&4a'e? p"QAor'at @B /K ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K/ /K Create a 7#rtual 5ata"et. K/ /K ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K/ JRTData"et KpoJDSB /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ /K MaLe a 7#rtual %lo e. K/ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ poJDS ; ?JRTData"et K@ JRTCreate? O9S#Qe, O0S#Qe @B ... #$ ?poJDS ;; 4U==@ [ =OG ?STATUS OO "[GDA=1 ERRORI J#rtualDataSet #" GDA=Clo"e? 3Data"et @B CP=Aree? pa Ha 5=#"t @B CP=Aree? p"QOutputSRS @B #$? X:Su:Call @ GDA=Du'pOpe Data"et"? "t5err @B CS=De"tro&? pap"QCreateOpt#o " @B \ GDA=Ra"terHa GDA=Ra"terHa GDA=Ra"terHa GDA=Ra"terHa 5K 5K 5K 5K :a :a :a :a 5Re5 ; poJDS8PGetRa"terHa 5?(@B 5Gree ; poJDS8PGetRa"terHa 5?-@B 5Hlue ; poJDS8PGetRa"terHa 5?+@B 5Alp3a ; poJDS8PGetRa"terHa 5?6@B

ull. Retur " OO e 5lB@B

$or?# t :;(B : O; 6B DD:@ [ GDA=Ra"terHa 5K poHa 5* #t ; poJDS8PGetRa"terHa 5?:@B # t Ha 5Hlo%L9S#Qe, Ha 5Hlo%L0S#QeB poHa 5* #t8PGetHlo%LS#Qe? F Ha 5Hlo%L9S#Qe, F Ha 5Hlo%L0S#Qe @B =OG ?STATUS OO "[GDA=1 Hlo%L;" OO Ha 5Hlo%L9S#Qe OO ">" OO Ha 5Hlo%L0S#Qe OO " T&pe;" OO GDA=GetDataT&pe4a'e?poHa 5* #t8 PGetRa"terDataT&pe?@@ OO " Color* terp;" OO poHa 5* #t8PGetColor* terpretat#o ?@ OO e 5lB@B \ # t :a 5S#Qe ; 6B # t le gt3 ; O9S#Qe K CP=Err eErr ; CE!4o eB

O0S#Qe K :a 5S#QeB

49

Draw e GDAL
=OG ?STATUS OO "[GDA=1 eErr ; :a 5Re58 PRa"ter*O?GA!Rea5,0,0, O9S#Qe, 6@B eErr ; :a 5Gree 8 PRa"ter*O?GA!Rea5,0,0, O9S#Qe, 6@B eErr ; :a 5Hlue8 PRa"ter*O?GA!Rea5,0,0, O9S#Qe, 6@B eErr ; :a 5Alp3a8 PRa"ter*O?GA!Rea5,0,0, O9S#Qe, 6@B =OG ?STATUS OO "[GDA=1 Start rea5 :a 5I " OO e 5lB@B O0S#Qe,#'ageDataD0, O9S#Qe, O0S#Qe,GDT!H&te,6, O9S#Qe K

O0S#Qe,#'ageDataD(, O9S#Qe, O0S#Qe,GDT!H&te,6, O9S#Qe K

O0S#Qe,#'ageDataD-, O9S#Qe, O0S#Qe,GDT!H&te,6, O9S#Qe K

O0S#Qe,#'ageDataD+, O9S#Qe, O0S#Qe,GDT!H&te,6, O9S#Qe K E 5 rea5 :a 5I " OO eErr OO e 5lB@B

#$ ?eErr X; CE!4o e@ =OG ?STATUS OO "[GDA=1 ErrorI " OO CP=Get=a"tErrorM"g?@ OO "." OO e 5lB@B // CP=Aree? #'ageData @B #$ ? poJDS X; 4U== @ GDA=Clo"e? ?GDA=Data"et)@ poJDS @B #$ ? 3Data"et X; 4U== @ GDA=Clo"e? ?GDA=Data"et)@ 3Data"et @B CP=Aree? pa Ha 5=#"t @B CP=Aree? p"QOutputSRS @B #$? X:Su:Call @ GDA=Du'pOpe Data"et"? "t5err @B CS=De"tro&? pap"QCreateOpt#o " @B retur \ CE!4o eB

A.1 view.hxx
... DREDra2 O:Re%tK p=a"tDRERa"terMapB // EPR -0(0.06.-8 8 Map" "tat#% # t "! e>tMe'A#leB // EPR -0(0.06.-+ 8 Cou ter u"e5 a" a u #Nue // a'e $or a 'e' $#le ... // epr -0(0.06.(6 8 "tart 7o#5 reNue"tMap ?%o "t DREJ#e2Re%tF area@B DREDra2 O:Re%tK %reateGeoRa"ter ?%o "t DREJ#e2Re%tF area@B 7o#5 :u#l5!>'l$#le!$or!g5al ?EAAStr# gF "9'lCo te t", %o "t DREJ#e2Re%tF area@B // epr -0(0.06.(6 8 e 5 ...

A.1 view.cxx
... <5e$# e CP=!D== !!5e%l"pe%?5ll#'port@ t3#" ... <# %lu5e "g5al!ut#l".3" ...

// EPR 8 Ca Gt u"e GDA= l#: 2#t3out 5e$# e5

50

Draw e GDAL

7o#5 DREJ#e2II:u#l5!>'l$#le!$or!g5al ?EAAStr# gF "9'lCo te t", %o "t DREJ#e2Re%tF area @ [ *l7D#' 2 ; 2#5t3?@B *l7D#' 3 ; 3e#g3t?@B *lAloat *lAloat *lAloat *lAloat le$t9 ; area.le$t?@/(000B upper0 ; area.top?@/(000B lo2er0 ; area.:otto'?@/(000B r#g3t9 ; area.r#g3t?@/(000B

5ou:le "%ale ; getTra "$or'er?@8PgetS%aleAa%tor?@B #$ ?"%ale P 0.00-@ [ \

// get t3#" at ru t#'e EAAStr# g UR= ; "3ttpI//lo%al3o"tI8888/"B EAAStr# g =A0ERS ; "%aop!a 5!roa5""B "t5II"tr# g"trea' ""EB "t5II"tr# g"trea' "")B ""E OO 2B "") OO 3B EAAStr# g S#Qe9?""E."tr?@@B EAAStr# g S#Qe0?"")."tr?@@B "t5II"tr# "t5II"tr# "t5II"tr# "t5II"tr# ""U0 ""=9 ""=0 ""R9 OO OO OO OO g"trea' g"trea' g"trea' g"trea' ""=9B ""R9B ""U0B ""=0B

upper0B le$t9B lo2er0B r#g3t9B g g g g "=e$t9 ?""=9."tr?@@B "=o2er0?""=0."tr?@@B "R#g3t9 ?""R9."tr?@@B "Upper0 ?""U0."tr?@@B

EAAStr# EAAStr# EAAStr# EAAStr#

// START TMS "9'lCo te t" ; "OGDA=!EMSP"B "9'lCo te t" D; "OSer7#%e a'e;S"TMSS"P"B //"9'lCo te t" D; "OJer"#o P(.0.0O/Jer"#o P"B "9'lCo te t".appe 5?"OSer7erUrlP"@B "9'lCo te t".appe 5?UR=@B "9'lCo te t".appe 5?"O/Ser7erUrlP"@B //"9'lCo te t".appe 5?"OSRSPEPSGI+,6+O/SRSP"@B "9'lCo te t".appe 5?"O*'ageAor'atP#'age/p gO/*'ageAor'atP"@B //"9'lCo te t".appe 5?"OTra "pare tPTRUEO/Tra "pare tP"@B "9'lCo te t".appe 5?"O=a&erP"@B "9'lCo te t".appe 5?=A0ERS@B "9'lCo te t".appe 5?"O/=a&erP"@B "9'lCo te t".appe 5?"OSt&le"PO/St&le"P"@B

51

Draw e GDAL
"9'lCo te t".appe 5?"O/Ser7#%eP"@B "9'lCo te t".appe 5?"ODataE# 5o2P"@B "9'lCo te t".appe 5?"OUpper=e$t9P8((9(9(.608000O/Upper=e$t9P"@B "9'lCo te t".appe 5?"OUpper=e$t0P-,608+.,6,000O/Upper=e$t0P"@B "9'lCo te t".appe 5?"O=o2erR#g3t9P(690/-.8,,/00O/=o2erR#g3t9P"@B "9'lCo te t".appe 5?"O=o2erR#g3t0P8+00606.806000O/=o2erR#g3t0P"@B "9'lCo te t".appe 5?"OT#le=e7elP-0O/T#le=e7elP"@B "9'lCo te t".appe 5?"OT#leCou t9P(O/T#leCou t9P"@B "9'lCo te t".appe 5?"OT#leCou t0P-O/T#leCou t0P"@B "9'lCo te t".appe 5?"O/DataE# 5o2P"@B "9'lCo te t".appe 5?"OProRe%t#o PEPSGI+,6+O/ProRe%t#o P"@B "9'lCo te t".appe 5?"OHa 5"Cou tP6O/Ha 5"Cou tP"@B "9'lCo te t".appe 5?"OHlo%LS#Qe0P-/6O/Hlo%LS#Qe0P"@B "9'lCo te t".appe 5?"OHlo%LS#Qe9P-/6O/Hlo%LS#Qe9P"@B "9'lCo te t".appe 5?"O/GDA=!EMSP"@B // E4D TMS \ DREDra2 O:Re%tK DREJ#e2II%reateGeoRa"ter ?%o "t DREJ#e2Re%tF area@ [ =OG ?STATUS OO "Start reNue"t 'ap ..." OO e 5lB@B DREDra2 O:Re%tK pO:R ; 0B *l7D#' 2 ; 2#5t3?@B *l7D#' 3 ; 3e#g3t?@B *lAloat *lAloat *lAloat *lAloat le$t9 ; area.le$t?@B upper0 ; area.top?@B lo2er0 ; area.:otto'?@B r#g3t9 ; area.r#g3t?@B

=OG ?STATUS OO "J#e2 area geo %oor5# ate" " OO " le$t9I " OO le$t9 OO " upper0I " OO upper0 OO " lo2er0I " OO lo2er0 OO " r#g3t9I " OO r#g3t9 OO e 5lB@B *lDou:le *lDou:le *lDou:le *lDou:le pt::o>!le$t9 ; 8((9(9(608.0B pt::o>!r#g3t9 ; (6-(-908(.0B pt::o>!lo2er0 ; 8+00606806.0B pt::o>!upper0 ; -,608+,6,.0B

*lDou:le 5$U=9, 5$U=0, 5$=R9, 5$=R0B # t O9S#Qe, O0S#QeB :ool #"ToA5Ru"tP#>el" ; $al"eB #$ ?le$t9 O pt::o>!le$t9@ [ 5$U=9 ; pt::o>!le$t9B #"ToA5Ru"tP#>el" ; trueB \ el"e [ 5$U=9 ; le$t9B \ #$ ?r#g3t9 P pt::o>!r#g3t9@ [ 5$=R9 ; pt::o>!r#g3t9B #"ToA5Ru"tP#>el" ; trueB

52

Draw e GDAL
\ el"e [ 5$=R9 ; r#g3t9B \ #$ ?lo2er0 O pt::o>!lo2er0@ [ 5$=R0 ; pt::o>!lo2er0B #"ToA5Ru"tP#>el" ; trueB \ el"e [ 5$=R0 ; lo2er0B \ #$ ?upper0 P pt::o>!upper0@ [ 5$U=0 ; pt::o>!upper0B #"ToA5Ru"tP#>el" ; trueB \ el"e [ 5$U=0 ; upper0B \ #$ ?#"ToA5Ru"tP#>el" ;; true@ [ // %o 7ert ::o> %oor5 5o p#>el" *l7AloatPo# t po# tU= ?5$U=9, 5$U=0@B getTra "$or'er?@8Pappl&?po# tU=@B *l7AloatPo# t po# t=R ?5$=R9, 5$=R0@B getTra "$or'er?@8Pappl&?po# t=R@B // get p#>el" ?p>l@ 2#5t3 $ro' a:"olute p#>el" po"#t#o *l7Aloat $2#5t3P>l ; a:"?po# t=R.get9?@ 8 po# tU=.get9?@@B *l7Aloat $3e#g3tP>l ; a:"?po# tU=.get0?@ 8 po# t=R.get0?@@B 2 ; ?# t@%e#l?$2#5t3P>l@B 3 ; ?# t@%e#l?$3e#g3tP>l@B \ O9S#Qe ; 2B O0S#Qe ; 3B =OG ?STATUS OO "J#e2 area # p#>el"I " OO " O9S#Qe/2I " OO O9S#Qe OO " O0S#Qe/3I " OO O0S#Qe OO e 5lB@B =OG ?STATUS OO "J#e2 area a5Ru"te5 to ::o> " OO " le$t9/5$U=9I " OO 5$U=9 OO " upper0/5$U=0I " OO 5$U=0 OO " lo2er0/5$=R0I " OO 5$=R0 OO " r#g3t9/5$=R9I " OO 5$=R9 OO e 5lB@B /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ /K Hu#l5 >'l reNue"t K/ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ EAAStr# g >'lG5alPara'"B :u#l5!>'l$#le!$or!g5al ?>'lG5alPara'", area@B

53

Draw e GDAL
/K 88888888888888888888888888888888888888888888888888888888888888888888 K/ /K Ope >'l reNue"t K/ /K 88888888888888888888888888888888888888888888888888888888888888888888 K/ %3ar 7$#le4a'e[661B "pr# t$!"?7$#le4a'e, 66, "/7"#'e'/]u", "! e>tMe'A#leDD@B A*=E K$p ; JS*A#leAro'Me'Hu$$er?7$#le4a'e, ?GH&teK@>'lG5alPara'".a"STDStr# g?@.%!"tr?@, >'lG5alPara'".le gt3?@, AA=SE@B #$ ?$p ;; 4U==@ [ =OG ?STATUS OO "[GDA=1 De"tro& GDA=. Rea"o I S"A#le JS*A#leAro'Me'Hu$$er ;; 4U==S"" OO e 5lB@B //GDA=De"tro&Dr#7erMa ager?@B retur 4U==B \ JS*AClo"e= ?$p@B CP=Err eErr ; CE!4o eB %3ar K p"QDe"t ; "5ISSout.p g"B *l7D#"pla&K pD#"pla& ; DRESt&leMa agerMa agerII# "ta %e?@8PgetD#"pla& ?@B # t :a 5S#Qe ; 6B # t le gt3 ; O9S#Qe K O0S#Qe K :a 5S#QeB u "#g e5 %3ar K 5ata*'age ; ?GH&te K@ CP=Mallo%? le gt3 @B eErr ; GDA=GetData"et?5ata*'age, pD#"pla&, 7$#le4a'e, p"QDe"t, 5$U=9, 5$U=0, 5$=R9, 5$=R0, O9S#Qe, O0S#Qe@B #$? eErr ;; CE!4o e @ [ =OG ?STATUS OO "[GDA=1 *log :#t'ap" OO e 5lB@B *l7D#"pla&K pD#"pla& ; DRESt&leMa agerMa agerII# "ta %e?@8PgetD#"pla& ?@B *l7H#t'ap K p*l7H#t'ap ; pD#"pla&, O9S#Qe, O0S#Qe, 6, 5ata*'age @B e2 *l7H#t'ap?

*l7D#' 5> ; ?*l7D#'@a:"?5$=R9 8 5$U=9@B *l7D#' 5& ; ?*l7D#'@a:"?5$U=0 8 5$=R0@B *l7Re%t #l7Re%t ??*l7Po"@ 5$U=9, ?*l7Po"@ 5$U=0, 5>, 5&@B *l7PaletteK pPalette ; 0B pO:R ; e2 DRERa"ter ?p*l7H#t'ap, #l7Re%t, pPalette@B \ JS*U l# L?7$#le4a'e@B CP=Aree?5ata*'age@B =OG ?STATUS OO "E 5 $et%3 'ap"" OO e 5lB@B retur pO:RB \

54

Anexo C: OpenStreetMaps SLD

Anexo C: OpenStreetMaps SLD

O texto XML desta seco define os estilos grficos de desenho dos mapas de estradas OpenStreetMaps. Est descrito no formato XML, segundo a especificao Style Language Descriptor (SLD). Com o objectivo de diminuir o nmero de pginas em anexo desta dissertao, est s representado a definio para o desenho de:

auto-estradas dois nveis de escala de mapa escrita dos nomes das estradas

OM>'l 7er"#o ;"(.0" e %o5# g;"ut$88"MP O"l5ISt&le5=a&erDe"%r#ptor >'l ";"3ttpI//222.ope g#". et/"l5" >'l "I"l5;"3ttpI//222.ope g#". et/"l5" >'l "Iog%;"3ttpI//222.ope g#". et/og%" >'l "Ig'l;"3ttpI//222.ope g#". et/g'l" 7er"#o ;"(.0.0"P O"l5IU"er=a&erP O"l5I=a&erAeatureCo "tra# t"P O"l5IAeatureT&peCo "tra# t /P O/"l5I=a&erAeatureCo "tra# t"P O"l5IU"erSt&leP O"l5I4a'ePDe$ault St&lerO/"l5I4a'eP O"l5IT#tle /P O"l5I*"De$aultP(O/"l5I*"De$aultP O"l5IAeatureT&peSt&leP O"l5I4a'eP a'eO/"l5I4a'eP O"l5IAeatureT&pe4a'ePAeatureO/"l5IAeatureT&pe4a'eP O"l5ISe'a t#%T&pe*5e t#$#erP ge er#%Igeo'etr&O/"l5ISe'a t#%T&pe*5e t#$#erP O"l5ISe'a t#%T&pe*5e t#$#erP

55

Anexo C: OpenStreetMaps SLD


%olor:re2erI%u"to'I&lorr5O/"l5ISe'a t#%T&pe*5e t#$#erP O"l5IRuleP O"l5I4a'ePrule 'otor2a& tru L '# (000000O/"l5I4a'eP O"l5IT#tlePFltB5#$ere teFgtB, 'otor2a&, 'otor2a&!l# L, tru L, tru L!l# L, '# (000000O/"l5IT#tleP Oog%IA#lterP Oog%IOrP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralPFltB5#$ere teFgtBO/og%I=#teralP O/og%IPropert&*"ENualToP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralP'otor2a&O/og%I=#teralP O/og%IPropert&*"ENualToP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralP'otor2a&!l# LO/og%I=#teralP O/og%IPropert&*"ENualToP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralPtru LO/og%I=#teralP O/og%IPropert&*"ENualToP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralPtru L!l# LO/og%I=#teralP O/og%IPropert&*"ENualToP O/og%IOrP O/og%IA#lterP O"l5IM# S%aleDe o'# atorP (000000O/"l5IM# S%aleDe o'# atorP O"l5I=# eS&':ol#QerP O"l5IStroLeP O"l5IC""Para'eter a'e;""troLe"P <000000O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe82#5t3"P +O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe8l# eRo# "P rou 5O/"l5IC""Para'eterP O/"l5IStroLeP O/"l5I=# eS&':ol#QerP O"l5I=# eS&':ol#QerP O"l5IStroLeP O"l5IC""Para'eter a'e;""troLe"P <AAAAAAO/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe82#5t3"P -O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe8l# eRo# "P rou 5O/"l5IC""Para'eterP O/"l5IStroLeP O/"l5I=# eS&':ol#QerP

56

Anexo C: OpenStreetMaps SLD


O/"l5IRuleP O"l5IRuleP O"l5I4a'ePrule 'otor2a& 'a> (000000 '# (00000O/"l5I4a'eP O"l5IT#tlePFltB5#$ere teFgtB, 'otor2a&, 'otor2a&!l# L 'a> (000000 '# (00000O/"l5IT#tleP Oog%IA#lterP Oog%IOrP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralPFltB5#$ere teFgtBO/og%I=#teralP O/og%IPropert&*"ENualToP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralP'otor2a&O/og%I=#teralP O/og%IPropert&*"ENualToP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralP'otor2a&!l# LO/og%I=#teralP O/og%IPropert&*"ENualToP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralPtru LO/og%I=#teralP O/og%IPropert&*"ENualToP Oog%IPropert&*"ENualToP Oog%IPropert&4a'eP3#g32a&O/og%IPropert&4a'eP Oog%I=#teralPtru L!l# LO/og%I=#teralP O/og%IPropert&*"ENualToP O/og%IOrP O/og%IA#lterP O"l5IMa>S%aleDe o'# atorP (000000O/"l5IMa>S%aleDe o'# atorP O"l5IM# S%aleDe o'# atorP(00000O/"l5IM# S%aleDe o'# atorP O"l5I=# eS&':ol#QerP O"l5IStroLeP O"l5IC""Para'eter a'e;""troLe"P <000000O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe82#5t3"P /O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe8l# eRo# "P rou 5O/"l5IC""Para'eterP O/"l5IStroLeP O/"l5I=# eS&':ol#QerP O"l5I=# eS&':ol#QerP O"l5IStroLeP O"l5IC""Para'eter a'e;""troLe"P <AAAAAAO/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe82#5t3"P 6O/"l5IC""Para'eterP O"l5IC""Para'eter a'e;""troLe8l# eRo# "P rou 5O/"l5IC""Para'eterP O/"l5IStroLeP

57

Anexo C: OpenStreetMaps SLD


O/"l5I=# eS&':ol#QerP O"l5ITe>tS&':ol#QerP O"l5I=a:elP Oog%IPropert&4a'ePre$O/og%IPropert&4a'eP O/"l5I=a:elP O"l5IA#llP OC""Para'eter a'e;"$#ll"P<AAAAAAO/C""Para'eterP O/"l5IA#llP O"l5I)aloP O"l5IRa5#u"P-O/"l5IRa5#u"P O"l5IA#llP000000O/"l5IA#llP O/"l5I)aloP O"l5IAo tP OC""Para'eter a'e;"$o t8$a'#l&"PAr#alO/C""Para'eterP OC""Para'eter a'e;"$o t82e#g3t"P:ol5O/C""Para'eterP OC""Para'eter a'e;"$o t8"#Qe"P(-O/C""Para'eterP O/"l5IAo tP O"l5IJe 5orOpt#o a'e;"$ollo2=# e"P trueO/"l5IJe 5orOpt#o P O"l5I=a:elPla%e'e tP O"l5I=# ePla%e'e t /P O/"l5I=a:elPla%e'e tP O/"l5ITe>tS&':ol#QerP O/"l5IRuleP

58

Вам также может понравиться