40 olduqda, müddət: (73.5 + Log (25) * ([MAXSPEED] / 50)) istifadə olunmalıdır" /> 40 olduqda, müddət: (73.5 + Log (25) * ([MAXSPEED] / 50)) istifadə olunmalıdır" />
Daha çox

ArcGIS Sahə Kalkulyatorunun Python Ayrıştırıcısındakı Bəyannaməni icra edirsiniz?

ArcGIS Sahə Kalkulyatorunun Python Ayrıştırıcısındakı Bəyannaməni icra edirsiniz?


Mənim "MAXSPEED" bir sahəm var. Əlavə bir sahəni ("səs-küy") hesablayacaq bir Sahə Hesablaması istəyirəm:

MAXSPEED> 40 olduqda, termin: (73.5 + Log (25) * ([MAXSPEED] / 50)) "səs-küy" hesablamaq üçün istifadə edilməli, MAXSPEED <40 olduqda "səs-küy" 71,1 olmalıdır

Proqramlaşdırma təcrübəm yoxdur. Python və ya VB, hər ikisi də mənim üçün işləyir.

Düzenle: sl = maxspeed

Mən bu müddətin yaxşı olmadığını anladım. Bu doğru olan 73.5 + 25log (sl / 50)

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

Sl = 50 üçün nəticə yaxşıdır (73.5), lakin> 50 dəyərləri səhvdir:
sl (60) = 75.47 əvəzinə 78.06
77.15 yerinə sl (70) = 81,91


sahə kalkulyatorunda, Python təhlilçisi ilə "codeblock" olub olmadığını yoxlayın və daxil edin

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

sonra Səs-küy = yazın

test (! MAXSPEED!)

Videoya baxın: Python in the Field Calulator