Esses códigos podem ser colocados diretamente na Calculadora de Campo, incluindo no Graphical Modeler (campo Fórmula). É preciso apenas adaptar os nomes das colunas que contêm as porcentagens de usos.
Diversidade de Shannon não normalizada
# Se a porcentagem não for zero, somar a porcentagem x logaritmo da porcentagem
# Se for zero, somar zero
-(if("PorcentagemResidencial" <> 0, "PorcentagemResidencial"*ln("PorcentagemResidencial"),0)+
if("PorcentagemComercios" <> 0, "PorcentagemComercios"*ln("PorcentagemComercios"),0)+
if("PorcentagemInstitucionais" <> 0, "PorcentagemInstitucionais"*ln("PorcentagemInstitucionais"),0)+
if("PorcentagemHoteis" <> 0, "PorcentagemHoteis"*ln("PorcentagemHoteis"),0))
Diversidade de Shannon normalizada
# Se a porcentagem não for zero, somar a porcentagem x logaritmo da porcentagem
# Se for zero, somar zero
# ao final, divide pelo logaritmo do total de usos
-((if("PorcentagemResidencial" <> 0, "PorcentagemResidencial"*ln("PorcentagemResidencial"),0)+
if("PorcentagemComercios" <> 0, "PorcentagemComercios"*ln("PorcentagemComercios"),0)+
if("PorcentagemInstitucionais" <> 0, "PorcentagemInstitucionais"*ln("PorcentagemInstitucionais"),0)+
if("PorcentagemHoteis" <> 0, "PorcentagemHoteis"*ln("PorcentagemHoteis"),0))/ln(4))
Riqueza
# Se a porcentagem não for zero, contar 1 para a riqueza
if("TotalResidencias" <> 0, 1,0)+
if("TotalComercio" <> 0, 1,0)+
if("TotalInstitucionais" <> 0, 1,0)+
if("TotalHoteis" <> 0, 1,0)
Simpson
# Soma o quadrado das porcentagens de cada uso
"PorcentagemResidencial"^2+"PorcentagemComercio"^2+"PorcentagemInstitucionais"^2+"PorcentagemHoteis"^2
Hill
# Simpson = campo da tabela com o índice de Simpson já calculado
# Shannon = campo da tabela com o índice de Shannon não normalizado
(1/Simpson)/exp(Shannon)
Referência
Gehrke, S. R., & Clifton, K. J. (2014). Operationalizing Land Use Diversity at Varying Geographic Scales and Its Connection to Mode Choice: Evidence from Portland, oregon. Transportation Research Record: Journal of the Transportation Research Board, 2453(1), 128–136. https://doi.org/10.3141/2453-16
Python no QGIS