Более

Написание инструмента сценария Python, позволяющего ModelBuilder пропускать растры без данных?

Написание инструмента сценария Python, позволяющего ModelBuilder пропускать растры без данных?


Этот конструктор моделей работает хорошо, пока растр не переходит в полигон. На этом этапе растры без признаков вызывают ошибку (ошибка 010151). Я хотел бы добавить шаг перед растром к полигону, который заставит модель пропускать эти «безэлементные» растры. У меня очень мало опыта работы с Python и растрами, и мне нужна помощь. Я попытался создать последовательность подсчета строк, но это не сработало, потому что у растров не было таблицы для проверки.


Я оговорюсь в своем ответе, предупредив, что у меня небольшой опыт конструктора моделей, но вот что я смог выяснить.

Я нашел этот пост, и для меня лучше всего сработал третий метод для определения, есть ли в растре значения.

Я создал.pyфайл и добавил этот код:

import arcpy import numpy ras = arcpy.GetParameterAsText (0) array = arcpy.RasterToNumPyArray (ras) if numpy.max (array)> 0: arcpy.SetParameterAsText (1, ras) else: arcpy.SetParameterAsText (1, "") arcpy .SetParameterAsText (2, "Истина")

Затем я создал собственный набор инструментов ArcGIS и добавил свой скрипт:

Я добавил несколько основных свойств:

Я добавил путь к файлу python:

Я установил свойства параметра, как показано ниже. УбеждатьсяИмеет ценностииНе имеет ценностейиметь их направление, установленное наВыход:

Затем я смог включить скрипт в конструктор моделей, перетащив его:

Если у растра есть значения, вывод «Имеет значения» будет строкой пути к растру. В противном случае это будет пустая строка.


Смотреть видео: Using the Python Window in ArcMap to Run Tools