Skip to main content

Анализировать путь (Инструменты модели)

Краткая информация

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

Более подробно о том, как работает инструмент Анализировать путь в ModelBuilder

Использование

  • Этот инструмент доступен только в ModelBuilder для использования в моделях. Этот инструмент недоступен в панели Геообработка или в Python.

  • Можно добавить более одного имени переменной, чтобы создать уникальные имена для выходных данных, например, C:\Temp\Out_%Name%_%Workspace Name%.

  • Например, если в качестве входных данных этот инструмент содержит C:\1Tool Data\City Roads.shp, он будет разобран на следующие выходные данные:

    Анализ

    Результат

    Путь

    C:\1Tool Data

    Имя

    City Roads

    Расширение

    shp

    Имя рабочей области

    1Tool Data

    Если параметр Форматировать имя, расширение и рабочую область включен, указанный выше путь будет преобразован в следующие выходные данные:

    Анализ

    Результат

    Путь

    C:\1Tool Data

    Имя

    City_Roads

    Расширение

    shp

    Имя рабочей области

    _1Tool_Data

  • Эту же функциональность можно получить при написании скриптов с помощью модуля Python os. Например, если в качестве входных данных будет передана следующая переменная:

    inData = r"C:\1Tool Data\City Roads.shp", тогда

    • Получить имя City Roads

      import os
      name = os.path.basename(inData)
      
    • Получить путь C:\1Tool Data

      import os
      path = os.path.dirname(inData)
      
    • Чтобы получить расширение файла shp

      import os
      ext = os.path.splitext(inData)[1][1:]
      
    • Получить имя рабочей области 1Tool Data

      import os
      folder = os.path.basename(os.path.dirname(inData))
      

    Для выполнения анализа пути аналогично тому, как это происходит при отметке опции Форматировать имя, расширение и рабочую область, выполните следующие действия:

    • Получить имя City_Roads

      import os
      import re
      name = os.path.basename(inData)
      name = re.sub('[^0-9a-zA-Z]+', '_', name)
      if name[0].isdigit():
          name = "_" + name
      
    • Получить путь C:\1Tool Data

      import os
      path = os.path.dirname(inData)
      
    • Чтобы получить расширение файла shp

      import os
      ext = os.path.splitext(inData)[1][1:]
      
    • Получить имя рабочей области _1Tool_Data

      import os
      import re
      folder = os.path.basename(os.path.dirname(inData))
      folder = re.sub('[^0-9a-zA-Z]+', '_', folder)
      if folder[0].isdigit():
          folder = "_" + folder
      
  • Выходные данные Пути этого инструмента имеют тип данных рабочей области и могут быть напрямую подключены в качестве входных данных к параметру Расположение класса объектов инструмента Расположение класса объектов, который принимает тип данных рабочей области в качестве входных данных. Для таких инструментов, как Копировать, у которых нет параметра типа данных рабочей области, значение Путь можно передать инструменту с помощью замены встроенной переменной, например, %Path%\Out_%Name%.%Extension%.

    Инструмент Анализировать путь с инструментом Создать класс объектов

Параметры

Подпись Объяснение Тип данных

Входные значения

Входные значения, которые будут проанализированы.

Any Value

Форматировать имя, расширение и рабочую область

(Дополнительный)

Указывает, будут ли удалены все зарезервированные символы.

  • Checked—Зарезервированные символы будут удалены.

  • Unchecked—Зарезервированные символы не будут удалены. Используется по умолчанию.

Boolean

Производные выходные данные

Подпись Объяснение Тип данных

Путь

Рабочая область входных данных.

Workspace

Имя

Имя файла, включая расширение.

String

Расширение

Расширение файла.

String

Имя рабочей области

Имя рабочей области.

String

Параметры среды

Этот инструмент не использует параметры среды геообработки.

Информация о лицензировании

  • Basic: Да
  • Standard: Да
  • Advanced: Да