亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的開源GIS應用開發(fā)

        2020-11-25 11:41:38林旻徐志
        電子技術與軟件工程 2020年16期
        關鍵詞:函數庫編輯器工具箱

        林旻 徐志

        (1.南京審計大學實驗中心 江蘇省南京市 211800 2.江蘇省南京市江寧區(qū)審計局 江蘇省南京市 211100)

        隨著計算機技術的飛速發(fā)展,Python 作為一種腳本語言在目前已經有了十分廣泛的應用,其擁有的強大功能使其得到了許多行業(yè)領域得認同,它不像其他語言一樣需要使用編譯器,同時還擁有十分豐富的函數庫,人們能夠通過Python 語言高效地開發(fā)出新的應用程序。GIS 即是指地理信息系統,對地理分布、空間分布等數據進行輸入、存儲、查詢以及分析和顯示等操作,將這些數據變成地圖并使其視覺化,目前已經被廣泛應用于許多不同的領域。隨著科學技術的進步發(fā)展,我國的地理信息技術也在發(fā)生質的改變,同時也需要不斷利用新的技術手段促進其持續(xù)發(fā)展。而如果利用Python進行GIS 的開發(fā)和應用、利用Python 調用ArcPy 集成ArcGIS 空間分析,那么過程必然會變得更加簡便,本文就利用Python 語言及其函數庫對GIS 應用的開發(fā)進行了具體的研究。

        1 Python與GIS

        眾所周知Python 是一種擁有強大函數庫的語言,而其函數庫又可分為第三方函數庫和標準函數庫兩大類,其中第三方函數庫指的是在原有基礎上開發(fā)而來的,是Python 區(qū)別于其他眾多語言之處。而標準函數庫則是指Python 本身就有的函數庫,能夠實現網絡、字符、系統等基礎性的操作控制,Python 中有超過200 個的標準庫[1-2]。而如果要在Python 的基礎上進行GIS 的應用開發(fā),那么必然就需要使用到第三方函數庫,以下便是幾個在GIS 應用開發(fā)中常用的Python 第三方函數庫的簡單介紹。

        1.1 Arcpy

        ArcGIS 適用于地理處理操作,能夠完成空間分析、數據轉換、地圖模型制作等任務,它支持多種腳本語言,但自從ArcGIS10 的出現,其默認安裝程序已經不再是VBA 了,近幾年主要以Python作為其替代,而Arcpy 作為ArcGIS10.X 的原有程序窗口,主要被應用于地理數據的交互處理。首先,程序語言編輯器也被稱作了集成開發(fā)環(huán)境,開源軟件、商業(yè)軟件均是市場上常見的程序語言編輯器,Arcpy 的常用語言編輯器有spyder、Python Shell 等。而Arcpy在spyder2.7 編輯器中的編輯和運行,則需要按照一定的步驟進行。ArcGIS 在Arcpy 中的開發(fā)應用還需要很好地掌握ModelBulider,從而才能更好地發(fā)揮Python 的腳本作用。ArcGIS 的處理框架包括了ArcToolbox、ModelBulider、Python 三大部分。在ArcToolbox 中主要有三種工具箱,腳本工具箱、內置工具箱和模型工具箱,其中腳本工具箱是執(zhí)行、處理相關腳本文件的,內置工具箱則可實現對某一命令的批處理,模型工具箱則是由ModelBulider 創(chuàng)建的。ModelBulider 包括了連接器、值變量、數據變量以及工具四種類型[3-4]。對于已經構建好的模型流程圖可以將其轉變?yōu)镻ython 代碼,按照順序單擊Model--Export--To Python Script 就能夠完成對其的轉變了。運用ArcGIS 的空間分析功能,將土地利用現狀調查成果、南京天地圖數據、衛(wèi)星影像ENVI 識別數據的建設和占用,與飲用水水源保護紅線區(qū)域作疊置分析,并且借助model-builder 固化相關審計模型[5]。

        1.2 Geopandas

        Geopandas 是建立在pandas 基礎上的第三方函數庫,主要用于地理空間數據的處理,在繼承了pandas 的優(yōu)點的同時,還為地理空間數據的操作提供了高級接口,從而賦予Python 進行GIS 的相關操作的可能性。Geopandas 中包括了geodataframe、geoseris 兩種數據類型,分別是pandas 和dataframe 的子類,這兩種類型的數據也可以被理解為空間數據的儲存器,能夠記錄空間對象的幾何位置、屬性等。而shapefile、geodataframe 作為兩種不同格式的文件是可以實現相互轉化的。通過Geopandas,我們可以制作平面的、曲面等多種幾何形狀的地圖信息,還能進行標點、著色等,能夠實現批量化的GIS 操作。Geopandas 有點/點集合、線/線集合、多邊形/多邊形集合三個基本類的幾何對象,通過Geopandas,我們可以實現讀取空間數據、寫入空間數據等操作。Geopandas 可以讀取shapefile、GeoJSON 文件等格式的命令,使用“GeoDataFrame.to_file()”這一方法則可導出多種不同的標準格式,從而寫入空間數據。matplotlib 庫作為用于地圖的制作的高級接口,其操作十分簡便。而地理信息有時也需要進行投影,投影又包括了設置投影和重新投影兩種操作,如果使用了“from_file()”命令加載的數據那么一般都會有投影信息,而如果沒有獲得投影信息,那么就需要設置CRS 以設置投影[6-7]。

        1.3 GDAL/OGR

        GDAL/OGR 文庫主要被應用于GIS 格式和擴展之間的轉換,其目前能夠支持上百個光柵驅動盤以及矢量,有著十分廣泛的應用,例如ArcGIS、GRASS GIS、ERDAS 等絕大部分的GIS 軟件都需要使用 GDAL/OGR 進行翻譯,通過 GDAL/OGR 庫,能夠實現對地理空間數據管理系統的柵格文件數據和矢量的支持。GDAL 對于數據的解析需要使用到抽象數據模型,而抽象數據模型又包括了坐標系統、dataset、colortable 等。GDAL 包括了GDALMajorObject類和GDALDriver 類,前者是帶有元數據的對象,后者則是對文件進行格式分類管理的。OGR 可分為Geometry、Spatial Reference、Feature 以及Feature Definition 等共七部分,其中Geometry 可實現幾何操作、格式轉換、空間投影等,Spatial Reference 能夠實現投影和基準面的定義,Feature 則容納了geometry 和geometry 的雙重屬性[8-9]。

        1.4 RSGISLib

        RSGISLib 庫能夠對圖像進行詳細的分類、過濾、統計,是遙感工具光柵處理和分析的函數庫。

        1.5 PyProj

        PyProj 庫能夠進行各種地理參考系統投影和坐標的變換,也能夠利用特定的基準對地面、距離進行測量和計算。PyProj 作為一個開源項目,也能夠被其他語言進行調用,其包括了Proj 和Geod 兩大類,其中Geod 主要被應用于兩個不同位置點之間的距離、相對的方位等,而且也能在兩點間插入不同要求的點,其主要包括了fwd()、inv()、npts()三個函數,第一個函數是正轉換函數,輸入前方位角和后方位角,能夠得出經緯度;第二個函數是反轉換函數,輸入經緯度,然后就能得出前方位角、后方位角和距離;第三個函數中輸入起始點及終點的坐標、等分點數目,就能得出等分點之間的球面距離。其中Proj 的主要功能是實現經緯度和地圖投影坐標之間的轉換,在轉換的過程中,需要使用到“transform()”函數,才能實現制圖的有效轉換。transform()函數就相當于Proj中的子程序,其用法為:x2,y2,z2=transform(p1,p2,x,y,z=None,radians=False),再輸入x,y,z 的時候,可以分別是數組或序列的某一種形式[10]。

        2 基于Python的開源GIS應用開發(fā)

        本文以Arcpy 作為開源GIS 應用開發(fā)基本的函數庫,對具體的操作進行了簡要的講解,具體如下。

        在進行ArcGIS 地理處理前,需要將Arcpy 站包點導入,并對Arcpy 當前工作空間進行設置,具體代碼如下:

        Import arcpy

        from arcpy import env

        env.workspace=“c:/data/data.gdb”

        這就是對工作環(huán)境的基本設置,完成后我們需要使用到Analysis Tools 中的Buffer,雙擊打開工具后將相關的參數填入,然后即可關閉并執(zhí)行Buffer 工具,可以使用右側的工具幫助或代碼自動補全功能進行操作,具體代碼如下:

        Import arcpy

        arcpy.Buffer_analysis("Streams","Stream_Buff","X Meters")

        然后便會出現X 米的多邊形圖層,這時我們可以使用pan 和zoom 工具進行平移或縮放,以便于看清輸出要素。此時,一個非常簡單的地理圖像信息就構建完成了。但使用Arcpy 進行GIS 應用開發(fā)是一個較為復雜的過程,由于篇幅限制本文不再做更加詳細的講解了,需要者可從其他渠道學習更為全面、更為深入的操作技能。

        3 結語

        Python 作為一種編程語言,有著可伸縮度高、可跨平臺、可嵌入以及穩(wěn)定成熟和免費開源等優(yōu)勢,因而其應用范圍也在不斷擴大。數年前人們早已將Python 應用于GIS 的開發(fā)上,使開源GIS 的應用開發(fā)變得更加簡便。在Python 的基礎上進行開源GIS 的應用開發(fā),能夠較好地對復雜的地理信息系統進行處理,從而大幅提高GIS 的處理效率。而隨著信息技術的迅猛發(fā)展,Python 的第三方庫也在不斷擴大,為GIS 的開發(fā)提供了更加多樣化的選擇。以上就是本文對于基于Python 的開源GIS 應用開發(fā)進行了詳細的討論,在對幾個常用的第三方函數庫進行簡單介紹的基礎上進行了開源GIS 應用開發(fā)的舉例,以期對相關學習者、使用者提供一些參考。

        猜你喜歡
        函數庫編輯器工具箱
        用于優(yōu)化雷達信號處理的VSIPL函數庫
        Scratch求最值和平均值
        電腦報(2020年34期)2020-09-12 14:03:42
        基于BB60C的IQ數據采集與存儲系統設計
        你距離微信創(chuàng)作達人還有多遠?
        車輛段收發(fā)車運行圖編輯器的設計與實現
        Matlab曲線擬合工具箱在地基沉降預測模型中的應用
        構建基于24XX系列存儲器通用函數庫的研究
        時代農機(2015年4期)2015-04-24 07:49:33
        基于VLIW目標機的ELF二進制編輯器設計與實現
        搜狗分號工具箱 輸入更便捷
        小熊的工具箱
        极品少妇xxxx精品少妇偷拍| 毛片在线啊啊| 国产美女久久久亚洲综合| av在线入口一区二区| 久久无码字幕中文久久无码| 一本色道久久99一综合| 久久久久亚洲av成人网址| 人妻免费黄色片手机版| 国产精品一区二区黄色| 亚洲日本VA午夜在线电影| 亚洲综合久久中文字幕专区一区| 亚洲精品中文字幕乱码| 久久久国产精品va麻豆| 女人色毛片女人色毛片18| 国产av专区一区二区三区| 久久熟女少妇一区二区三区| 欧美牲交a欧美牲交aⅴ免费下载| 国产情侣久久久久aⅴ免费| 亚洲视频高清| 日本国产精品高清在线| 99riav国产精品视频| 吸咬奶头狂揉60分钟视频| 偷拍网日本一区二区三区| 天堂网av在线免费看| 在线观看的网站| 午夜精品一区二区三区在线观看| 亚洲在战AV极品无码| 亚洲自拍偷拍一区二区三区| 啦啦啦中文在线观看日本 | 国产精品一区二区久久| 日本肥老熟妇在线观看| 伊人加勒比在线观看视频| 欧美亚洲色综久久精品国产| 亚洲欧美日韩激情在线观看| 国产一区二区高清不卡在线| 丰满少妇按摩被扣逼高潮| 玩弄放荡人妻少妇系列| 一个人免费观看在线视频播放| 蜜桃国产精品视频网站| 亚洲日韩av无码一区二区三区人| 在线看片无码永久免费aⅴ|