Exemplo de análise baseado em Objetos Monitorados
A seguir apresentamos um exemplo típico da utilização de análise baseada em objeto monitorado que compara um atributo do objeto com o valor máximo de um dado matricial de chuva (Figura 3.7). Assim, no exemplo abaixo considere o seguinte cenário:
- O objeto monitorado selecionado contém um atributo denominado “limiar_critico” que contém um limite de chuva acumulada nas últimas 24 horas a partir do qual deve ser emitido um alerta para a área.
- A série de dados “hidro_diario” contém uma grade com o total de chuva acumulada nas últimas 24 horas.
- Se a chuva acumulada estiver abaixo do limiar definido para cada objeto, o nível de alerta deve ser 0. Se estiver até 20% acima do limiar, o nível será 1. Chuvas acima de 20% do limiar, o nível será 2.
- O resultado da análise será armazenado em uma nova tabela de nome “tab_an_max” que estará associada a tabela do objeto “tab_obj”.
Figura 3.7 – Exemplo de análise com objeto monitorado.
# Cálculo do valor zonal máximo
var1 = grid.zonal.max(“hidro_diario”, 0)
Essa linha define uma nova variável denominada de “var1” que será inicializada com o valor do operador zonal “maximo” aplicado à grade “hidro_diario”. Na prática, estamos buscando qual o valor de chuva acumulada na área em análise a partir da grade. Mais adiante será feita uma discussão maior sobre operadores zonais. Observe que “hidro_diario” é o nome do dado dinâmico que contém as informações de chuva e deve estar cadastrado no projeto.
# Recupera valor do atributo do objeto
var2 = get_value(“limiar_critico”)
Essa linha define uma nova variável denominada de “var2” que será inicializada com o valor do atributo “limiar_critico” de cada objeto monitorado.
# Compara valor máximo com atributo
if var1 < var2 :
Na linha acima estamos comparando o valor da chuva acumulada obtida da grade com o limiar definido em um objeto em particular, que tem valor 80. Lembrando que a fonte de objeto monitorado pode ter vários objetos (polígonos) com limiares diferentes.
nivel =0
elif var1 < var2 * 1.2:
nivel = 1
else :
nivel = 2
Nas linhas a seguir estamos estabelecendo os níveis de alerta determinados pela comparação como um limiar pré-definido. Se o valor de chuva acumulada for menor do que o valor do limiar de chuva para esta área, vamos retornar o nível = 0. Seguindo as definições do exemplo, a seguir retornamos nível = 1 se a chuva acumulada superar o limite em menos de 20%, isto é o valor de 96 (= 80 x 1.2). Caso contrário o valor de nível = 2.
Outro ponto importante a ser observado no exemplo, é a presença de comentários que não tem qualquer significado na execução do programa, apenas para fins de documentação. Use o sinal # para adicionar uma linha de comentário.
# Adiciona valor a tabela
add_value(“nivel_risco”, nivel)
A última linha do programa utiliza o comando “add_value” da plataforma para adicionar uma nova coluna na tabela “tab_an_max” e para armazenar o valor do nível. É obrigatório o uso desse operador pelo menos uma vez.
Para uma maior compreensão da sintaxe da linguagem ou uso de opções avançadas, recomenda-se a leitura do anexo, a documentação disponível em português em https://wiki.python.org.br ou site oficial em https://www.python.org/ . |
A seguir serão apresentadas em detalhes as opções disponíveis para acesso aos dados da análise, aos atributos do objeto monitorado, operações zonais, zonais históricas ou zonais de previsão.