A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas.

Apresentações semelhantes


Apresentação em tema: "TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas."— Transcrição da apresentação:

1 TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas

2 TerraMap: divisão lógica da linguagem Declaração das variáveis Declaração das funções Chamada das funções

3 Tipos de Dados Básicos: Database Representa um banco de dados espacial. Database db1 (banco01, hostname, user, password, type); Indica que foi criada uma variável db1 e que db1 está associada ao banco de dados espacial banco01.

4 Tipos de Dados Básicos: View Representa um conjunto de regiões no espaço associadas a um ou mais atributos. Um Database pode conter várias Views. View estados (db1, USA_STATES); Indica que foi criada uma variável estados e que ela está associada ao banco db1.

5 Tipos de Dados Básicos: Map Representa um atributo de uma view. Uma View pode conter vários Maps. Map nome (estados, state_name); Indica que foi criada uma variável nome que está associada ao atributo state_name da view estados.

6 Tabela de Símbolos Programa principal enxerga que existe apenas Símbolo class TmTabelaSimbolos{ map TabelaSimbolos; public: TmTabelaSimbolos(); int put_symbol(const string &name, TmSimbolo *simbolo); TmSimbolo* get_symbol(const string &name); };

7 Tabela Símbolo: símbolo class TmSimbolo_Factory { public: static TmSimbolo* make( const string& type, const string& name ){ if (type == "DATABASE") return new TmSimbolo_Database(name); if (type == "VIEW") return new TmSimbolo_View(name); if (type == "MAP") return new TmSimbolo_Map(name); if (type == "ZFUNCTION") return new TmSimbolo_Function(name,5); } }; class TmSimbolo{ protected: int type; public: TmSimbolo(); TmSimbolo(const string& _name, int _type); virtual int connect(const string& path, const TmSimbolo* _symbol) = 0; };

8 TerraMap: Exemplo de Utilização MAP POP91_NOVA DATABASE CDE VIEW DISTRITOS MAP POP91

9 TerraMap: Função Local MAP POP91_NOVA DATABASE CDE VIEW DISTRITOS MAP POP91 FUNÇÃO DECLARAÇÃOFUNÇÃO UTILIZAÇÃO

10 TerraMap: Exemplo de Execução I

11 TerraMap: Exemplo de Execução II

12 TerraMap: Verificação da Execução pequena se POP91 < grande nos demais objetos

13 TerraMap: Tratamento de Erros

14

15 TerraMap: Exemplo de Utilização

16 TerraMap: Exemplo da Linguagem CRIAÇÃO DE UM NOVO ATRIBUTO EXPRESSÕES NAS FUNÇÕES

17 TerraMap: Verificação da Execução Criação do atributo area_nova Area_km2 se area_km2 < 10 0 se 10 30

18 TerraMap: Função Zonal

19 preencher um mapa de polígonos com a média dos pixels de uma imagem e fazer a sua classificação TerraMap ZONALFUNCTION contido (raster,poligono){ 1 : in(poligono,raster); } FUNCTION media(raster, poligono){ average(contido(raster, poligono)) : otherwise; } mediapixels = media(raster, poligono); LOCALFUNCTION classifica(valor){ "baixo" : valor <= 60, "medio" : valor > 60 && valor <= 65, "alto" : OTHERWISE }; classepixels = classifica(media_attrib); avaliação uso Chamada e atribuição Operação Zonal

20 Função Zonal Zona Toda geometria que compartilha uma característica Exemplos O polígono de cada distrito Uma célula Distritos com mais de 500 analfabetos Operação Zonal operação sobre os dados de um layer que possuam sobreposição com a ZONA

21 TmIterator Função Zonal: definindo a zona class TmIteratorPol{ TePolygonSet::iterator it; public:... void operator ++ (){it++;} void operator -- (){it--;} bool operator == (const TmIteratorPol& other){return (it == other.it); } bool operator != (const TmIteratorPol& other){return (it != other.it);} TePolygon operator * () {return *this;} }; class TmIteratorCell{ TeCellSet::iterator it; public:... void operator ++ (){it++;} void operator -- (){it--;} bool operator== (const TmIteratorCell& other){return it == other.it; } bool operator!= (const TmIteratorCell& other){return it != other.it;} TePolygon operator * (); // conversao para TePolygon };

22 Função Zonal: Avaliação A função in(poligono,raster); Para cada polígono temos um vetor de double associado, representando os valores de pixels contidos no polígono Funções possíveis entre geometrias dentro, toca, intercepta, externo, vizinhança,... entre tabelas igual, diferente, menor, maior,...

23 Função Zonal: uso A função average(contido(raster, poligono)) Pega o vetor de double associado ao polígono e faz a média Associa um único valor ao polígono Outras funções Min | Max | Range | Mean | Std | Sum | Variety | Majority | Minority | Median atribuição dos valores gerados à tabela de atributos mediapixels = media(raster, poligono);

24 Função Zonal + Local: resultado LOCALFUNCTION classifica(valor){ "baixo" : valor <= 60, "medio" : valor > 60 && valor <= 65, "alto" : OTHERWISE }; classepixels = classifica(media_attrib);

25 Conclusões Teste de conceitos e visão dos problemas O uso de padrões ajudará nas implementações futuras Pois, não será necessário mudar o código principal Validação da linguagem Exemplos do Cartaxo e Lúbia Trabalhos Futuros Tratamento dos diversos tipos de dados (polígonos, linhas, pontos, raster) Implementar a Função Focal


Carregar ppt "TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas."

Apresentações semelhantes


Anúncios Google