Como replicar intervalos geométricos ArcGIS no QGIS
É possível replicar os intervalos geométricos do ArcGIS na simbologia de 3 camadas do QGIS?
Estou usando o QGIS 3.10.9 LTS e gostaria de atribuir um estilo de intervalo geométrico a um shapefile simples de condados do Reino Unido que contém um campo numérico. Em QGIS-camadas-simbologia pode-se selecionar 'graduado' como o estilo e selecionar o campo numérico como 'valor', mas nenhum dos seis modos que o QGIS fornece é apropriado para minha análise: O que eu preciso é uma classificação de intervalo geométrico como a disponível no ArcGIS. Não consigo ver um plug-in que tente resolver isso e o único artigo online que posso encontrar é de 2014 e usa um script Python experimental em um site agora indisponível. Existe uma maneira de resolver essa tarefa? Meu conhecimento de Python é muito limitado.
Respostas
Esta é apenas uma resposta parcial, na melhor das hipóteses, mas é muito código para um comentário.
Para fazer a engenharia reversa de um algoritmo de distribuição geométrica em uma distribuição personalizada que eu pudesse usar para controlar a simbologia exata que eu queria em um intervalo de dados, gerei esta função (que é mais dados de três locais limitados do que eu gostaria):
import math
def computeRamp(max,bins):
vals = [ 0 ]
labs = []
cmax = math.floor((max + 0.001)*1000)/1000
a1 = pow(cmax,1.0/(bins-1))
digits = int(math.ceil(math.log(cmax,10))) + 4
labLayout = "{:@n.3f} - {:@n.3f}".replace('@n',str(digits))
lo = 0.0
hi = a1 / 4.0
vals.append(hi)
labs.append(labFormat.format(lo,hi-0.001))
lo = 0.0
hi = a1
vals.append(hi)
labs.append(labFormat.format(lo,hi-0.001))
for i in range(2,bins):
lo = hi
hi = lo * a1
vals.append(hi)
labs.append(labFormat.format(lo,hi-0.001))
return vals,labs
vals,labs = computeRamp(1234.567,6)
for i in range(len(labs)):
print("{:.3f}\n {:s}".format(vals[i],labs[i]))
print("{:.3f}".format(vals[-1]))
O que resulta na distribuição:
0.000
0.000 - 1.037
1.038
1.038 - 4.151
4.152
4.152 - 17.242
17.243
17.243 - 71.598
71.599
71.599 - 297.311
297.312
297.312 - 1234.567
1234.568
Eu trapaceio tirando um quarto do valor da primeira célula de uma progressão geométrica verdadeira (o que seria útil pow(cmax,1.0/bins), mas descobri que isso tornava mapas melhores).
Como você aplica isso ao QGIS é deixado como um exercício.