来自: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. vue-动态路由+动态组件+动态页面

    动态路由 路由组件是vue-router 动态路由即从后端请求路由信息,然后转化生成路由信息.所以这里的关键是不会提前知道什么菜单对应什么组件,因此路由声明的时候不再是写死的组件,而是可替换的动态路径 ...

  2. 使用display:table实现两列自适应布局

    在张鑫旭大神那边看到的方法,我自己写了一遍,稍微添加了一些自己的风格特色. IE6/7不支持这个属性,从IE8开始支持这个属性,对于IE6/7可以用display:inline-block解决. ta ...

  3. 【Distributed】互联网安全架构

    一.常见Web安全漏洞 1.1 XSS攻击 什么是XSS攻击手段 如何防御XSS攻击 1.2 SQL注入攻击 什么是SQL注入 SQL注入防攻击手段 MyBatis #与$区别 1.3 Http请求防 ...

  4. PHPExcel的简单使用

    一.在做PHP开发时,我们会遇到把数据导出变为execl表格的形式,使用PHPExcel就可以,下载地址:https://github.com/PHPOffice/PHPExcel,下载后会显示这么多 ...

  5. 第一章、Django概述

    目录 第一章.Django概述 一.了解软件开发架构 二.HTTP协议 三.响应状态码 四.请求方式 五.基于wsgiref模块 六..动静态网页 七.python三大主流web框架 八.安装Djan ...

  6. Django获取用户form表单

    首先创建一个Django 的工程项目 前面我们说过了,那到一个项目首先把模板路径,和静态路径在settings.py设置好以后,在开始写代码,写代码也要按照我们以前说的那个工程目录结构写. 现在我们做 ...

  7. MinGW-W64 编译 LLVM 与 Clang

    原文: http://blog.csdn.net/happywjh666/article/details/51415723 编译环境: 系统 --win10 64位 gcc -- version 5. ...

  8. redis写入性能测试

    import timeit import redis def clock(func): def clocked(*args, **kwargs): t0 = timeit.default_timer( ...

  9. delphi xe5 fastreport4.14 中文很多时换行不正确

    用一般的frxMEMOview 中文换行是瞎换,缺少数据,换成frxrichview 即可, frxrichview 使用注意点 1).Delphi中文很多时换行不正确 2).要在窗体上拖一个frxr ...

  10. 记录一下UILabel加载富文本 iOS

    一般情况下我们都习惯用webview加载富文本.但是webview比较消耗内存.然后发现其实本身可以用uilabel加载,性能还不错就记录下~~ 核心方法下面两个 -(NSMutableAttribu ...