Проверка на наличие данных

Чтобы проверить крипт на наличие данных, используйте функцию Существует (Exists).

Существует (Exists)(набор данных)

Выполняет проверку на наличие классов пространственных объектов, таблиц, наборов данных, шейп-файлов, рабочих областей, слоев и других файлов в текущей рабочей области во время выполнения. Функция возвращает булево выражение, по которому можно определить существует ли элемент.

Функция Существует (Exists)

При проверке на наличие географических данных следует использовать функцию Существует (Exists), поскольку она распознает пути к каталогам. Путь каталога — это путь, который распознает лишь ArcGIS. Например: D:\Data\Final\Infrastructure.gdb\EastValley\powerlines указывает на класс пространственных объектов линии электропередач (powerlines), который находится в наборе классов EastValley в файле базы геоданных Инфраструктура (Infrastructure). Этот путь не является действительным системным путем в операционной системе Windows, поскольку Infrastructure.gdb (папка) не содержит файл с именем Инфраструктура (Infrastructure). Другими словами, операционная система Windows не знает о существовании наборов классов или классов пространственных объектов, поэтому вы не сможете использовать такие имеющиеся функции Python, как os.path.exists. Конечно же, каждый элемент ArcGIS знает как обращаться с путями каталога. Так же можно использовать пути UNC (Universal Naming Convention).

import arcpy
from arcpy import env

env.workspace = "d:/St_Johns/data.gdb"
fc = "roads"

# Clip a roads feature class if it exists
#
if arcpy.Exists(fc):
   arcpy.Clip_analysis(fc,"urban_area","urban_roads")
ПодсказкаПодсказка:

Функция Существует (Exists) учитывает среду рабочей области геообработки, что позволяет указывать лишь базовое имя.

Если данные находятся в многопользовательской базе геоданных, имя должно быть полным.

import arcpy
from arcpy import env

env.workspace = "Database Connections/Bluestar.sde"
fc = "ORASPATIAL.Rivers"

# Confirm that the feature class exists
#
if arcpy.Exists(fc): 
    print "Verified %s exists" % fc

В скриптах поведение, установленное по умолчанию для всех инструментов, запрещает перезапись выходных данных, которые уже существуют. Это поведение можно изменить, установив для свойства overwriteOutput значение "истина (True)" (arcpy.env.overwriteOutput = True). Попытка выполнить перезапись, когда для свойства overwriteOutput выбрано значение "ложь (False)", завершится неудачей.

Связанные темы

5/10/2014