Unidade 8: Padrões em SIG Cláudio de Souza Baptista UFCG/CCT/DSC Grupo de Sistemas de Informações e Banco de Dados http://www.lsi.dsc.ufcg.edu.br Introdução Geralmente padrões auxiliam no compartilhamento, integração e transferência de dados Em SIG existem padrões para linguagem de especificação, transferência de dados, geocodificação e documentação de metadados e formatos, qualidade de dados e bibliotecas digitais de objetos espaciais Existem padrões em vários níveis: internacional, nacional, regional Introdução Exemplos: ISO TC 211 - Informações geográficas e Geomática (http://www.isotc211.org/) FGDC (Federal Geographic Data Committee) ANSI TC X3L1 (1993) juntamente com OGC (Open Geospatial Consortium) SAIF (Spatial Archive and Interchange Format) Canadá DIGIWG (Digital Geographic Information Work Group) OTAN desenvolveu o DIGEST SDTS Shapefile (Formato proprietário da ESRI) CEN TC 287 – Europa GML O Padrão SAIF Padrão canadense que propõe uma linguagem para especificação e troca de dados, baseada no modelo de orientação a objetos Influenciou o padrão OGIS Especifica as classes espaciais, mas não contempla métodos distingue entre representações de fenômenos do mundo real e representações do espaço e tempo em que estes existem. O Padrão SAIF O Padrão SDTS Padrão para transferência de dados espaciais entre SIGs. Contém especificações lógicas para uso na transferência de dados modelo conceitual, descrição de componentes de qualidade e descrição de formatos de troca Um glossário de termos O Padrão SDTS Possui 3 partes: modelo de entidades espaciais do mundo real (cidades, rodovias etc) modelo de objetos espaciais: linhas, pontos, etc modelo de fenômenos espaciais: descreve o relacionamento entre os dois primeiros. O Padrão OGC (antigo OpenGIS) Padrão desenvolvido por um consórcio de fabricantes de SIG denomindo de OpenGeospatialConsortium (OGC) Objetivo: permitir acesso aos dados espaciais localmente ou remotamente sem se preocupar com modelo de dados proprietários, formato de arquivos ou SIGs que gerenciam os dados O Padrão OGC Usa 3 conceitos básicos: Todos os dados, processos e servidores são objetos baseados em tecnologia de objetos distribuidos (ex. CORBA). Modelo de objetos geográficos é proposto (baseado no SAIF e compatível com SDTS e DIGEST) Permitirá que serviços sejam implementados fornecendo ligações entre o modelo de objetos e formatos de dados privados, definindo uma API. OGC contém um conjunto de especificações para Aplicações geoespaciais (http://www.opengeospatial.org) Modelo de Geometria “Simple Fetaures” Geography Markup Language GML - OGC • Uma linguagem baseada em XML • Para transporte e armazenamento de geo-informação Incluindo feições espaciais e não-espaciais • Desenvolvida pelo OpenGeospatial Consortium - OGC • GML versions Initial release: GML specification Fev/2002: GML2 specification Desde Jan/2003: GML 3.0 specification • baseada em XMLSchema – Futuro: GML4, … specifications Incluir relacionamentos espaciais, geometria 3D, e tempo Introdução Aplicações com dados espaciais (SIG’s) Problema: cada aplicação utiliza uma modelagem distinta de armazenamento dos dados geográficos; Necessidade de um padrão para representar dados espaciais Surge o padrão GML O que é GML ? A Geographic Markup Language (GML) é uma codificação XML para transporte e armazenamento de informação geográfica, incluindo suas propriedades espaciais e não espaciais; Baseado em XML Schemas. GML: O que é? OGC endossou “Adopted Specification” (GML 2.0 passou em março 2001) para representação de informação espacial. Um conjunto de tecnologias XML para manipular dados espaciais na Internet. Padrão internacional emergente para dados espaciais—endossado por 200 + indústrias e agências no mundo. Convergiu com G-XML (Japão) – 600+ industrias. GML: o que é? Representação XML de geografia Permite o uso do mundo de tecnologias XML. Permite mapas vectoriais em Web browsers. Permite feições complexas e associações entre estas. Porquê GML ? A “lingua franca” para informação geográfica. Dados GML podem ser lidos e entendidos por pessoas e máquinas. GML permite o uso de dados espaciais distribuidos que são interligados: manutenção local & acesso e desenvolvimento global. Custo reduzido para dados. Dados GML podem facilmente ser misturados com dados não-espaciais incluindo texto, video, e imagem. GML pode construir esquemas de aplicações compartilhadas para telecomunicações, utilitários, florestas, turismo, e locationbased services. Porquê GML ? GML é facilmente transformado – conversão de coordenadas etc. Serviços podem ser criados com tipos específicos e então facilmente descobertos. Serviços podem agir em feições. Serviços podem retornar rotas. GML provê um PADRÃO GML é não-proprietário e aberto! Qualquer cliente pode falar com qualquer servidor! GML abilita servidores web de feições não-proprietários, anotação de imagem/mapa, análise espacial e estilo de mapa. GML: o que é? OGC Web Feature Service getData() GML Data Links para outros dados geográficos Base para a Geo-Web !! Geographic Data Server GML: o que é? GML Data ESRI getData() MapServer Oracle iGIS Geographic Data Server Apenas com email você pode obter dados espaciais? História Fev 99 – White paper da Galdos sobre “XML for spatial”. Jul 99 – Grupo Xbed liderado pela Galdos Systems, desenvolve SFXML (Oracle, NTT Data, MapInfo) Out 99 – Galdos Systems escreve GML RFC Dez 99 – GML RFC se torna pública Mai 2000 – GML 1.0 Passa como “recommendation paper”. Febv 2001 – OGC publica GML 2.0 Mar 2001 – GML 2.0 votado como “adopted specification” Jul 2001 – GML 3.0 Workshop em Vancouver Set 2001 – OGC vota enviar GML ao ISO Jul 2002 – GML Dev Days ! Out 2002 – Release de GML 3.0 GML - usa padrões da W3C GML foca em conteúdo Desenho de mapa vetorial num web browser (SVG) GML separa conteúdo & apresentação ! Aplicações chaves Location-Based Services e Mobile GIS Internet GIS (governos local/regional & nacional) Gestão de Desastres Investigação de acidentes Planejamento e Monitoração de telecomunicações e utilitários (energia, água, gás) Implicações de GML Torna possível construir uma infra-estrutura espacial – reduz o custo incremental cost construir dados de aplicações específicas. Facilita a integração da informação espacial com não-espacial – “e-mail me a map I can interact with”! => Melhor utilizaçao da informação espacial. Direciona para padrões geográficos para vários domínios de aplicação - vocabulários compartilhado e padronizado – diminui o custo de compartilhamento de dados e aumenta interoperabilidade. Provê um padrão aberto e flexível para transportar informação geográfica para aplicações baseadas em localização. Permite vendedores focar no conteúdo! Arquitetura de LBS em larga escala Location Services • routing • tracking • access to services Location-Based Services Information Infrastructures Área vasta, dados espaciais integrados – “the geo-spatial world wide web !” Infra-estrutura de informções Telco Telephone Anexos Postes CELB Municipalidade <tc:TelephonePole gml:id = “WECO1”> <tc:carries> <tc:TelephoneDrop> … </tc:TelephoneDrop> </tc:carries> <position xlink:href = “… UtilityPole/gml:position” /> …. </tc:TelephonePole> <rt:UtilityPole gml:id = “P32”> <gml:position> <gml:Point srsName = “..”> <gml:coordinates> … </gml:coordinates> </gml:Point> </gml:position> <rt:UtilityPole> Infra-estrutura de Informação Serving Area Municipal Land Parcels Serving Area Interfaces <tc:ServingArea gml:id = “Biloxia”> <gml:extentOf> <gml:Polygon srsName=“..”> <gml:outerBoundaryIs> <gml:Ring> <gml:curveMember xlink:href = “ … “ /> <gml:curveMember xlink:href = “ … “ /> <gml:curveMember xlink:href = “ … “ /> <gml:Ring> <gml:outerBoundaryIs> … </gml:Polygon> sa66 </gml:extentOf> <servedBy xlink:href = “… #SAI36” /> …. </tc: ServingArea > sa68 Serving Area Boundary shared with municipal boundary Integração de Dados GML pode integrar dados espaciais e não-espaciais Work Order Assigned To: _______________ Street Address (gml:StreetAddress) Date: _____________ StreetAddress: _____________ Vehicle Route (gml:Route) Vehicle Route: _____________ Wiring Diagram (gml:Topology) Wiring Diagram: ____________ Work Order como um documento XML Construindo comunidades de informação GML Application Schemas Transportation Constructs Location Service Constructs GML W3C Logistical Constructs Network Constructs Outside Plan Constructs Common Geographic and Geometric Constructs Numbers Strings Transporte de Dados espaciais GML pode transportar informação: • Pontos de interesses (POI) • Rotas • Observações • Localização qualitativa/ endereço postal Tecnologias Dependentes GML não está sozinha — mas usa/direciona muitas especificações da OGC. Web Feature Server (WFS) é uma especificação OGC. Web Coverage Server Geo-coder e Gazetteer Specifications. Especificações de estilo. GML2.0 Features, Feature Collections Geometries Feature properties e outras associações; Associações complexas Codificação GML(cont.) Codificando Geometrias Utiliza o esquema Geometry; Implementa geometrias, com as seguintes classes : - Point; LinearRing; MultiPoint; MultiPolygon - LineString; - Polygon; - MultiLineString; - MultiGeometry; Possui ainda os elementos <coordinates> e <coord> para codificação de coordenadas: <coordinates>5.0,40.0</coordinates> <coord><X>5.0</X><Y>40.0</Y></coord> -> <element name="coord" type="gml:CoordType" /> <complexType name="CoordType"> <sequence> <element name="X" type="decimal"/> <element name="Y" type="decimal" minOccurs="0"/> <element name="Z" type="decimal" minOccurs="0"/> </sequence> </complexType> Codificação GML(cont.) O elemento <box> usado para codificar extensões; Utiliza os elementos <coordinates> e <coord>; O primeiro elemento possui a medida dos menores valores ao longo dos eixos, o segundo ponto a medida dos maiores valores; <Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326" > <coord><X>0.0</X><Y>0.0</Y></coord> <coord><X>100.0</X><Y>100.0</Y></coord> </Box> LineString- possui as coordenadas do primeiro e último ponto; LinearRing- a última coordenada deve coincidir com a primeira; Codificação GML(cont.) Polygon- o limite do Polygon é um conjunto de linearRings; MultiGeometry- contêm todos os elementos geométricos, possui a propriedade geometryMember que retorna o próximo elemento geométrico na coleção. Exemplo: <MultiGeometry gid="c731“ srsName= "http://www.opengis.net/gml/srs/epsg.xml#4326"> <geometryMember> <Point gid="P6776"> <coord><X>50.0</X><Y>50.0</Y></coord> </Point> </geometryMember> -- <geometryMember> <LineString gid="L21216"> <coord><X>0.0</X><Y>0.0</Y></coord> <coord><X>0.0</X><Y>50.0</Y></coord> <coord><X>100.0</X><Y>50.0</Y></coord> </LineString> </geometryMember> Codificação GML(cont.) Codificando Características com Geometrias GML provê um conjunto pré-definido de propriedades geométricas que podem ser usadas em geometrias de um tipo particular. Exemplo: O tipo de característica Dean possui uma propriedade ponto chamada location, que substitui o nome formal pointProperty. <gml:location> <gml:Point> <gml:coord><gml:X>1.0</gml:X><gml:Y>1.0</gml:Y></gml:coord> </gml:Point> <gml:location> Exemplos Schema GEOMETRY: <cityMember> <River> <gml:description>The river that runs through Cambridge. </gml: description> <gml:name>Cam</gml:name> <gml:centerLineOf> <gml:LineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coord><gml:X>0</gml:X><gml:Y>50</gml:Y></gml:coord> <gml:coord><gml:X>70</gml:X><gml:Y>60</gml:Y></gml:coord> <gml:coord><gml:X>100</gml:X><gml:Y>50</gml:Y></gml:coord> </gml:LineString> </gml:centerLineOf> </River> </cityMember> Exemplos(cont.) : Schema FEATURE <cityMember> <Mountain> <gml:description>World's highest mountain is in Nepal!</gml:description> <gml:name>Everest</gml:name> <elevation>8850</elevation> </Mountain> </cityMember> ----------------------------------------------------------------------------------<complexType name="SchoolType"> <complexContent> <extension base="gml:AbstractFeatureType"> <sequence> <element ref="ex:address"/> <element ref="gml:location"/> </sequence> </extension> </complexContent> </complexType> GML 3.0! GML 2. G-XML Muitas Influências Muitos objetivos ! GML 3.0 ISO TC/211 GML 3.0 Process 12 membros OGC RWG trabalharam em GML 3.0 Schemas para GML 3.0 congelados em maio 03/2002 GML 3.0 Localização: (G-XML, OGC) Geometric point (like GML 2.0) mas outras geometrias também. Endereço postal com suporte à internacionalização. (FGDC compliant) Endereço na forma de strings também. (“corner of 5th and Hornby”) Palavras-chave (de um dicionário – ex. “Holanda” ) Temporal: (baseado em ISO 19108) (GXML, OGC) Feature timestamps (time intervals, time positions) Dynamic Features Moving Object States GML 3.0 Topologia: (baseada em ISO 19107) (OGC, G-XML) – Topologias separadas de geometry. – Primitivas para nodos, arcos, faces e sólidos. – Manipula orientação. Melhoras em Geometry (baseadas no ISO 19107) – Geometrias não-lineares – tamanho de dados reduzidos. – Polígonos com curvas – “composite curve” curvas compostas de curvas ou primitivas de curvas. – “composite surface” surperfícies compostas de surperfícies ou primitivas de superfícies. GML 3.0 Sistemas de Referência: (G-XML, OGC, ISO) – ISO/OGC gramática compatível com sistemas de coordenadas. – Dicionário de sistema de referência – Sistemas de referência definidos pelo usuário – Observações: (para G-XML) – Conteúdo de Images/multimídia – Dependente de posição e tempo – Quandades medidas, observações GML 3.0 Coverages: (baseado no ISO 19123). (OGC) – Distribuição de quantidades sobre surperfície da terra. – Imagens de sensoriamento remoto – dados customizados – Modelo de redes Unidades de Medidas: (OGC. G-XML) – Quantidades físicas arbitrárias – uso de dicionários – Consistente com coverages e features. GML 3.0 Mecanismos de Metadados (OGC, G-XML) – Mecanismo de metadados genéricos para features, coverages etc. – Esquemas de Metadados podem ser publicados e compartilhados. – Esquemas/ instâncias de metadados para domínios específicos (ex. telecom) Estilo default: (G-XML) – Estilos persistentes para features. – Animação – Estilos de topologia. Características de GML Geração de um framework aberto para definição de esquemas e objetos de aplicações geoespaciais Suporte à descrição de esquemas de aplicações geoespaciais específicas para um domínio; Suporte ao armazenamento e transporte de aplicações e conjunto de dados; Aumento da capacidade das organizações compartilharem dados espaciais O Framework Especificação do padrão através de definições dos tipos em XML Schema; Variedade de tipos de objetos para descrição geográfica( Features, Geometry, Topology ); O usuário deve reutilizar as definições, estendendo-as. E pode criar novos tipos específicos para sua aplicação. O Framework Define os objetos abstratos que iniciam a hierarquia de tipos de GML: Feature Geometry Todas as aplicações têm seus principais objetos derivados desses tipos. O Framework Feature Abstração de um fenômeno do mundo real [ISO 19101] Geographic feature – localização na terra Estado = coleção de propriedades <nome, tipo, valor> Também pode conter referências para outros objetos O Framework Feature Exemplo de um feição geométrica: O Framework Geometry Supertipo de todos os tipos de geometria Tem uma referência para o sistema de referência espacial Exemplo Arquitetura(GML 3.0) Utilizando o GML Pode lidar com dados espaciais e não espaciais; Importar esquemas que serão utilizados; Desenvolvedores devem decidir entre: 1) Utilizar GML para definir os esquemas e transportar os dados, e também para armazenar esses dados (XML); 2) Utilizar o GML apenas para definição dos esquemas e transporte dos dados; Devem codificar os próprios tipos herdando as propriedades dos tipos abstratos definidos no GML, ou inserindo restrições, ou utilizando objetos concretos existentes; Utilizando GML A aplicação deve importar(exportar) de (para) GML; Ex: exportar dados espaciais de um banco dados Oracle para GML; Ex: obter dados GML em um servidor WEB de uma determinada aplicação e inserir esses dados num bancos de dados PostgreSQL. Exemplo Definindo tipo Abstrato Exemplo Definir o tipo pessoa: Exemplo Criando objeto com campo geométrico Exemplo Array GML 3.0 As versões anteriores tinham limitações: 1.0: Definições DTD; 2.0: Já usa XML Schema, mas tem apenas geometrias simples(Point, Line, Polygon) e de até 2 dimensões. Maior conformidade com o padrão ISO 19100. GML 3.0 Principais características: Geometrias Topologia Dados temporais Observações Sistema de referências de coordenadas Unidades de medida Meta-dados GML 3.0 - Geometrias Novas geometrias: Curves, surfaces, solids Toda geometria deve ser associada com algum sistema de referência (srsName) Permite coleções de geometrias GML 3.0 - Topologia Relacionamento espacial entre objetos Adequado para dados 3D Topologia é baseada nos elementos: nodes, edges, faces e solids. GML 3.0 Características temporais e dados dinâmicos Pode ser aplicado para features e attributes Facilidades para lidar com dados dinâmicos, principalmente com objetos móveis; Tem um formato padrão para representar um instante de tempo, mas suporta outros padrões; Características dinâmicas podem ter: Localização, velocidade, direção, elevação e aceleração GML 3.0 Observações Elemento que modela o ato de observar Ex: medidas de temperatura Útil para armazenar dados de sensoriamento remoto; Armazena a forma de aquisição, qual a propriedade a ser lida, e a medida atual. GML 3.0 Observações Exemplo GML 3.0 Sistema de Referências Todas as geometrias têm uma referências para algum sistema de coordenadas Novos sistemas podem ser definidos. GML 3.0 – Unidades de Medida O framework tem suporte para definição de unidades de medida para as propriedades dos elementos; o desenvolver define a unidade base da propriedade e a conversão é facilitada, pois as unidades de medidas mais comuns já estão definidas em GML ; Exemplo (gml:TimeUnitType) GML 3.0 Metadata É muito importante, e GML provê um framework extensível para adicionar metadados a features / attributes. GML para SVG Muitas vezes os dados em GML precisam ser convertidos para o padrão SVG nas aplicações, para fazer a apresentação gráfica dos dados espaciais; Geralmente utiliza-se XSLT para fazer a conversão; Conclusões GML 3.0 estende GML 2.0 para adicionar: mais geometrias, topologia, cobertura, dados temporais, observações, sistemas de referência espacial, unidades de medida e metadados; GML 3.0 fornece um rico conjunto de esquemas que podem ser utilizados quando necessário; O framework é extensível, principalmente as features. Recursos GML specification http://www.opengeospatial.org GML Dev Days (July 22-26) http://www.gmldev.org