ArcGIS имеет виртуальную рабочую область, в которую могут записываться выходные классы объектов и таблицы. Запись выходных данных инструментов геообработки в виртуальную рабочую область является альтернативой их сохранению на жестком диске или в сети. Запись данных в виртуальную рабочую область часто происходит значительно быстрее, чем запись в другие форматы, такие как шейп-файл или класс объектов базы геоданных. Однако данные, записанные в виртуальное пространство, являются временными и удаляются при закрытии приложения.
Для записи в виртуальную рабочую область, используйте путь in_memory, как показано ниже.
Если вы решили записывать выходные данные в виртуальную рабочую область, необходимо иметь в виду следующее.
Управление виртуальной рабочей областью
Когда данные записываются в виртуальную рабочую область, используется физическая память компьютера (RAM). Если записывается слишком много данных, вся доступная память может оказаться занятой, и другие данные не смогут записываться в память. Также, если большая часть или вся память компьютера использована для записи данных, может оказаться, что для эффективной работы приложений, требующих интенсивных вычислений, например, ArcGIS, памяти недостаточно. В этой ситуации, работа приложения может существенно замедлиться.
В некоторый момент, преимущество использования виртуальной рабочей области может привести к замедлению работы приложения. При наступлении этого момента затрагивается работа других запущенных приложений и начальный объем доступной физической памяти. Не используйте виртуальную рабочую область, если объем данных слишком велик и может замедлить работу приложения.
При использовании виртуальной рабочей области любые промежуточные данные должны удаляться как можно быстрее, чтобы освободить ресурсы памяти. Для удаления данных в виртуальной рабочей области можно использовать инструмент Удалить (Delete). Можно удалять отдельные таблицы или классы пространственных объектов, также, можно удалить всю виртуальную рабочую область вместе со всем содержимым.
Расположение виртуальной рабочей области
Местоположение таблицы, класса объектов или растра, записанных в виртуальную рабочую область, записывается в виде GPInMemoryWorkspace, как показано ниже.
Длинная строка символов в фигурных скобках {} после GPInMemoryWorkspace является уникальным идентификатором, который назначается и используется ArcGIS.
Использование in_memory в Python
Также можно использовать рабочую область in_memory в Python, как показано в следующем примере кода.
import arcpy
table = arcpy.CreateTable_management("in_memory", "table1")
arcpy.AddField_management(table, "Field1", "TEXT", field_length=20)
cursor = arcpy.da.InsertCursor(table, ["Field1"])
cursor.insertRow(["Hello World"])
Рабочая область in_memory годится только для инструментов геообработки; она не является виртуальной папкой общего назначения, в которую можно записывать любые данные.
Для удаления данных в виртуальной рабочей области из скрипта используйте инструмент Удалить (Delete). Можно удалять отдельные таблицы или классы пространственных объектов, также можно удалить всю виртуальную рабочую область вместе со всем содержимым.