来自:https://pro.arcgis.com/zh-cn/pro-app/tool-reference/appendices/using-the-in-memory-output-workspace.htm

使用 in_memory 工作空间的注意事项

ArcGIS 应用程序、ArcGIS Pro、ArcMap 和 ArcGIS Server 均具有基于内存的工作空间,即 in_memory 工作空间,可向其中写入输出要素类、表以及栅格数据集。还可以使用 in_memory 工作空间向文件、文件地理数据库或企业级地理数据库中写入输出。写入 in_memory 工作空间通常会快很多,但并不总是如此。写入 in_memory 工作空间的数据是临时的,关闭应用程序后数据会丢失,因此 in_memory 工作空间是从模型和 Python 脚本工具中创建的中间数据的理想位置。

要写入 in-memory 工作空间,请指定以 in_memory 开头的输出数据集路径,例如 in_memory/outputParcels。

警告:

in_memory 工作空间不支持地理数据库元素,例如子类型、属性域、制图表达、拓扑、几何网络、网络数据集或要素数据集。

通过 ArcGIS Pro 使用 In_memory 工作空间

ArcGIS Pro 是 64 位多线程应用程序。任何 64 位软件程序都会比 32 位软件应用程序使用更多 RAM,32 位软件应用程序会将每个应用程序的 RAM 限制为 3 GB。每次在地理处理窗格或 Python 窗口中运行一个地理处理工具无法充分利用 in_memory 工作空间;事实上,这样做可能会导致性能损失。因为 ArcGIS Pro 是多线程应用程序,它可以利用多个 CPU 同时执行多个任务。写入 in_memory 工作空间的地理处理操作会将该操作的结果保存在其他线程不可用的特定内存块中。输出必须保存到磁盘(文件夹或地理数据库)中,以使所有线程可对输出进行操作。如果将单个地理处理操作的输出写入 in_memory,则在应用程序中显示输出前,将创建输出并将其复制到地理数据库中。如上所述,in_memory 工作空间仅适用于在模型和脚本内创建中间数据。模型或脚本工具将在单线程中执行,并且可以访问相同的 in_memory 工作空间;一系列链接工具通常比一系列从磁盘读写的工具的执行速度更快。

管理 in_memory 工作空间

如果使用 in_memory 工作空间,则可能需要尽快删除所有中间数据以释放系统内存。可以使用删除工具删除 in_memory 工作空间中的数据。既可删除单个数据集,也可删除整个工作空间以便清除所有工作空间内容。空的 in_memory 工作空间将继续供进一步使用。

通过模型使用 in_memory

创建模型时,可以通过输入和输出参数来连接工具。作为一个工具的输出,并在另一个工具中用作进一步处理的输入的数据通常被称为中间数据。将中间输出写入 in_memory 工作空间可能会减少在 ArcGIS Pro 中使用模型的总执行时间。构建使用 in_memory 工作空间的模型的另一个好处是:如果将其作为 web 工具共享到 ArcGIS Enterprise,则在服务器上执行时,该模型将继续使用 in_memory 工作空间。

作为工具执行模型时,默认情况下会将定义为参数的输出添加到地图。可将这些输出写入 in_memory 工作空间;但是,执行工具时,会将其转换为本地地理数据库中的要素类。您可能希望将模型参数写入 %scratchGDB% 或磁盘上的其他完整路径,而不是在 in_memory 工作空间中创建输出并最终将其转换为要素类,因此转换仅发生一次。

注:

写入 in_memory 时,无法使用添加至显示参数选项。地理处理输出必须写入磁盘或地理数据库,才能显示在地图中。

通过 Python 和 Arcpy 使用 in_memory

通过 Python 脚本工具使用 in_memory 工作空间可以提供与使用模型工具相同的优势。与将输出写入磁盘相比,将中间数据写入 in_memory 工作空间通常会更快。以下示例将针对缓冲区和擦除工具在 in_memory 工作空间中创建中间数据集。融合工具中的 FinalOutput 可在工作空间设置中定义的 Habitat 地理数据库中创建要素类。

在 in_memory 工作空间中创建输出

import arcpy
# Set the geoprocessing workspace
arcpy.env.workspace = r"C:\Data\Habitat.gdb"
# Buffer a Roads layer, writing output to in_memory
arcpy.Buffer_analysis("Roads", "in_memory/Buffers", 1000)
# Erase the buffers from a Vegetation layer
arcpy.Erase_analysis("Vegetation", "in_memory/Buffers", "in_memory/Erased")
# Dissolve the in_memory output of Erase to make a final output
arcpy.Dissolve_management("in_memory/Erased", "FinalOutput")

使用 in_memory 工作空间的注意事项的更多相关文章

  1. 在 Python 中使用 in_memory 工作空间

    在 Python 中使用 in_memory 工作空间 在 Python 脚本中,in_memory 工作空间仅对地理处理工具有效:它不是可以写入任何数据的通用虚拟目录. 您可以按以下代码示例所示使用 ...

  2. 了解有关 in_memory 工作空间的详细信息

    ArcGIS 提供了一个可写入输出要素类和表的内存工作空间.作为将地理处理输出写入磁盘上的某个位置或网络位置的备选方案,可将输出写入内存工作空间中.通常,将数据写入内存工作空间要明显快于写入其他格式( ...

  3. shapefile 输出的地理处理注意事项

    多年来,ESRI 为存储地理信息开发了三种主要数据格式 - coverage 格式.shapefile 格式及地理数据库格式.其中,所开发的 Shapefile 为存储地理及属性信息提供了一种简单的非 ...

  4. shapefile 输出的地理处理注意事项(转载)

    来源:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#//005600000013000000 多年来,Esri 为存储地理信息 ...

  5. MATLAB/Excel-如何将Excel数据导入MATLAB中

    在使用MATLAB对矩阵进行数据处理时,为了方便编辑与修改,常常需要先将数据录入到Excel中,然后再将其导入到MATLAB中参与矩阵运算.本文在MATLAB 2013a和Office 2013环境下 ...

  6. IntelliJ IDEA 14.x 创建工作空间与多个Java Web项目

    以往的Eclipse.NetBeans等开发工具不同,IDEA的Project相当与Eclipse的Workspace,而Module相当于Project. 下边就给出Eclipse与IDEA的概念的 ...

  7. Ubuntu16.04 部署配置GO语言开发环境 & 注意事项

    1. 安装GO 安装go语言包: $ curl -O https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz   下载完成后 ...

  8. ubuntu16.04 + Kdevelop + ROS开发和创建catkin_ws工作空间

    https://blog.csdn.net/p942005405/article/details/75715288 https://blog.csdn.net/LOVE1055259415/artic ...

  9. jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧

    这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...

随机推荐

  1. 充值css样式

    @charset "utf-8"; /*reset CSS*/ body,ul,ol,dl,dd,h1,h2,h3,h4,h5,h6,figure,form,fieldset,le ...

  2. Nginx笔记一

      nginx: 为什么选择nginx: nginx是一个高性能的web和反向代理服务器. 作为web服务器:使用更少的资源,支持更多的并发连接,更高的效率,能够支持高达5w个并发连接数的相应, 作为 ...

  3. redis系列一: windows下安装redis

    一. 下载Redis Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 red ...

  4. CAFFE(FAQ.2):Ubuntu 配置caffe 框架之数据库读取,错误解决:ImportError: No module named leveldb解决办法

    Z: 在安装了caffe框架后需要读取大量的数据进行学习训练.比如在MNIST识别训练中,一般直接读图片会比较耗时,我们一般将图片转存为数据库中.目前主流的数据库有以下两种选择: LevelDB Lm ...

  5. 【2017-06-16】Jquery获取dropdownlist选中的内容

    var Text = $("#DropDownList1 option:selected").text(); 注意:DropDownList1和option之间有个空格!!!

  6. 车钥匙开关上找不到+24V的问题 - 岱峰 - DGY90

    背景: 本人外行,用万用表,在车身电路上查找电瓶正极. 机种:吊管机:机型:岱峰-DGY90 过程: 经过测试,车钥匙开关各连接点电压: 标记B - OFF时电压0,ON时电压+25V 标记BR - ...

  7. linux——在windows上搭建linux练习环境

    程序员自己研究——java-linux-php——环境搭建 需要首选准备一个linux环境. 1,可用安装一个虚拟机:VMware虚拟机 2,安装一个VMware大约5分钟左右. 3,截止目前2019 ...

  8. linux中部署django项目

    通过Nginx部署Django(基于ubuntu) Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器 ...

  9. PHP获取mysql数据表的字段名称及详细属性

    SHOW DATABASES //列出 MySQL Server 数据库. SHOW TABLES [FROM db_name] //列出数据库数据表. SHOW CREATE TABLES tbl_ ...

  10. linux下动态库中的soname

    soname( Short for shared object name) 其是应用程序加载dll 时候,其寻找共享库用的文件名.其格式为 lib + math+.so + ( major versi ...