terramap – uma nova Álgebra de mapas danilo palomo olga oliveira gilberto câmara ricardo cartaxo...
TRANSCRIPT
![Page 1: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/1.jpg)
TerraMap – Uma Nova
Álgebra de Mapas
Danilo Palomo
Olga Oliveira
Gilberto Câmara
Ricardo Cartaxo
Lúbia Vinhas
![Page 2: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/2.jpg)
TerraMap: divisão lógica da linguagem Declaração das variáveis Declaração das funções Chamada das funções
![Page 3: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/3.jpg)
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”.
![Page 4: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/4.jpg)
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.
![Page 5: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/5.jpg)
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.
![Page 6: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/6.jpg)
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);
};
![Page 7: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/7.jpg)
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;
};
![Page 8: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/8.jpg)
TerraMap: Exemplo de Utilização
MAP “POP91_NOVA”
DATABASE “CDE”
VIEW “DISTRITOS”
MAP “POP91”
![Page 9: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/9.jpg)
TerraMap: Função Local
MAP “POP91_NOVA”
DATABASE CDE”
VIEW “DISTRITOS”
MAP “POP91”
FUNÇÃO DECLARAÇÃO FUNÇÃO UTILIZAÇÃO
![Page 10: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/10.jpg)
TerraMap: Exemplo de Execução I
![Page 11: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/11.jpg)
TerraMap: Exemplo de Execução II
![Page 12: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/12.jpg)
TerraMap: Verificação da Execução
“pequena” se “POP91” < 100000
“grande” nos demais objetos
![Page 13: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/13.jpg)
TerraMap: Tratamento de Erros
![Page 14: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/14.jpg)
TerraMap: Tratamento de Erros
![Page 15: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/15.jpg)
TerraMap: Exemplo de Utilização
![Page 16: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/16.jpg)
TerraMap: Exemplo da Linguagem
CRIAÇÃO DE UM NOVO ATRIBUTO
EXPRESSÕES NAS FUNÇÕES
![Page 17: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/17.jpg)
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” + 100 se “area_km2” > 30
![Page 18: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/18.jpg)
TerraMap: Função Zonal
![Page 19: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/19.jpg)
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
uso
Chamada e atribuição
OperaçãoZonal
![Page 20: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/20.jpg)
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
![Page 21: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/21.jpg)
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
};
![Page 22: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/22.jpg)
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, ...
![Page 23: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/23.jpg)
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);”
![Page 24: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/24.jpg)
Função Zonal + Local: resultado
LOCALFUNCTION classifica(valor){"baixo" : valor <= 60,"medio" : valor > 60 && valor <= 65,"alto" : OTHERWISE
};
classepixels = classifica(media_attrib);
![Page 25: TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc131497959413d8d5eb2/html5/thumbnails/25.jpg)
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