ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

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

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

Exists(dataset)

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

Функция 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

arcpy.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

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

# Confirm that the feature class exists
#
if arcpy.Exists(fc): 
    print("Verified {} exists".format(fc))

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

Связанные разделы

  • Exists
  • Настройка путей к данным в Python
  • Абсолютный, относительный пути, пути UNC и URL

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация