Carregar apresentação
A apresentação está carregando. Por favor, espere
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<string,TmSimbolo*> 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{ protected: int type; public: TmSimbolo(); TmSimbolo(const string& _name, int _type); virtual int connect(const string& path, const TmSimbolo* _symbol) = 0; }; 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); } };
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ÇÃO FUNÇÃ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
TerraMap: Tratamento de Erros
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 <“area_km2”<30 “Area_km2” se “area_km2” > 30
18
TerraMap: Função Zonal
19
TerraMap: Função Zonal
“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 Operação Zonal uso Chamada e atribuição
20
Função Zonal Zona Operação Zonal
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
Função Zonal: definindo a zona
TmIterator 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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.