Vairāk

Vai izvairīties no kļūdas 000539 no koda bloka rīkā Aprēķināt vērtību?

Vai izvairīties no kļūdas 000539 no koda bloka rīkā Aprēķināt vērtību?


Man nav ļoti laba izpratne par python, un esmu mēģinājis uzrakstīt koda bloku, lai mans modelis izlaistu tos, kas nesatur nekādu informāciju, un turpinātu procesu ar rasteriem, kuros ir informācija. Šī ir būtiska modeļa daļa:

Pašreizējā problēma ir tāda, ka es pastāvīgi saņemu šādu kļūdu:

Izpilde (aprēķināt vērtību): CalculateValue getValue (%Check Raster%) "def getValue (CheckRaster):  n importēt arcpy  n ja" ir vērtības ": atgriezt patiesu  n, ja" nav vērtību ": atgriezt nepatiesu" Varianta sākuma laiks : Fri Oct 30 10:16:54 2015 KĻŪDA 000539: SyntaxError: nederīga sintakse (, 1. rinda) Neizdevās izpildīt (Aprēķināt vērtību).

Mans pašreizējais vērtības aprēķināšanas rīks izskatās šādi:

Vai ir kādas idejas, kā mainīt kodu, lai vairs nebūtu sintakses kļūdu? (Pilnu modeli var atrast šeit.)

EDIT: Tālāk sniegtās atbildes bija noderīgas, taču tās vēl nav pilnībā apiejušas problēmu. Šķiet, ka manis izmantotais pārbaudes rastra rīks vienmēr dod izvadi ar “Ir vērtības”, lai gan rastra daudzstūra laikā rodas šāda kļūda: KĻŪDA 010151: C: Users boll0230 Documents ArcGIS Suability_stuff nav atrasts neviens līdzeklis 03 Scratch polygon_03.shp. Iespējama tukša funkciju klase.

Es uzskatu, ka tas nozīmē, ka tās ir problēmas ar manu pārbaudes rastra rīku. Varbūt tas ir kļuvis sarežģītāk, nekā tam ir jābūt. Vai ir iespējams kods, ko varētu ierakstīt vērtības aprēķināšanas rīkā, lai pārbaudītu funkciju [email protected] klātbūtni?


Jūsu kods ir nepareizs, un jums tas jādara:

Iestatiet savu modeli kā tādu, rīks Aprēķināt vērtību ir priekšnosacījums kādam citam rīkam, kā piemēru esmu izmantojis klipu. Lai kods darbotos, mainīgajam Raster_03 jābūt slīpsvītrai uz priekšu.

Vērtības aprēķināšanas rīkā tas ir jāiestata kā tāds (piezīmju izvades datu tips ir iestatīts uz Būla):

Kods ir ievietots ērtības labad:

importēt arcpy def CheckRaster (r): result = arcpy.GetRasterProperties_management (r, "MINIMUM") n = int (result.getOutput (0)), ja n> 1: atgriezties True else: return False

Funkcijas definīcijā vēlaties atsaukties uz rīka Check Raster izvadiem, nevis uz pašas funkcijas nosaukumu.

Arī no palīdzības:

Tipa virknes mainīgais rindiņā izteiksmē jāiekļauj pēdiņās ("%virknes mainīgais%"). Tipa numuru (dubultā, garā) rindas mainīgajiem nav nepieciešami pēdiņas (%double%).

Izmēģiniet šādu izteicienu:

getValue ("%ir vērtības%", "%nav vērtību%")

Un jūsu koda bloks:

def getValue (ir, nav): ja ir: atdod patiesu, ja ne: atgriežas nepatiesu