Tutorial: Calculando a Porcentagem de Cobertura do Solo por Sub-bacia
Site: | OpenCourseWare for GIS |
Disciplina: | QGIS Para Aplicações Hidrológicas |
Livro: | Tutorial: Calculando a Porcentagem de Cobertura do Solo por Sub-bacia |
Impresso por: | Guest user |
Data: | quinta-feira, 26 de dezembro de 2024 às 17:42 |
Índice
1. Introdução
Para estudos sobre hidrologia de bacias, muitas vezes é importante saber a porcentagem de cobertura do solo por sub-bacia.
Depois deste capítulo você será capaz de:
- adicione valores único às camadas vetoriais
- calcular áreas de polígono em tabelas de atributos
- estilizar uma camada vetorial usando um arquivo .qml
- recortar, reprojetar, e exportar camadas vetoriais para outro formato
- usar condições na calculadora de campo
- aplicar ferramentas de geoprocessamentos, como dissolver, intersecão, e buffer
- corrigir erros de geometria
- criar gráficos de pizza usando o complemento DataPlotly
Esta lição seguirá esse fluxo de trabalho:
Nesta lição iremos usar:
catchpolygons.shp
: shapefile com as sub-bacias- CORINE 2018 Cobertura da terrar
O primeiro arquivo foi criado delimitando sub-bacias dentro do Rur usando os métodos descritos na Lição 4.
Nesta lição, você aprenderá como fazer o download dos dados CORINE 2018. Um subconjunto dos dados também é fornecido no conjunto de dados do curso, que pode ser baixado da página principal da lição.
1.1. Teoria sobre ferramentas de sobreposição de vetores
Nesta lição, usaremos algumas ferramentas de sobreposição de vetor.
Assista a este vídeo para aprender os conceitos.
2. Preparando a camada de sub-bacia
Começaremos com um novo projeto QGIS.
1. Baixe o shapefile catchpolygons.shp
e adicione-o a um projeto QGIS vazio.
2. Abra a tabela de atributos da camada catchpolygons.
Esta camada foi calculada usando a abordagem de delimitação de bacia hidrográfica da Lição 4. O resultado é que cada sub-bacia tem um valor de 100. Para nosso propósito, entretanto, cada sub-bacia precisa de um id único.
3. Alterne para o modo de edição usando o botão .
4. Na calculadora de campo, formule a equação DN = $id
e clique Atualizar tudo. Clique no botão para salvar as edições.
A função $id
atribui o id de recursos exclusivo para cada recurso na tabela de atributo.
Agora precisamos adicionar um atributo com a área de superfície para cada polígono da sub-bacia.
5. Clique para adicionar uma coluna na tabela de atributo.
6. Chame o novo campo CatchArea
, indique que ele contém um número decimal (real) com um comprimento de 10 caracteres e uma precisão de 2 casas decimais. Clique em OK para criar a coluna.
7. Na calculadora de campo, formule a equação CatchArea = $area
e clique Atualizar tudo.
A tabela de atributos agora tem ids e áreas de superfície exclusivas para cada sub-bacia.
8. Clique no botão para salvar as edições e desativar a edição.
Agora temos que preparar os dados de cobertura do solo.
3. Preparando os Dados de Cobertura do Solo
Agora temos que preparar os dados de cobertura do solo, que consistem nas seguintes etapas pelas quais você será orientado nas próximas seções:
- Fazer o Download dos dados CORINE 2018
- Estilize a camada de cobertura do solo
- Cortar e reprojetar a camada de cobertura do solo
- Agregar as classes de cobertura do solo
- Dissolver feições de cobertura do solo
3.1. Baixando dados CORINE 2018
No capítulo anterior, usamos os dados CORINE 2012 WMS. Para os cálculos, no entanto, não podemos usar as imagens renderizadas WMS, precisamos acessar os dados. Os dados do CORINE 2018 podem ser baixados da Internet.
1. Abra o navegador e vá para https://land.copernicus.eu/pan-european/corine-land-cover.
2. Clique em CLC 2018.
Você verá um mapa online com uma visualização da camada.
3. Clique na guia Download.
4. Para fazer o download, você precisa de uma conta. Clique no link para se registrar.
Uma vez logado, você pode escolher entre diferentes formatos de dados.
Aqui, usaremos o formato GeoPackage, porque precisamos de dados vetoriais.
5. Marque a caixa antes do formato GeoPackage.
6. Clique no botão Download.
O arquivo tem 3,5 GB. Se você tiver largura de banda baixa, também pode baixar um subconjunto do conjunto de dados dos materiais do curso na página principal da lição.
7. Descompacte o conteúdo em uma nova pasta que você usará para este exercício.
8. Arraste o camada GeoPackage U2018_CLC2018_V2020_20u1para a tela do mapa.
9. No pop-up para Selecionar transformação, clique em OK para usar a equação de transformação padrão.
10. Faça os polígonos da camada catchpolygons transparente com um contorno preto e largura de traço de 0.66 mm e certifique-se de que está no topo da camada de cobertura do solo.
3.2. Estilizando o Mapa de Cobertura do Solo CORINE 2018
Agora vamos estilizar o mapa CORINE 2018 Land Cover. No conjunto de dados baixado, você encontrará uma pasta Legend. A pasta contém arquivos de legenda em diferentes formatos. Aqui, usaremos o arquivo clc_legend.qml, um arquivo de estilo de camada QGIS.
1. Clique com o botão direito do mouse na camada de cobertura da terra e escolha Propriedades. Vá para a guia Simbologia.
2. Na parte inferior da caixa de diálogo, vá para Estilo | Carregar Estilo.
3. Agora você está na caixa de diálogo do Gerenciador de estido de banco de dados. Navegue para o arquivo legend\clc_legend.qml e clique em carregar estilo.
A legenda agora é aplicada com as configurações corretas à camada de cobertura do solo.
4. Clique em OK para aceitar e retornar para a tela de mapa.
3.3. Recortar e Reprojetar o Mapa de Cobertura do Solo
A camada de cobertura do solo ainda é muito grande (mesmo se você baixou o subconjunto fornecido), então vamos preparar um subconjunto que cobre apenas as sub-bacias. Além disso, também iremos reprojetar a camada de cobertura do solo (EPSG: 3035) para a mesma projeção da camada catchpolygons (EPSG:32632). Ambas pode ser feita com uma ferramenta
1. Clique com o botão direito do mouse na camada U2018_CLC2018_V2020_20u1 e escolha Exportar | Salvar Feições Como.
2. Escolha como formato GeoPackage, digite o nome da camada Corine2018_repr
e para SCR o SCR do projeto (EPSG:32632).
3. Marque a caixa antes de Extensão e clique em Calcular a partir da camada e escolha catchpolygons. Clique em OK.
4. Copie o estilo da camada U2018_CLC2018_V2020_20u1 para a camada Corine2018_repr e remova a camada U2018_CLC2018_V2020_20u1.
O resultado deve ser assim:
3.4. Agregar Classes de Cobertura do Solo
CORINE tem diferentes níveis de classes de cobertura do solo. Os dados CORINE que temos são chamados de dados nível 3. Na tabela de atributos, o campo code_18 possui valores para o nível 3, indicados por 3 dígitos. Nesta seção, vamos agregar a classificação detalhada de nível 3 ao nível 1. Portanto, precisamos criar um novo campo com apenas o primeiro dígito de cada feição.
1. Abra a tabela de atributo da camada Corine2018_repr e alterne para o modo edição.
2. Adicione um novo campo. Dê ao atributo o Nome Level1
, escolha para Tipo Número inteiro (inteiro) e Comprimento 1
.
3. Use o botão para abrir a Caixa de Diálogo Expressão.
Vamos escrever uma expressão que recodifica todas as classes de nível 3 para o nível 1.
4. Escreva a expressão conforme mostrado na figura abaixo.
A função left
retorna uma string de com os n caracteres mais à esquerda. Aqui precisamos do primeiro caractere, então escolhemos 1 para o comprimento. Usamos a função to_int para converter a string em inteiro
5. Atualize o campo level1.
A tabela de atributos agora deve ter a seguinte aparência:
6. Desative o modo de edição e salve as edições.
3.5. Dissolver feições de Cobertura do Solo
Agora, existem muitos polígonos contíguos com a mesma classe de nível 1. Eles devem ser mesclados em um único recurso. Isso é feito com a operação de dissolver.
1. No menu principal vá em Vetor | Geoprocessamento | Dissolver.
2. Na caixa de diálogo Dissolver escolha corine2018_repr como camada de entrada e selecione o campo level1 como o Dissolver campo. Salve o arquivo como corine2018_dissolved e clique em Executar.
3. Clique em Fechar para retornar à tela do mapa quando o cálculo for concluído.
4. Abra a tabela de atributo da camada corine2018_dissolved para verificar o resultado. Agora ele deverá mostrar apenas 5 feições com classes de nível 1 de 1 a 5. Certifique que você pode clicar no campo nome para classificar o campo.
5. Remova corine2018_repr do painel de camada e estilize a camada corine2018_dissolved com cores baseadas na legenda CORINE level 3 original.
4. Interseção da Camada de Cobertura do Solo Com a Camada de Sub-bacias
Agora que preparamos a cobertura do solo e as camadas do polígono da sub-bacia, a próxima etapa é fazer a interseção das duas camadas para adicionar os limites das sub-bacias ao mapa de cobertura do solo.
1. No menu principal vá para Vetor | Geoprocessamento | Interseção.
2. Escolha a camada corine2018_dissolved como camada de entrada, escolha catchpolygons como Camada de sobreposição. Escolha corine_catch_intersected.shp
como o nome do arquivo de saída e clique em Executar.
Você verá o seguinte erro
Isso está relacionado a erros de geometria que podem ocorrer no processo de delimitação da bacia de captação onde transformamos um raster em polígono.
O erro pode ser corrigido.
3. Na Caixa de Ferramenta de Processamento pesquise pela ferramenta Corrigir geometria.
4. Na caixa de diálogo Corrigir geometria escolha catchpolygons como camada de entrada e nomeie como catchpoly_fixed.shp
o arquivo de saída e clique Executar.
5. Clique Fechar depois de concluir o processamento.
6. Copie o estilo da camada catchpolygons para a camada catchpoly_fixed e remova a camada catchpolygons.
7. Repita os passos 1 e 2 e coloque o nome no arquivo de saída da camada de interseção corine_catch_intersected_cor.shp
8. Estilize a camada corine_catch_intersected_cor copiando o estilo da camada corine2018_dissolved previamente estilizada. Verifique o resultado da interseção.
9. Remova a camada corine2018_dissolved do painel de camadas.
5. Calcular a Área da Classe de Cobertura do Solo por Sub-bacia
Agora precisamos calcular a área de classe CORINE level 1 por sub-bacia.
1. Abra a tabela de atributo da camada corine_catch_intersected_cor.
Na tabela de atributos, podemos encontrar o campo CatchArea com a área de cada sub-bacia, o campo DN com o ID único para cada sub-bacia e o campo Level1 com a CORINE nível 1 para cada feição.
Adicionaremos um novo campo e calcularemos a área de cada feição que corresponde à área de cada classe de Nível 1 em uma sub-bacia de maneira semelhante à que fizemos anteriormente para as áreas da sub-bacia.
2. Altere para o modo de edição.
3. Adicione um campo ClassArea
com Tipo com Número Decimal (real), Comprimento 10
, e Precisão 2
.
4. Use a calculadora de campo para calcular ClassArea = $area
e clique em atualizar tudo.
5. Agora adicione um campo para porcentagem de cala classe CORINE Level 1 em cada sub-bacia. chame o campo Percentage
com Tipo como Número Decimal (real), Comprimento 4
, e Precisão 1
.
6. Use a calculadora de campo para calcular Percentage = (ClassArea/CatchArea) * 100
. Você pode usar a caixa de diálogo expressão para formular a equação.
7. Clique em Atualizar tudo para atribuir a porcentagem a cada feição.
8. Para completar a tabela de atributos, adicione um campo com nomes de classes nível 1 como texto. Chame esse campo de Landcover
. Use a função CASE...WHEN
para isso:
Com esta função, você pode escrever condições. Isso, por exemplo, significa: se o atributo Nível1 for igual ao valor 1, o resultado é a string Artificial, etc.
9. Desative a edição e salve as edições.
A tabela de atributos agora deve ter a seguinte aparência:
6. Criar um Gráfico de Pizza Usando o Complemento Data Plotly
Agora que temos a porcentagem de cobertura do solo para cada sub-bacia, podemos criar gráficos de pizza. Uma maneira é copiar as colunas e colá-las no software de planilha para processamento posterior. Outra forma é usar o complemento Data Plotly, que usaremos aqui.
1. Instale o complemento Data Plotly do Gerenciador de Complemento.
Faremos um gráfico de pizza cada sub-bacia. Atribuímos anteriormente um ID exclusivo para cada sub-bacia no campo DN.
2. Na tabela de atributos da camada corine_catch_intersected_cor, selecione todas as feição com DN = 0. Você pode usar a caixa de diálogo Selecionar feições por expressão clicando no botão . Alternativamente, você pode classificar a tabela de atributos no DN e usar o botão Ctrl e selecionar várias feições com DN = 0.
3. Clique no botão para abrir o painel Data Plotly.
4. Em Plot Type escolha Pie Plot. Em Plot Parameters escolha a camada corine_catch_intersected_cor, marque a caixa antes Use only selected features, para Grouping field escolha Landcover, e para Y campo Percentage.
5.Clique no botão para definir as propriedades de legenda.
6. Clique no botão Create Plot e verifique o resultado.
7. Com o botão Export to image você pode exportar o gráfico para um arquivo .png.
O resultado deve ser assim:
Você pode repetir isso para as outras sub-bacias.
7. Conclusão
Nesta lição, você aprendeu a: