Viac

Tabuľka atribútov Odpočítajte hodnotu od predchádzajúcej hodnoty

Tabuľka atribútov Odpočítajte hodnotu od predchádzajúcej hodnoty


Mám súbor v tvare rieky a potrebujem zabezpečiť, aby každý vrchol mal nižšiu nadmorskú výšku ako predchádzajúci vrchol do kopca.

PolylineZ som skonvertoval na body pomocou ET GeoWizards.

To mi dáva hodnotu Z pre každý vrchol.

Pridal som pole s názvom ElevDiff.

Potrebujem vypočítať rozdiel v hodnotách nadmorskej výšky od predchádzajúceho vrcholu k ďalšiemu v tabuľke atribútov.

Ak je hodnota záporná, viem, že v tomto mieste čiara netečie z kopca.

Je to jednoduchá úloha v programe Excel, ale zaujíma ma, či existuje pythonový skript alebo ľahký spôsob, ako to vypočítať pomocou ArcGIS.

Nemám žiadne rozšírenia (t.j. Spatial Analyst, 3D Analyst, Newtwork Analyst).


Bol by som veľmi opatrný za predpokladu, že poradie vrcholov (FID) v tabuľke ide v poradí podľa toku rieky. Ak ste mali order_ID, dalo by sa to nastaviť tak, aby sa to namiesto toho používalo. Nie som oboznámený s ET Geo Wizard, ak vaše body majú výšku v poli a nie ako hodnoty z, nahraďte „[email protected]“ týmto názvom poľa.

import arcpy from arcpy import da vertices = "File_Name.shp" elev1 = 0 with arcpy.da.UpdateCursor (vertices, ["FID", "[email protected]", "ElevDiff"]) as cursor: for row in cursor: elev2 = float (riadok [1]) riadok [2] = (elev1 - elev2) elev1 = elev2 cursor.updateRow (riadok)