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 inter-ligados: 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 location-based 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() Geographic Data Server GML Data Links para outros dados geográficos Base para a Geo-Web !!
Apenas com email você pode obter dados espaciais? GML: o que é? GML Data getData() iGIS MapServer ESRI Oracle 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 XSLT RDF/S XML XPath SVG/VML XSD XPointer XLink
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 <tc:TelephonePole gml:id = “WECO1”> <tc:carries> <tc:TelephoneDrop> … </tc:TelephoneDrop> </tc:carries> <position xlink:href = “… UtilityPole/gml:position” /> …. </tc:TelephonePole> Telco Telephone Anexos Postes CELB <rt:UtilityPole gml:id = “P32”> <gml:position> <gml:Point srsName = “..”> <gml:coordinates> … </gml:coordinates> </gml:Point> </gml:position> <rt:UtilityPole> Municipalidade
Infra-estrutura de Informação <tc:ServingArea gml:id = “Biloxia”> <gml:extentOf> <gml:Polygon srsName=“..”> <gml:outerBoundaryIs> <gml:Ring> <gml:curveMember xlink:href = “ … “ /> <gml:outerBoundaryIs> … </gml:Polygon> </gml:extentOf> <servedBy xlink:href = “… #SAI36” /> …. </tc: ServingArea > Serving Area sa66 Municipal Land Parcels Serving Area Interfaces 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: _______________ Date: _____________ StreetAddress: _____________ Vehicle Route: _____________ Wiring Diagram: ____________ Street Address (gml:StreetAddress) Vehicle Route (gml:Route) Wiring Diagram (gml:Topology) Work Order como um documento XML
Construindo comunidades de informação GML Application Schemas Logistical Constructs Transportation Constructs Network Constructs Outside Plan Constructs Location Service Constructs GML Common Geographic and Geometric Constructs W3C 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; - LineString; LinearRing; - Polygon; MultiPoint; - MultiLineString; MultiPolygon - 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> X e y foram definidos no esquema
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>
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 3.0 GML 2. ISO TC/211 G-XML Muitas Influências Muitos objetivos ! GML 3.0
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) (G-XML, 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) Estilo default: (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