Более

Код Python для зональной статистики

Код Python для зональной статистики


Я пытаюсь вычислить количество определенных ячеек растра в отдельных буферах, идентифицированных FID, и я не уверен, что еще мне нужно изменить в этом коде, чтобы он работал:

# Импортировать системные модули import arcpy из arcpy import env from arcpy.sa import * import os import numpy as np # перезаписывать существующие наборы данных arcpy.env.overwriteOutput = True arcpy.CheckOutExtension ("Spatial") # Определить рабочее пространство arcpy.env.workspace = arcpy.GetParameterAsText (0) in_features = arcpy.GetParameterAsText (1) arcpy.MakeFeatureLayer_management (in_features, "lyr") FIDS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 , 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,33, 34, 35, 36 , 37, 38, 39, 40] InputRaster = arcpy.GetParameterAsText (2) arcpy.MakeRasterLayer_management (InputRaster, "rdlayer") для элемента в FIDS: fieldName = "FID" FID_item = str (item) EXP = '"FID" = '+ str (item) print EXP arcpy.AddMessage ("Выбор из вложенных буферов, где" + EXP) arcpy.SelectLayerByAttribute_management ("shp", "NEW_SELECTION", EXP) result = int (arcpy.GetCount_management ("lyr"). getOutput (0)) результат печати arcpy.AddMessage (str (result) + «nest buffers selected») OutputTabl e = "suit_" + str (item) ZonalStatisticsAsTable ("shp", "FID", "rdlayer", OutputTable, "DATA", "SUM")

Вот что я получаю, когда запускаю его:

Отслеживание (последний вызов последним): файл "C: /Users/csetash/PycharmProjects/Covariates/SuitHab.py", строка 22, в  arcpy.MakeFeatureLayer_management (in_features, "lyr") Файл "C:  Program Files (x86)  ArcGIS  Desktop10.2  arcpy  arcpy  management.py", строка 6043, в MakeFeatureLayer поднять e arcgisscripting.ExecuteError: Не удалось выполнить . Параметры не действительны. ОШИБКА 000735: Входные характеристики: Требуется значение Не удалось выполнить (MakeFeatureLayer). Процесс завершен с кодом выхода 1

Входными данными в Select Layer by Attribute должны быть векторный слой или табличное представление. Входные данные не могут быть классом пространственных объектов или таблицей. Сделать функциональный слой

Ваш ввод - "shp", который может быть классом пространственных объектов.