Академический Документы
Профессиональный Документы
Культура Документы
Janeiro de 2011
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
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
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.
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
Introduo
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
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.
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.
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
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.
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.
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
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
10
Reviso Bibliogrfica
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.
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
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
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&
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
aceder aos contedos guardados em base de dados ou ficheiros. aplicar uma projeco que o cliente pretender.
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).
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.
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
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.
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.
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.
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
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
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
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
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).
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
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 ...
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.
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
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
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"'
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
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
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
Esse
ficheiro
virtual
criado
entregue
ao
GDAL
via
funes:
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
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&,
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
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.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.
37
Implementao
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.
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
Este captulo apresenta as contribuies deste trabalho para o problema proposto assim como propostas de desenvolvimentos futuros.
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.
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
Nesta seco descrito as adaptaes necessrias ao visualizador DRAW para usar a biblioteca GDAL.
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
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
; ; ; ;
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
#$? 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
$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
#$ ?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" ...
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
// 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
// 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
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
56
57
58