Suite

Table d'attributs Soustraire la valeur de la valeur précédente

Table d'attributs Soustraire la valeur de la valeur précédente


J'ai un fichier de formes de rivière et je dois m'assurer que chaque sommet a une altitude inférieure à celle du sommet précédent en montée.

J'ai converti le polylineZ en points à l'aide d'ET GeoWizards.

Cela me donne une valeur Z pour chaque sommet.

J'ai ajouté un champ appelé ElevDiff.

J'ai besoin de calculer la différence de valeurs d'altitude du sommet précédent au suivant dans la table attributaire.

Si la valeur est négative, je sais que la ligne ne descend pas à ce stade.

C'est une tâche facile dans Excel, mais je me demande s'il existe un script python ou un moyen simple de le calculer à l'aide d'ArcGIS.

Je n'ai pas d'extensions (i.e. Spatial Analyst, 3D Analyst, Newtwork Analyst).


Je serais extrêmement prudent en supposant que l'ordre des sommets (FID) dans le tableau va dans l'ordre du débit de votre rivière. Si vous aviez un order_ID, cela pourrait être configuré pour l'utiliser à la place. Je ne suis pas familier avec ET Geo Wizard, si vos points ont les altitudes dans un champ plutôt que comme valeurs z, remplacez "[email protected]" par ce nom de champ.

import arcpy from arcpy import da vertices = "File_Name.shp" elev1=0 avec arcpy.da.UpdateCursor(vertices, ["FID", "[email protected]", "ElevDiff"]) comme curseur : pour la ligne du curseur : elev2 = float(ligne[1]) ligne[2] = (elev1 - elev2) elev1 = elev2 curseur.updateRow(ligne)