Operadores zonais de PCD (Plataforma de Coleta de Dados) são utilizados para obter estatísticas sobre as fontes de dados do tipo de PCD. Consideram a localização fixa dos pontos e obedecem a uma regra de influência ou uma lista informando quais serão os pontos de PCD que serão considerados para cada objeto a ser monitorado ou a área de influência (buffer) dos mesmos. Cada PCD pode ter seu próprio conjunto de atributos associados.

A Figura 3.21 mostra a área de influência de alguns pontos de PCD em relação a área de um objeto monitorado e em relação ao buffer externo (apenas anel externo sem considerar a área de objeto) desse mesmo objeto.

Figura 3.21 – Diferenças de abordagens da relação entre a área de influência de PCD´s e um objeto monitorado ou um “buffer” externo deste objeto.


NOTA: Os operadores e utilitários desse item utilizam dos dados das PCD´s de forma discreta, pois as medidas realizadas são reais nos pontos de localização de cada PCD. Neste caso, um conjunto de regras de influência podem ser aplicadas a cada localização. Outra maneira de utilizar os dados de PCD, de forma contínua, é a partir de um dado matricial criado pela interpolação de uma variável escolhida. O dado dinâmico matricial resultante da interpolação pode ser utilizado igualmente como qualquer outro dado matricial. Veja a lista de operadores zonais de grades.


Antes de usar os operadores devemos conhecer os utilitários de PCD que permitem definir as regras de influência, descrito a seguir.



1- Regra de Influência

Há dois utilitários para definir quais PCD´s serão consideradas para cada objeto monitorado, um baseado em regras e outro nos atributos do próprio objeto. O utilitário baseado em regras depende do tipo escolhido pelo usuário, isto é, se toca a área do objeto ou seu “buffer”, se envolve o centro de massa da área do objeto ou seu “buffer” ou uma região específica para cada PCD. Para os tipos toca e centro, um valor de raio deverá ser informado na análise. A Figura 3.22 mostra os três tipos de regras de influência.

SINTAXE GERAL:

dcp.zonal.influence.by_attribute("<dynamic_data_dcp>", <list_attribute>)

dcp.zonal.influence.by_rule("<dynamic_data_dcp>", [<buffer>])


onde:

  • dynamic_data_dcp : String com o nome da série de dados de PCD;
  • list_attribute: Parâmetro contendo a lista de atributos do objeto monitorado contendo ID´s das PCD´s que o influenciam.  Ex. [att1, att2, att3] ;
  • buffer : [Opcional] “Buffer” para ser aplicado ao objeto monitorado. Ver utilitário “buffer” acima.


Figura 3.22 – Diferentes regras de influência das PCDs

A Figura 3.23 mostra um mapa contendo polígonos de algumas bacias hidrográficas e a tabela de atributos associada. Duas colunas dessa tabela especificam os códigos das PCDs que devem ser utilizados por cada bacia.

Figura 3.23 – Mapa e a tabela de atributos com código das PCDs a serem utilizados.

NOTA: Em ambos os utilitários o resultado será uma lista contendo as PCDs que serão utilizados por cada objeto monitorado.


A seguir são apresentados três tipos de operadores: Zonal, Zonal histórico e Zonal histórico por intervalo. A descrição de cada tipo a seguir.



2- Zonal

Grupo de operadores que consideram as PCD´s que influenciam o objeto monitorado e utilizam somente a última medida obtidas por cada PCD.

SINTAXE GERAL:

dcp.zonal.<operator>("<dynamic_data_dcp>", <buffer>, "<attribute>", <list_dcp>)

 

onde:

  • operator: Count, Min, Max, Mean, Median, Sum, Standard_deviation, Variance;
  • dynamic_data_dcp: String com o nome da série de dados de PCD;
  • buffer: Buffer para ser aplicado ao objeto monitorado. Parâmetro obrigatório somente para operador “count”. Ver utilitário Buffer;
  • attribute: String com o nome do atributo da PCD que deve ser utilizado para recuperar valores estatísticos. O atributo deve ser do tipo numérico (Ex. Integer, Float, Double, Long). Não usar para operador “count”;
  • list_dcp: Lista contendo a identificação das PCD´s que influenciam o objeto monitorado. Ver utilitário “Regra de Influência”. Não usar se operador zonal for “count”.

Segue a descrição de cada operador.

Zonal: Contagem

Retorna o número de PCD´s que influenciam o objeto monitorado ou sua área de influência. Depende do valor de raio informado para definir a área ao redor de cada PCD para os tipos Centro ou Toca, ou áreas se tipo for Região.

Sintaxe:

dcp.zonal.count("<dynamic_data_dcp>", <buffer>)

Exemplo:        buf1 = Buffer(BufferType.Out_union, 2, "km")

x = dcp.zonal.count("estacoes", buf1)

Zonal: Mínimo

Retorna o menor valor de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado.

Sintaxe:

dcp.zonal.min("<dynamic_data_dcp>", "<attribute>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out_union, 2, "km")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.min("Serra do Mar", "Pluvio", ids)

Zonal: Máximo

Retorna o maior valor de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado.

Sintaxe:

dcp.zonal.max("<dynamic_data_dcp>", "<attribute>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out, 400, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.max("Serra do Mar", "Pluvio", ids)

Zonal: Média

Retorna a média dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado.

Sintaxe:

dcp.zonal.mean("<dynamic_data_dcp>", "<attribute>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Level,  10, "km", 5, "km")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.mean("Serra do Mar", "Chuva", ids)

Zonal: Mediana

Retorna a mediana dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado.

Sintaxe:

dcp.zonal.median("<dynamic_data_dcp>", "<attribute>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out, 800, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.median("Serra do Mar", "temperatura", ids)

Zonal: Soma

Retorna a soma dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado.

Sintaxe:

dcp.zonal.sum("<dynamic_data_dcp>", "<attribute>", <list_dcp>)

Exemplo:        ids = dcp.influence.by_attribute("Serra do Mar", [att1, att2, att2, att4])

x = dcp.zonal.sum("Serra do Mar", "temperatura", ids)

Zonal: Desvio Padrão

Retorna o desvio padrão dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado.

Sintaxe:

dcp.zonal.standard_deviation("<dynamic_data_dcp>", "<attribute>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out, 800, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.standard_deviation("Serra do Mar", "temperatura", ids)

Zonal: Variância

Retorna a variância dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado.

Sintaxe:

dcp.zonal.variance("<dynamic_data_dcp>", "<attribute>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.In, 800, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.variance("Serra do Mar", "temperatura", ids)




3- Zonal histórico

Grupo de operadores que consideram as PCD´s que influenciam o objeto monitorado e utilizam as últimas medidas obtidas por cada PCD, no intervalo de tempo definido entre a data/hora atual e o valor de tempo informado no passado.

SINTAXE GERAL:

dcp.zonal.history.<operator>("<dynamic_data_dcp>", "<attribute>", "<time>", <list_dcp>)

onde:

  • operator : Min, Max, Mean, Sum, Median, Standard_deviation, Variance; 
  • dynamic_data_dcp : String com o nome da série de dados de PCD;
  • attribute : String com o nome do atributo da PCD que deve ser utilizado para recuperar valores estatísticos. O atributo deve ser do tipo numérico (Ex. Integer, Float, Double, Long). Não usar para operador “count”;
  • time : String com o intervalo de tempo, a partir da hora atual, para filtrar os valores das PCD´s. Este intervalo será aberto (< x) no valor informado e fechado ( = ) na hora atual. Ver utilitário unidades de tempo;
  • list_dcp : lista contendo a identificação das PCD´s que influenciam o objeto monitorado. Ver utilitário “Regra de Influência”. Não usar se operador zonal for “count”.

Segue a descrição de cada operador.

Zonal histórico: Mínimo

Retorna o menor valor de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo definido entre a data/hora atual e o valor de tempo informado no passado.

Sintaxe:

dcp.zonal.history.min("<dynamic_data_dcp>", "<attribute>", "<time>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out_union, 2, "km") 

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.min("Serra do Mar", "Pluvio“, “1d”, ids)

Zonal histórico: Máximo

Retorna o maior valor de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo definido entre a data/hora atual e o valor de tempo informado no passado.

Sintaxe:

dcp.zonal.history.max("<dynamic_data_dcp>", "<attribute>", "<time>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out, 400, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.max("Serra do Mar", "Pluvio", "30h", ids)

Zonal histórico: Média

Retorna a média dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo definido entre a data/hora atual e o valor de tempo informado no passado.

Sintaxe:

dcp.zonal.history.mean("<dynamic_data_dcp>", "<attribute>", "<time>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Level,  10, "km", 5, "km")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.mean("Serra do Mar", "Chuva", "3d", ids)

Zonal histórico: Mediana

Retorna a mediana dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo definido entre a data/hora atual e o valor de tempo informado no passado.

Sintaxe:

dcp.zonal.history.median("<dynamic_data_dcp>", "<attribute>", "<time>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out, 800, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.median("Serra do Mar", "temperatura", "360min", ids)

Zonal histórico: Soma

Retorna a soma dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo definido entre a data/hora atual e o valor de tempo informado no passado.

Sintaxe:

dcp.zonal.history.sum("<dynamic_data_dcp>", "<attribute>", "<time>", <list_dcp>)

Exemplo:        ids = dcp.influence.by_attribute("Serra do Mar", [att1, att2, att2, att4])

x = dcp.zonal.history.sum("Serra do Mar", "temperatura", "5h", ids)

Zonal histórico: Desvio Padrão

Retorna o desvio padrão dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo definido entre a data/hora atual e o valor de tempo informado no passado.

Sintaxe:

dcp.zonal.history.standard_deviation("<dynamic_data_dcp>", "<attribute>", "<time>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out, 800, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.standard_deviation("Serra do Mar", "temperatura", "1w", ids)

Zonal histórico: Variância

Retorna a variância dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo definido entre a data/hora atual e o valor de tempo informado no passado.

Sintaxe:

dcp.zonal.history.variance("<dynamic_data_dcp>", "<attribute>", "<time>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.In, 800, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.variance("Serra do Mar", "temperatura", "24h", ids)




4- Zonal histórico por intervalo

Grupo de operadores que consideram as PCD´s que influenciam o objeto monitorado e utilizam as últimas medidas obtidas por cada PCD, no intervalo de tempo definido entre dois valores de tempo informado no passado.

SINTAXE GERAL:

dcp.zonal.history.interval.<operator>("<dynamic_data_dcp>", "<attribute>", "<time_begin>", "<time_end>", <list_dcp>)  

onde:

  • operator : min, max, mean, sum, median, standard_deviation, variance; 
  • dynamic_data_dcp: String com o nome da série de dados de PCD;
  • attribute: String com o nome do atributo da PCD que deve ser utilizado para recuperar valores estatísticos. O atributo deve ser do tipo numérico (Ex. Integer, Float, Double, Long). Não usar para operador “count”;
  • time_begin: String inicial (mais antigo) do intervalo de tempo para filtrar os dados. Este valor será aberto (< tempo mais antigo) no tempo informado;
  • time_end: String final (mais recente) do intervalo de tempo para filtrar os dados. Este valor será fechado ( <= tempo mais recente) no tempo informado;
  • list_dcp: lista contendo a identificação das PCD´s que influenciam o objeto monitorado. Ver utilitário  “Regra de Influência”. Não usar  se operador zonal for “count”.


Segue a descrição de cada operador.

Zonal histórico por intervalo: Mínimo

Retorna o menor valor de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo inicial e final informado no passado em função da data/hora atual.

Sintaxe:

dcp.zonal.history.interval.min(“<dynamic_data_dcp>”, “<attribute>”, “<time_begin>”, “<time_end>”,  <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out_union, 2, "km")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.interval.min("Serra do Mar", "Pluvio", "2d", '1d', ids)

Zonal histórico por intervalo: Máximo

Retorna o maior valor de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo inicial e final informado no passado em função da data/hora atual.

Sintaxe:

dcp.zonal.history.interval.max(“<dynamic_data_dcp>”, “<attribute>”, “<time_begin>”, “<time_end>”, <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out, 400, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.interval.max("Serra do Mar", "Pluvio", "24h", "12h", ids)

Zonal histórico por intervalo: Média

Retorna a média dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo inicial e final informado no passado em função da data/hora atual.

Sintaxe:

dcp.zonal.history.interval.mean("<dynamic_data_dcp>", "<attribute>", "<time_begin>", "<time_end>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Level,  10, "km", 5, "km")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.interval.mean("Serra do Mar", "Chuva", "24d", "12d", ids)

Zonal histórico por intervalo: Mediana

Retorna a mediana dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo inicial e final informado no passado em função da data/hora atual.

Sintaxe:

dcp.zonal.history.interval.median("<dynamic_data_dcp>", "<attribute>", "<time_begin>", "<time_end>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out, 800, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.interval.median("Serra do Mar", "temperatura", "2d", "1d", ids)

Zonal histórico por intervalo: Soma

Retorna a soma dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo inicial e final informado no passado em função da data/hora atual.

Sintaxe:

dcp.zonal.history.interval.sum("<dynamic_data_dcp>", "<attribute>", "<time_begin>", "<time_end>", <list_dcp>)

Exemplo:        ids = dcp.influence.by_attribute("Serra do Mar", [att1, att2, att2, att4])

x = dcp.zonal.history.interval.sum("Serra do Mar", "temperatura", "2d", "1d", ids)

Zonal histórico por intervalo: Desvio Padrão

Retorna o desvio padrão dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo inicial e final informado no passado em função da data/hora atual.

Sintaxe:

dcp.zonal.history.interval.standard_deviation("<dynamic_data_dcp>", "<attribute>", "<time_begin>", "<time_end>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.Out, 800, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.interval.standard_deviation("Serra do Mar", "temperatura", "2d", "1d", ids)

Zonal histórico por intervalo: Variância

Retorna a variância dos valores de um atributo comum das PCD´s que influenciam cada geometria de um objeto monitorado, no intervalo de tempo inicial e final informado no passado em função da data/hora atual.

Sintaxe:

dcp.zonal.history.interval.variance("<dynamic_data_dcp>", "<attribute>", "<time_begin>", "<time_end>", <list_dcp>)

Exemplo:        b1 = Buffer(BufferType.In, 800, "m")

ids = dcp.influence.by_rule("Serra do Mar", b1)

x = dcp.zonal.history.interval.variance("Serra do Mar", "temperatura", "2d", "1d", ids)