Riqueza de solos

Importando pacotes e inicializando geemap

import os
import ee
import geemap
import geemap.colormaps as cm
geemap.ee_initialize()

A riqueza de solos é calculada como a quantidade de componentes da unidade de mapeamento de solos.

Banco de Dados

Utilizamos a base de dados de pedologia do Instituto Brasileiro de Geografia e Estatística (IBGE) (https://geoftp.ibge.gov.br/informacoes_ambientais/pedologia/vetores/escala_250_mil/versao_2023/pedo_area.zip) para o cálculo da riqueza de solos. Utilizamos o arquivo pedo_area.shp. Calculamos a quantidade de solos componentes de cada polígono e rasterizados na escala do modelo digital de elevação utilizado nas etapas anteriores (~ 92 metros).

Códigos para a criação da riqueza de solos

As análises foram rodadas no Google Earth Engine (Gorelick et al. 2017) , devido a demanda computacional do projeto, usando o pacote geemap (Wu 2020), em Python (Python Software Foundation 2023), como interface pela facilidade na documentação e reprodutividade das análises. O JupyterNotebook para a reprodução das análises pode ser encontrado em https://github.com/Resiliencia-climatica-Brasil/diversity-resilience-python/blob/master/jupyternotebook/4_soil_diversity.ipynb.

O primeiro passo é criar uma função que conta os tipos de solos componentes de cada polígono. Concatenamos as colunas componente, component1, component2 e component3. Depois, separamos a string pelos sinais de “+”, que indicam as separações das descrições de cada tipo de solo. Em seguida, contamos quantos tipo de solos existem em cada polígono como o comprimento da lista de tipos de solos. Adicionamos uma coluna chamada soil_richness com a riqueza de solos em cada polígono.

def fun(feature):
    number = (ee.String(feature.get("componente"))
              .cat(ee.String(feature.get("component1")))
              .cat(ee.String(feature.get("component2")))
              .cat(ee.String(feature.get("component3")))
              .split("\+")
              .length())

    return feature.set("soil_richness", number)

Em seguida, importamos os dados de solo, definimos a região para exportar o dado e a escala da análise.

# Importando os polígonos de solo
solo = ee.FeatureCollection("projects/ee-lucasljardim9/assets/pedo_area")

# Importando mapa de biomas do IBGE para extrair as coordenadas mínimas e máximas do Brasil
regiao = ee.FeatureCollection("projects/ee-lucasljardim9/assets/Biome")

def func_cmp(feature):
    return feature.bounds() 

# Extraindo as coordenadas mínimas e máximas do Brasil
regiao_box = regiao.map(func_cmp).geometry().dissolve(**{'maxError': 1}).bounds()

# Extraindo a resolução do mapa
DEM = ee.Image("MERIT/DEM/v1_0_3") 

escala = DEM.projection().nominalScale()

Aplicamos a função criada anteriormente aos polígonos de solo.

solo = solo.map(fun)

Rasterizamos a riqueza de solos na mesma escala das análises anteriores.

soil_diversity = solo.reduceToImage(**{'properties':["soil_richness"],
                     'reducer':ee.Reducer.max()}) \
                     .reproject(**{'crs':"EPSG:4326",
                                  'scale':escala})

Por fim, exportamos o raster como um asset no Google Earth Engine.

# Exporte o raster de riqueza de solo 
#modifique o assetId para do seu projeto
assetId = "projects/ee-lucasljardim9/assets/soil_diversity"

geemap.ee_export_image_to_asset(
    soil_diversity, description='soil_diversity', assetId=assetId, region=regiao_box, scale=escala, maxPixels=1e13
)

O dado criado pode ser visualizado abaixo:

# Paleta de cores

palette = cm.get_palette('terrain', n_class=10)

# Centralize o mapa

Map = geemap.Map(center=(-11.75, -51.52), zoom=4)

# Importe os assets

soil_diversity = ee.Image("projects/ee-lucasljardim9/assets/soil_diversity")


# Plote o mapa

Map.addLayer(soil_diversity, {'palette':palette, 'min':0, 'max': 6}) 


Map

Referências

Gorelick, N., M. Hancher, M. Dixon, S. Ilyushchenko, D. Thau, e R. Moore. 2017. Google Earth Engine: Planetary-scale geospatial analysis for everyone. Remote Sensing of Environment.
Python Software Foundation. 2023. Python Language Reference.
Wu, Q. 2020. geemap: A Python package for interactive mapping with Google Earth Engine. Journal of Open Source Software 5(), ,:2305.