Suite

Utiliser python pour faire une interpolation sur la calculatrice de champ

Utiliser python pour faire une interpolation sur la calculatrice de champ


J'ai besoin d'incrémenter une ligne dans la table attributaire :

def func (w,v,pot): retour pot + ((pot+1 - pot)/(v+1 - v))*(w-v)

Le "+1" n'est pas l'ajout du numéro un à la variable, c'est l'intention d'incrémenter + 1 ligne dans cette colonne de cette variable. C'est parce que je dois calculer l'enregistrement réel en utilisant les enregistrements de la ligne suivante.

Comment puis je faire ça? Je sais que c'est basique, mais je ne connais vraiment pas python.


Je ne connais pas de technique pour accéder à l'enregistrement suivant. Mais vous pouvez accéder au précédent enregistrer à l'aide du calculateur de champ. En utilisant Python et un bloc de code, vous devez disposer d'une variable globale qui conserve la valeur de l'enregistrement précédent. Ce serait quelque chose comme :

pot_previous = Aucun v_previous = Aucun def func (w,v,pot) : global pot_previous global v_previous si pot_previous est Aucun ou v_previous est Aucun : pot_previous = pot v_previous = v return result_value = pot + ((pot_previous - pot) / (v_previous - v))*(wv) pot_previous = pot v_previous = v return result_value

Vous pouvez probablement faire ce que vous aviez l'intention de faire en triant vos dossiers dans l'ordre inverse de ce que vous aviez prévu initialement.

Consultez également cette question GIS.SE et l'aide du centre de ressources ArcGIS (section "Calculs cumulatifs et séquentiels").


Voir la vidéo: Ohjelmoinnin perusteet Pythonilla, luento 1 osa 1