40 пас истилоҳ: (73.5 + Log (25) * ([MAXSPEED] / 50)) бояд истифода шавад" /> 40 пас истилоҳ: (73.5 + Log (25) * ([MAXSPEED] / 50)) бояд истифода шавад" />
Бештар

Иҷрои Агар Изҳорот дар Python Parser of ArcGIS Field Calculator?


Ман як майдони "MAXSPEED" дорам. Ман мехоҳам Ҳисоботи Майдоне бошам, ки майдони иловагиро ҳисоб кунад ("садо"):

Агар MAXSPEED> 40 бошад, пас истилоҳи: (73.5 + Log (25) * ([MAXSPEED] / 50)) бояд барои ҳисоб кардани "садо" истифода шавад, аммо агар MAXSPEED <40 бошад, пас "садо" бояд 71,1 бошад

Ман таҷрибаи барномасозӣ надорам. Python ё VB, ҳарду барои ман кор мекунанд.

Таҳрир: sl = maxspeed

Ман фаҳмидам, ки ин мӯҳлат хуб нест. Ин дуруст аст 73.5 + 25log (sl / 50)

import math def test (sl): if sl> = 40: result = 73.5 + (25 * (math.log (sl / 50.0)) elif 30 <= sl <40: result = 71.1 else: result = 0 result return

Натиҷаи sl = 50 хуб аст (73.5), аммо ҳама қиматҳои> 50 хатост:
sl (60) = 78.06 ба ҷои 75.47
sl (70) = 81,91 ба ҷои 77,15


дар калкулятори майдонӣ бо таҳлилгари Python, "codeblock" -ро санҷед ва ворид кунед

import math def test (maxspeed): if maxspeed> = 40: return 73.5 + math.log10 (25) * (maxspeed / 50) else: return 71.1

пас САДО = ворид кунед

озмоиш (! MAXSPEED!)


Видеоро тамошо кунед: Arcpy Getting Started Python in ArcGIS (Октябр 2021).