来自: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. .net工作流引擎ccflow集成并增加自定义功能

    一.为什么需要自定义扩展 1.第三方类库已满足大部分需求,剩下的根据具体业务需求抽象成公共功能进行扩展 2.第三方呈现的web页面与原类库耦合度较高,希望在原页面上扩展而不影响原来的功能 3.在完全不 ...

  2. android默认获取敏感权限

    1.通过系统签名获取权限 定制系统中,可以通过源码的签名文件对应用进行签名,在应用的AndroidManifest.xml中配置好参数,如图 <manifest xmlns:android=&q ...

  3. Java,JavaScript和ABAP通过代码取得当前代码的调用栈Callstack

    Java StackTraceElement stack[] = Thread.currentThread().getStackTrace(); System.out.println("Ca ...

  4. sys和system用户的权限区别

    http://blog.sina.com.cn/s/blog_869b0f460100uckp.html Oracle sys和system用户.sysdba 和sysoper系统权限.sysdba和 ...

  5. Spring Data JPA引入和介绍

    第1章  1.ORM概述[了解] ORM(Object-Relational Mapping) 表示对象关系映射.在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中.只要有一套程序能 ...

  6. Computer Vision_1_Active Appearance Models:Active Appearance Models——2001

    此为计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面. 1. Active Appearance Models 活动表观模型和活动轮廓模型基本思想来源 Snake,现在 ...

  7. 类的命名空间与卸载详解及jvisualvm使用

    类的命名空间详解: 在上一次[https://www.cnblogs.com/webor2006/p/9108301.html]最后实验中有一个违背咱们理解的,这里回顾一下: 也就是说,"某 ...

  8. CSP2019 退役记

    本来想写"退役在即"的,考完 Day2 后直接改成"退役记"了 Day 0 在 ssf 的机房里继续变弱,自己写了一遍 splay 板子,居然写对了,开心 非常 ...

  9. 回顾了下shell 编程的一些细节

    回顾了一些细节 shell 的通配符扩展   *  ? []  [^xxxx]  {aaa,bbb}         子进程 more `grep -l POSIX *` more $(grep -l ...

  10. BZOJ3887 [Usaco2015 Jan]Grass Cownoisseur[缩点]

    首先看得出缩点的套路.跑出DAG之后,考虑怎么用逆行条件.首先可以不用,这样只能待原地不动.用的话,考虑在DAG上向后走,必须得逆行到1号点缩点后所在点的前面,才能再走回去. 于是统计从1号点缩点所在 ...