ArcMap 10.4: Gerando Números Aleatórios no Field Calculator
- Adauto Costa
- 31false24 GMT+0000 (Coordinated Universal Time)
- 1 min de leitura
Você sabia que é possível somar valores aleatórios a um campo no ArcMap usando o Field Calculator em Python?
Por padrão, o ArcMap executa o bloco de código apenas uma vez, o que faz muitos acharem que o random não funciona.
Por exemplo, se você fizer:
def calc(valor):
import random
return valor + random.randint(1,20)
À primeira vista, pode parecer que o resultado exibirá um número aleatório entre 1 e 20 somado ao valor original. No entanto, o que ocorre é que a parte aleatória permanece idêntica em todas as feições, como se o sorteio tivesse congelado.
A solução é simples: o truque é se quiser um resultado diferente para cada feição, usar um outro campo numérico como semente.
def calc(valor, oid):
import random
random.seed(oid)
return valor + random.randint(1,20)
A linha random.seed(oid) reinicializa o gerador de números aleatórios para cada feição, usando o valor único de um campo numérico do shapefile como base.
Basta agora calcular seus números aleatórios corretamente!
calc( !VEG_NATIVA! , !FID! )
Nesse exemplo, o campo VEG_NATIVA é o valor base, e o FID serve como semente para gerar um número aleatório exclusivo em cada feição do shapefile.
Veja como fica tudo no exemplo da imagem abaixo:

Compartilhe este conteúdo!
Comentários