Практически все инструменты геообработки производят обработку входных наборов и создают новые наборы данных. При использовании инструментов геообработки не очень удобно прописывать полностью имя и место хранения набора данных, например:
E:\Data\D052753_a\infrastructure\BK16_c1\approved.gdb\roads\mjrst
Ввод такого имени набора данных занимает много времени, и здесь легко допустить ошибку. Поэтому среда геообработки позволяет вам перетаскивать наборы данных или слои в поля диалогового окна инструмента, а также использовать кнопку , чтобы перейти к набору данных, или выбирать слой из ниспадающего списка. Кроме того, есть две функции, предназначенные для упрощения задания входных и выходных наборов данных: параметры среды текущая рабочая область и временная рабочая область.
Ниже приводится краткое описание текущей и временной рабочих областей:
- Вы указываете текущую и временную рабочие области в окне Параметры среды геообработки, доступ к которому можете получить, нажав Геообработка > Параметры среды.
- Параметры настройки ваших текущей и временной рабочих областей, как и все параметры среды геообработки, сохраняются в вашем документе карты.
- В ArcMap текущая и временная рабочие области автоматически устанавливаются такими же, как и база геоданных по умолчанию. Вы всегда можете изменить настройки текущей и временной рабочих областей, указав другую базу данных, отличную от базы геоданных по умолчанию.
- При использовании диалогового окна инструмента или запуске инструмента из среды Python вы можете указать основное имя набора данных, и инструмент найдет его в текущей рабочей области.
- При использовании диалогового окна инструмента, имена выходных наборов данных создаются автоматически с помощью параметров текущей и временной рабочих областей.
Установка параметра среды текущей рабочей области
- В ArcMap щелкните Геообработка > Параметры среды.
Появится окно Параметры среды.
- Разверните категорию Рабочая область и укажите путь к рабочей области. На рисунке ниже видно, что в качестве текущей рабочей области выбран путь к набору классов объектов в базе геоданных D:\ArcTutor\BuildingaGeodatabase\Montgomery.gdb\Landbase.
В качестве текущей рабочей области вы можете установить папку, базу геоданных или набор классов объектов в базе геоданных.
- Щёлкните OK.
Существует еще несколько способов установки параметров среды. Вы также можете установить параметры среды таким образом, чтобы они были использованы для всех инструментов, только для одного инструмента, модели, процесса модели или скрипта.
Использование основных имен
Смысл параметра текущей рабочей области в том, чтобы один раз задав рабочую область, далее при указании пути для входных и выходных данных использовать только основное имя набора данных. Имя набора данных состоит из нескольких частей - имени рабочей области и самого имени набора данных, как показано ниже.
Пример использования имен самих наборов данных
На рисунке ниже показана база геоданных, которая используется в качестве текущей рабочей области. Текущая рабочая область задана как D:\BuildingaGeodatabase\Montgomery.gdb\Landbase.
Как только рабочая область будет выбрана, вы сможете просто вводить имя набора данных, когда это необходимо. Ниже приводится пример использования инструмента Вырезать.
- При добавлении к основному имени набора данных (Blocks) текущей рабочей области получается полное имя пути к набору данных (D:\BuildingaGeodatabase\Montgomery.gdb\Landbase\Blocks). Значение параметра Входные объекты будет замещено этим именем набора данных.
- Уникальное имя выходного набора данных будет сгенерировано автоматически. Основное имя выходного набора данных будет соответствовать основному имени входного (Blocks) с добавлением нижнего подчеркивания и имени инструмента – в данном случае Clip, и, при необходимости, для обеспечения уникальности имени будет добавлено число.
- Если вы не хотите использовать выходное имя, генерируемое автоматически, вы можете удалить его и использовать другое имя для набора данных, к которому будет автоматически добавлен полный путь, как показано ниже.
После того, как произведете запуск инструмента, вы можете обнаружить, что выходной набор данных не был записан в нужную папку, потому что при вводе пути к выходному набору данных вы допустили ошибку. Вы также можете забыть, куда была произведена запись выходных данных. В этом случае откройте окно Результаты, в нем содержится информация о ходе выполнения инструмента, а также сведения о входных и выходных наборах данных.
Вы также можете использовать имя набора данных при запуске инструментов в пакетном режиме, как показано на рисунке ниже.
Отображение рабочей области в диалоговом окне инструмента
Вы можете задержать указатель мыши на кнопке обзора , и отобразится последняя рабочая область, которую вы просматривали, как показано ниже.
Когда вы щелкните на кнопке обзора, диалоговое окно Обзор откроется в текущей рабочей области.
Текущая рабочая область и имя наборов данных в коде скриптов
В окне Python в качестве рабочей области используется текущая рабочая область. После установки рабочей области вы можете использовать имя любого набора данных в этой рабочей области, как показано на рисунке ниже.
import arcpy
arcpy.env.workspace = "c:/projects/RedRiverBasin/data.gdb"
arcpy.Intersect_analysis(["roads", "streams"], "stream_crossings", "#", 1.5, "point")
Ниже приводится пример скрипта Python, в котором используется команда для выбора рабочей области:
# Purpose: Determine the type of vegetation within 100 meters of all stream
# crossings
import arcpy
# Set the workspace (to avoid having to type in the full path to the data
# every time)
arcpy.env.workspace = "c:/projects/RedRiverBasin/data.gdb"
# Process: Find all stream crossings (points)
arcpy.Intersect_analysis(["roads", "streams"], "stream_crossings", "#", 1.5,
"point")
# Process: Buffer all stream crossings by 100 meters
arcpy.Buffer_analysis("stream_crossings", "stream_crossings_100m", "100 meters")
# Process: Clip the vegetation feature class to stream_crossings_100m
arcpy.Clip_analysis("vegetation", "stream_crossings_100m",
"veg_within_100m_of_crossings")
# Process: Summarize how much (area) of each type of vegetation is found within
# 100 meters of the stream crossings
arcpy.Statistics_analysis("veg_within_100m_of_crossings",
"veg_within_100m_of_crossings_stats",
[["shape_area", "sum"]], "veg_type")
Параметр среды временной рабочей области
Помимо текущей рабочей области существует параметр среды временной рабочей области. Настройка временной рабочей области производится таким же образом, как и текущая рабочая область.
В основном временная рабочая область используется в ModelBuilder. ModelBuilder необходима рабочая область для записи промежуточных наборов данных - наборы данных, которые не нужны после завершения всех процессов в модели. Хотя основное применение этого параметра - ModelBuilder, вы можете установить ее для диалоговых окон инструментов. Иногда вы можете установить временную рабочую область для запуска в ModelBuilder, а затем забыть обновить значение этого параметра перед запуском инструмента из его диалогового окна.
Если вы производите установку временной рабочей области, то инструменты будут использовать ее для автоматической генерации пути к наборам данных, а не текущую рабочую область, как показано на рисунке ниже.
Автоматически создаваемые пути к выходным данным
Все инструменты произведут создание имени выходного набора данных. Логика для создания выходного имени выглядит следующим образом:
- Если параметр среды Временная рабочая область задан, автоматически создаваемым путем выходных данных будет временная рабочая область.
- Если временная рабочая область не задана, программа обратится к текущей рабочей области. Если текущая рабочая область задана, автоматически создаваемые выходные данные будет расположены в ней.
- Если ни одна из рабочих областей не заданы, то в качестве автоматически создаваемого пути будет использована рабочая область одного из входных наборов данных. В этом случае применяются определенные ограничения. Например, если рабочей областью является папка, а в качестве выходных данных создается класс пространственных объектов, то на выходе будет создан шейп-файл в папке на один уровень выше рабочей области покрытия. Есть и другие ограничения, такие как доступная запись. В некоторых случаях выходные данные будут записаны в системную временную папку.
- Если вы укажете для выходного набора данных имя только самого набора данных, параметр среды Текущая рабочая область будет использован для создания выходного пути, независимо от того, была ли задана Временная рабочая область.