sábado, julho 20, 2013

QGIS: cáculo da precipitação média pelo método de Thiessen

O cálculo da precipitação média em uma bacia hidrográfica é realizado através de dados coletados por pluviômetros que estão em áreas próximas e/ou dentro da mesma. Por definição a precipitação média é a lâmina d'água de altura uniforme sobre toda a área considerada, associada a um período de tempo.

O método de Thiessen é um dos mais usuais para a determinação da precipitação média, consiste em atribuir um fator de peso aos totais precipitados em cada pluviômetro, proporcionais a área de influência de cada um (VILLELA, 1975). Este método será demonstrado a seguir no Software Quantum GIS.

Na figura abaixo temos três layers abertos no QGIS, rainfall_gauges (estações pluviométricas com dados totais mensais de precipitação), streams (rede de drenagem) e basin (bacia hidrográfica em estudo).



Para criar os polígonos de Thiessen, acesse o menu Vector > Geometry Tools > Voronoi Polygons:



Escolha a camada dos postos pluviométricos, se necessário aplique um buffer para que o layer gerado cubra toda a bacia:



Em seguida corte o layer criado em função do limite da bacia. Vá em Vector > Geoprocessing Tools > Clip:



Em Input vector layer escolha o layer dos polígonos de Thiessen e em Clip layer escolha a bacia hidrográfica:


Com as áreas de influência dos postos pluviométricos definidas (figura abaixo), serão criados alguns campos na tabela de atributos.



Habilite o modo de edição e clique em Open field calculator:


Crie o campo area_km2, neste caso os dados estão em UTM e para obter os resultados em km2 deve-se dividir por 1.000.000. Salve o resultado e saia do modo de edição.


Em seguida, vá em Vector > Analysis Tools > Basic statistics:



Obtenha as estatísticas do Layer basin_thiessen, deve ser anotado o valor da soma das áreas (Sum = 3179.0643), que corresponde a área total da bacia.


Habilite o modo de edição mais uma vez para o layer thiessen_basin e crie mais um campo (area_per) contendo o valor da área de cada polígono dividida pela área total da bacia, em seguida salve a edição:


O último campo a ser criado armazenará o valor da precipitação ponderada (rainfall_p), obtido a partir da multiplicação dos valores dos campos rainfall_m e area_per, em seguida salve as alterações e saia do modo de edição:



Para obter o valor da precipitação média, acesse o menu Vector > Analysis Tools > Basic statistics e escolha o campo rainfall_p:


Em Sum temos o resultado para a precipitação média mensal, que é de 24,72 mm.

O mesmo procedimento pode ser realizado no GRASS através dos comandos abaixo:

Referências:

VILLELA, sm; MATOS, A. Hidrologia aplicada. 1975.

domingo, julho 14, 2013

Pivot Table no PostgreSQL

Pivot Table (ou Crosstab) é uma análise que resulta na inversão de linhas por colunas em uma consulta SQL. Funciona de forma semelhante a uma matriz inversa e seu uso resume uma série de registos em uma tabela mais fácil de ser interpretada, por exemplo:

Figura 1 - Conjunto de dados

Digamos que a partir do conjunto de dados da Figura 1 seja necessário totalizar a quantidade de acidentes por sexo para cada bairro. O resultado pode ser visto na Figura 2.

Figura 2 - Exemplo de Pivot Table

Utilizando a função de agregação SUM() em conjunto com a expressão CASE obtemos o resultado da Pivot Table: