R-ArcGIS探秘(1)安装以及Sample执行
在今年的全球用戶大會上,Esri官方發(fā)布了R-ArcGIS的官方演示樣例,在ArcMap和ArcGIS pro中,直接通過Toolbox能夠調(diào)用R的分析工具包,將R的分析能力直接作用在ArcGIS上面。打通了兩大工具之間的壁壘,不能不說,是分析界的一大盛事啊。
?
視頻截圖例如以下:
?
總所周知,R在數(shù)據(jù)分析領(lǐng)域的地位,宛如JAVA在編程語言領(lǐng)域的地位。簡直就占領(lǐng)了開源軟件的頭把交椅。據(jù)統(tǒng)計,R的公開分析包,已經(jīng)超過了6000個,至于其它的小范圍的專用分析包。更是多不勝數(shù)。Esri可以打通R與ArcGIS之間的通道,不得不讓人對Esri未來的戰(zhàn)略有了各種遐想。
?
至于R語言和ArcGIS未來的發(fā)展,以后有機會慢慢說,今天我們來看看,這個神器的物體,究竟是神馬神器。
?
前提條件:你的ArcGIS 的版本號必須是10.3.1以及以上的版本號。
?
首先,R-ArcGIS是Esri弄出來的一個開源軟件,眼下所有的東西都在github上,地址例如以下:
https://r-arcgis.github.io/
?
?
打開之后。發(fā)現(xiàn)了這這樣一個界面。從官方的說明來看。一共同擁有兩大內(nèi)容:
1、在ArcGIS(toolbox)中調(diào)用R語言的分析包。
2、在R語言中調(diào)用ArcGIS的工具。
?
要完畢這個功能,首先簡單的描寫敘述一下他們的溝通機制是怎么樣的。
?
ArcGIS的toolbox提供了一個封裝的環(huán)境,能夠把符合規(guī)范的腳本。直接封裝成在toolbox中直接運行的工具。最常見的可能是封裝Python的腳本了,比方以下的工具,就是直接封裝的Python腳本:
?
這里要對python腳本進行封裝。也是有規(guī)則的,須要依照ArcGIS給定的編寫方法,進行輸入輸出的交互。詳細(xì)的Python交互方法,能夠參考ArcGIS的幫助文檔,我這里就不贅述了。
?
那么R語言的代碼,也是一種腳本,依照Toolbox能夠封裝Python腳本的規(guī)則,R語言的腳本,依舊能夠被封裝到Toolbox里面,變成一個工具來運行。和Python腳本一樣。僅僅須要安裝ArcGIS定義好的輸入和輸出規(guī)則。就能夠直接在ArcGIS里面調(diào)用R語言的工具了。例如以下圖:直接把R語言的腳本,封裝到了ArcToolbox中。
?
封裝和編寫工具,以后有機會慢慢聊,今天我們先來看看怎樣安裝這一套環(huán)境。
?
首先,ArcGIS還沒有把R環(huán)境像Python一樣集成到ArcGIS的安裝包里面(當(dāng)然,假設(shè)按這樣的趨勢下去,我認(rèn)為未來總有一天會被集成的)。
所以。要使用這一套東西,須要自己安裝R語言環(huán)境。
?
R的安裝很easy,直接下載R語言的安裝包就能夠了,然后所有都是下一步,并且R語言作為開源軟件。不存在許可授權(quán)的情況,網(wǎng)絡(luò)上各種安裝教程,不做羅嗦。
貼一個R語言的下載地址,官方網(wǎng)址:https://www.r-project.org/
?
安裝的時候注意。假設(shè)你的電腦是64位的。最好選擇64位的安裝。由于64位的安裝包里面,包含了32位的,可是32位的不包含64位,所以。你僅僅須要依照64位的,就等于所有可用了。ArcMap使用的是32位的R,所以你也能夠選擇僅僅安裝32位的,可是我個人建議。是32位和64位都裝上。
?
另外,Esri官方建議,須要用刀R的3.1.0以上版本號,僅僅要你去官網(wǎng)上下載最新,自然就不會用問題。
?
把R安裝好之后。能夠打開測試一下R語言是否正常執(zhí)行,一般來說,都R語言環(huán)境會提供兩個GUI工具,例如以下:(當(dāng)然。 我這里是3.2.0,你安裝的版本號可能比我高,這里對版本號能夠忽略,僅僅要超過3.1.0就能夠了)
一個用于啟動32位的R環(huán)境,一個用于啟動64位的R環(huán)境。由于我們在ArcMap里面使用的是32位的,所以雙擊啟動R i386這個工具就可以。
以下能夠來個經(jīng)典程序“hello world”。
?
R安裝完畢之后,就能夠依照R-ArcGIS了,回過頭來看R-ArcGIS的主頁,整個R-ArcGIS提供了三個東西,一個是r-bridge-install,一個是r-bridge,一個是r-sample-tools。
?
第一個,r-bridge-install就是用于安裝R-ArcGIS的工具,這個工具用Python寫成,能夠直接在ArcGIS里面調(diào)用(從這里看出Esri軟件開發(fā)團隊的代碼水平大有進步啊。直接提供安裝腳本了!)
?
點擊下載zip之后,解壓到你能夠找到的位置。就能夠進行安裝了:
?
解壓之后,目錄的結(jié)構(gòu)例如以下:
當(dāng)中,pyt這個包。就是ArcGIS的Python專用腳本包,在ArcMap中直接打開,例如以下:
打開之后。一共同擁有四個工具,各自是安裝R語言與ArcGIS的橋接包、顯示R語言的版本號、檢查工具安裝情況,和更新工具。假設(shè)是第一次安裝,僅僅須要依次運行前三個就可以。
?
點擊Install Rbindings工具,彈出例如以下窗口:
?
假設(shè)是你曾經(jīng)安裝過曾經(jīng)的版本號。能夠選擇勾上里面的這個勾,那么會進行覆蓋安裝,第一次安裝就什么都不用選,直接點OK即可。再次提醒,ArcGIS的版本號,必須是10.3.1及以上,當(dāng)然。如今最新版本號就是10.3.1,以后有更高的版本號,就不用說了。
安裝腳本執(zhí)行界面例如以下,從控制臺打印出來的信息能夠看到。腳本事實上就是去github上,下載了一個Esri提供的,與R進行交互的zip包,這個包通常是用C++寫的。下載完畢之后,會自己主動解壓和安裝。
?
?
下載這個包和安裝的速度。取決于你的網(wǎng)絡(luò)(也取決于當(dāng)?shù)剡B接github的網(wǎng)絡(luò)質(zhì)量,你懂的)。
?
提示成功之后。執(zhí)行一下兩個工具,來檢查一下是否成功:
1、輸出R的版本號:
假設(shè)版本號不正確,控制臺會輸出錯誤和警告的,成功就表示沒問題。
?
2、檢查橋接工具是否成功安裝:
相同。假設(shè)不報錯,就表示成功了。
?
然后,我們能夠切回到R語言的環(huán)境里面,來看看ArcGIS的包是否在R的環(huán)境中可用。
在R語言環(huán)境中輸入例如以下語句:
?
library(arcgisbinding)
arc.check_product()
?
第一句是在R語言環(huán)境中載入ArcGIS的橋接包。第二句是檢查ArcGIS的許可,顯演示樣例如以下:
?
假設(shè)不報錯,測試就所有完畢。然后我們能夠執(zhí)行官方提供的一個sample來測試一下
?
下載r-sample-tools,(就在主頁上,不截圖了,自己找),然后解壓,得到例如以下文件結(jié)構(gòu):
?
由于我們要再ArcMap里面進行測試。所以雙擊打開ModelBasedClustering.mxd就能夠了,由于Esri官方在這個文檔里面增加了好幾個online的服務(wù),所以在本地打開,假設(shè)沒有網(wǎng)絡(luò)的話,會非常慢加報找不到圖層,只是不影響,你把引用的網(wǎng)絡(luò)服務(wù)關(guān)就能夠了,例如以下:
?
?
打開R SampleTools.tbx,然后執(zhí)行腳本工具:
?
前面兩個是必選的,第一個是用于聚類的點圖層,第二個是輸出結(jié)果圖層,后面三個是可選圖層,運行工具:
?
這個工具調(diào)用的是R語言里面的sp包(空間分析工具包)和mclust包(聚類包)。所以,假設(shè)你是第一次執(zhí)行這個工具的話,腳本會自己主動去網(wǎng)上將這個兩個包下載而且安裝到你的R環(huán)境中去。
下載安裝的速度,視網(wǎng)絡(luò)情況而定。
?
安裝完畢之后,R語言就會運行聚類和空間分析操作。最后得到的結(jié)果例如以下:
控制臺輸出:
當(dāng)中那個亂碼。是中文提示。下載的兩個包是R的3.2.1制作的,我的版本號比這個版本號老一點,不用管。
后面是一系列分析結(jié)論。
分析完畢之后,由于是空間分析,所以結(jié)果會自己主動的加入到ArcMap的顯示窗中。例如以下:
?
至此,安裝完畢。分析完畢,至于分析的結(jié)論怎樣階段。能夠參考你的sample中的文檔。
?
關(guān)于怎樣在開發(fā)自己的R腳本在ArcGIS中使用,以后有機會我們再說。
總結(jié)
以上是生活随笔為你收集整理的R-ArcGIS探秘(1)安装以及Sample执行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用CSharp编写Google Pro
- 下一篇: 2017 年初、阿里、腾讯、百度、华为、