在今年的全球用户大会上,Esri官方发布了R-ArcGIS的官方演示样例,在ArcMap和ArcGIS
pro中,直接通过Toolbox能够调用R的分析工具包,将R的分析能力直接作用在ArcGIS上面。打通了两大工具之间的壁垒,不能不说,是分析界的一大盛事啊。

视频截图例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

总所周知,R在数据分析领域的地位,宛如JAVA在编程语言领域的地位。简直就占领了开源软件的头把交椅。据统计,R的公开分析包,已经超过了6000个,至于其它的小范围的专用分析包。更是多不胜数。Esri可以打通R与ArcGIS之间的通道,不得不让人对Esri未来的战略有了各种遐想。

至于R语言和ArcGIS未来的发展,以后有机会慢慢说,今天我们来看看,这个神器的物体,究竟是神马神器。

前提条件:你的ArcGIS
的版本号必须是10.3.1以及以上的版本号。

首先,R-ArcGIS是Esri弄出来的一个开源软件,眼下所有的东西都在github上,地址例如以下:

https://r-arcgis.github.io/

打开之后。发现了这这样一个界面。从官方的说明来看。一共同拥有两大内容:

1、在ArcGIS(toolbox)中调用R语言的分析包。

2、在R语言中调用ArcGIS的工具。

要完毕这个功能,首先简单的描写叙述一下他们的沟通机制是怎么样的。

ArcGIS的toolbox提供了一个封装的环境,能够把符合规范的脚本。直接封装成在toolbox中直接运行的工具。最常见的可能是封装Python的脚本了,比方以下的工具,就是直接封装的Python脚本:

这里要对python脚本进行封装。也是有规则的,须要依照ArcGIS给定的编写方法,进行输入输出的交互。详细的Python交互方法,能够參考ArcGIS的帮助文档,我这里就不赘述了。

那么R语言的代码,也是一种脚本,依照Toolbox能够封装Python脚本的规则,R语言的脚本,依旧能够被封装到Toolbox里面,变成一个工具来运行。和Python脚本一样。仅仅须要安装ArcGIS定义好的输入和输出规则。就能够直接在ArcGIS里面调用R语言的工具了。例如以下图:直接把R语言的脚本,封装到了ArcToolbox中。

封装和编写工具,以后有机会慢慢聊,今天我们先来看看怎样安装这一套环境。

首先,ArcGIS还没有把R环境像Python一样集成到ArcGIS的安装包里面(当然,假设按这样的趋势下去,我认为未来总有一天会被集成的)。

所以。要使用这一套东西,须要自己安装R语言环境。

R的安装很easy,直接下载R语言的安装包就能够了,然后所有都是下一步,并且R语言作为开源软件。不存在许可授权的情况,网络上各种安装教程,不做罗嗦。

贴一个R语言的下载地址,官方网址:https://www.r-project.org/

安装的时候注意。假设你的电脑是64位的。最好选择64位的安装。由于64位的安装包里面,包含了32位的,可是32位的不包含64位,所以。你仅仅须要依照64位的,就等于所有可用了。ArcMap使用的是32位的R,所以你也能够选择仅仅安装32位的,可是我个人建议。是32位和64位都装上。

另外,Esri官方建议,须要用刀R的3.1.0以上版本号,仅仅要你去官网上下载最新,自然就不会用问题。

把R安装好之后。能够打开測试一下R语言是否正常执行,一般来说,都R语言环境会提供两个GUI工具,例如以下:(当然。
我这里是3.2.0,你安装的版本号可能比我高,这里对版本号能够忽略,仅仅要超过3.1.0就能够了)

一个用于启动32位的R环境,一个用于启动64位的R环境。由于我们在ArcMap里面使用的是32位的,所以双击启动R
i386这个工具就可以。

以下能够来个经典程序“hello world”。

R安装完毕之后,就能够依照R-ArcGIS了,回过头来看R-ArcGIS的主页,整个R-ArcGIS提供了三个东西,一个是r-bridge-install,一个是r-bridge,一个是r-sample-tools。

第一个,r-bridge-install就是用于安装R-ArcGIS的工具,这个工具用Python写成,能够直接在ArcGIS里面调用(从这里看出Esri软件开发团队的代码水平大有进步啊。直接提供安装脚本了!)

点击下载zip之后,解压到你能够找到的位置。就能够进行安装了:

解压之后,目录的结构例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

当中,pyt这个包。就是ArcGIS的Python专用脚本包,在ArcMap中直接打开,例如以下:

打开之后。一共同拥有四个工具,各自是安装R语言与ArcGIS的桥接包、显示R语言的版本号、检查工具安装情况,和更新工具。假设是第一次安装,仅仅须要依次运行前三个就可以。

点击Install Rbindings工具,弹出例如以下窗口:

假设是你曾经安装过曾经的版本号。能够选择勾上里面的这个勾,那么会进行覆盖安装,第一次安装就什么都不用选,直接点OK即可。再次提醒,ArcGIS的版本号,必须是10.3.1及以上,当然。如今最新版本号就是10.3.1,以后有更高的版本号,就不用说了。

安装脚本执行界面例如以下,从控制台打印出来的信息能够看到。脚本事实上就是去github上,下载了一个Esri提供的,与R进行交互的zip包,这个包通常是用C++写的。下载完毕之后,会自己主动解压和安装。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

下载这个包和安装的速度。取决于你的网络(也取决于当地连接github的网络质量,你懂的)。

提示成功之后。执行一下两个工具,来检查一下是否成功:

1、输出R的版本号:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

假设版本号不正确,控制台会输出错误和警告的,成功就表示没问题。

2、检查桥接工具是否成功安装:

相同。假设不报错,就表示成功了。

然后,我们能够切回到R语言的环境里面,来看看ArcGIS的包是否在R的环境中可用。

在R语言环境中输入例如以下语句:

library(arcgisbinding)

arc.check_product()

第一句是在R语言环境中载入ArcGIS的桥接包。第二句是检查ArcGIS的许可,显演示样例如以下:

假设不报错,測试就所有完毕。然后我们能够执行官方提供的一个sample来測试一下

下载r-sample-tools,(就在主页上,不截图了,自己找),然后解压,得到例如以下文件结构:

由于我们要再ArcMap里面进行測试。所以双击打开ModelBasedClustering.mxd就能够了,由于Esri官方在这个文档里面增加了好几个online的服务,所以在本地打开,假设没有网络的话,会非常慢加报找不到图层,只是不影响,你把引用的网络服务关就能够了,例如以下:

打开R SampleTools.tbx,然后执行脚本工具:

前面两个是必选的,第一个是用于聚类的点图层,第二个是输出结果图层,后面三个是可选图层,运行工具:

这个工具调用的是R语言里面的sp包(空间分析工具包)和mclust包(聚类包)。所以,假设你是第一次执行这个工具的话,脚本会自己主动去网上将这个两个包下载而且安装到你的R环境中去。

下载安装的速度,视网络情况而定。

安装完毕之后,R语言就会运行聚类和空间分析操作。最后得到的结果例如以下:

控制台输出:

当中那个乱码。是中文提示。下载的两个包是R的3.2.1制作的,我的版本号比这个版本号老一点,不用管。

后面是一系列分析结论。

分析完毕之后,由于是空间分析,所以结果会自己主动的加入到ArcMap的显示窗中。例如以下:

至此,安装完毕。分析完毕,至于分析的结论怎样阶段。能够參考你的sample中的文档。

关于怎样在开发自己的R脚本在ArcGIS中使用,以后有机会我们再说。

R-ArcGIS探秘(1)安装以及Sample执行的更多相关文章

  1. R(二): http与R脚本通讯环境安装

    结合实际的工作环境,在开始R研究的时候,首先着手收集的就是能以Web方式发布R运行结果的基础框架,无耐的是,R一直以来常使用于个人电脑的客户端程序上,大家习惯性的下载R安装包,在自己的电脑上安装 -- ...

  2. ArcGIS 10.6 安装破解教程

    ​​美国时间2018年1月17日,ArcGIS 10.6正式面向用户发布!10.6带来更完善的产品体系框架,同时全面拥抱前沿IT技术,升级平台大数据.三维.影像等核心能力,为我们打造了一个功能强大,性 ...

  3. Deepin下phpunit安装,以及执行过程中所遇到的问题

    Deepin下phpunit安装,以及执行过程中所遇到的问题 安装phpunit步骤 wget https://phar.phpunit.de/phpunit.phar chmod +x phpuni ...

  4. ArcGIS 10.3 安装及破解

    系统环境:win7 64位操作系统. 一.ArcGIS 10.3包简介 ArcGIS 10.3 下载包含 1.  ArcGIS for Desktop ArcGIS for Desktop简介: Ar ...

  5. arcgis 10.2 安装教程

    arcgis 10.2 安装教程(含下载地址)_百度经验 http://jingyan.baidu.com/article/fc07f98911b66912ffe5199b.html arcgis 1 ...

  6. Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案

    原文:Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案 如果你是用Visual Studio自带的打包项目打包了一个I ...

  7. Hadoop-2.4.0安装和wordcount执行验证

    Hadoop-2.4.0安装和wordcount执行验证 下面描写叙述了64位centos6.5机器下,安装32位hadoop-2.4.0,并通过执行 系统自带的WordCount样例来验证服务正确性 ...

  8. linux使用npm成功安装命令后,执行时却报找不到命令的问题

    # 使用npm安装serve命令 ~$ npm install serve --global 安装成功 # 可是执行命令会报错 ~$ serve -v bash: serve: command not ...

  9. 安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法

    安装oracle11g [INS-30131] 执行安装程序验证所需的初始设置失败. 解决方法 第一步:控制面板>所有控制面板项>管理工具>服务>SERVER 启动 TCP/I ...

随机推荐

  1. ARP协议具体解释之ARP动态与静态条目的生命周期

    ARP协议详细解释之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自己主动加入和删除. q  每一个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉 ...

  2. Java代码格式

    东汉大臣陈蕃有一则这种故事,"一屋不扫何以扫天下",寓意来表明一个大丈夫,假设连自己的居室都不能打扫干净,怎么胸怀天下.<代码整洁之道>就是来劝诫我们程序猿写出更优秀的 ...

  3. wordpress 插件 之 微信自动回复机器人

    微信目前越来越火,wordpress 也拥有众多用户 那我们来写个插件,把两者连起来吧! 目前已经测试完成,下面把相关的信息分享一下. 查看演示 请加我微信公众号 创新实验室,或直接扫描最底下的二维码 ...

  4. S7:享元模式 Flyweight

    运用共享技术有效的支持大量细粒度的对象. 应用场景: A.减少对相同对象的重复创建 UML: 示例代码:如果在工厂中,有用户,我们就直接调用,没有用户,我们就获取.减少对同一uid的user对象的重复 ...

  5. Ant 风格路径表达式(转)

    ANT通配符有三种: 通配符 说明 ? 匹配任何单字符 * 匹配0或者任意数量的字符 ** 匹配0或者更多的目录 例子: URL路径 说明 /app/*.x 匹配(Matches)所有在app路径下的 ...

  6. javascript中的正則表達式

    对文本数据进行操作是JavaScript中常见的任务.正則表達式通过同意程序猿指定字符串匹配的模式来简化诸如验证表单中输入是否具有正确格式之类的任务. 1.正則表達式标记: 字符 含义 举例 i 大写 ...

  7. Quartz的cron表达式 (spring定时器 crontab)

    http://tangshuo.iteye.com/blog/184824 表达式位数最少六位,如每天凌晨一点启动:"0 0 1 * * ?" 顺序按   秒 分 时 日期 月份 ...

  8. Spring Cloud简单入门教程

    原文地址:http://www.cnblogs.com/skyblog/p/5127690.html 按照官方的话说:Spring Cloud 为开发者提供了在分布式系统(如配置管理.服务发现.断路器 ...

  9. Android 关于ZXing的使用

    1.http://blog.csdn.net/ryantang03/article/details/7831826 2.http://blog.csdn.net/xiaanming/article/d ...

  10. list操作总结. dict操作及文件操作

    1: 列表的操作 help(list) # 列表的帮助,列出所有列表的用法 type(name) # type判断数据类型是列表还是字典或者元组 isinstance("字符", ...