999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

空間大數據時代GIS二次開發的教學改革研究與實踐

2023-09-15 03:34:36謝小魁魏金占
軟件導刊 2023年9期
關鍵詞:二次開發數據庫功能

謝小魁,魏金占,林 卉

(1.北部灣大學 資源與環境學院,廣西 欽州 535011;2.桂林航天工業學院 電子信息與自動化學院,廣西 桂林 541004)

0 引言

GIS 在中國得到快速發展,目前已在科學研究、智慧城市建設、互聯網+智慧行業等行業取得了顯著成效。2011年5 月,國家測繪局更名為國家測繪地理信息局[1],同年7月,中國地理信息系統協會更名為中國地理信息產業協會[2],標志著測繪、地理、信息和產業在中國的融合,反映了國家對GIS產業化發展之路的重視。

隨著GIS 產業的快速發展,社會對GIS 人才的需求量持續增加。通常,GIS 專業的就業崗位主要分為GIS 應用操作和GIS 軟件開發,而后一種是更加熱門的就業領域[3]。國土[4]、農林[5]、地質[6]、城市規劃[7]、水利[8]、醫學[9]等多個行業對GIS 二次開發均有廣泛需求。對62 家地理信息相關單位的用人需求進行調查發現[10],超過一半的用人單位(33 家)要求熟悉COM 開發技術,掌握ArcEngine、MapObjects、MapX 或SuperMap Objects 等常見的GIS 開發平臺或開發組件。“51job”“智聯招聘”“3S 招聘網”三大招聘網站數據顯示,在GIS 類別的崗位中,軟件開發技術需求量最大[11],將來較長一段時間內GIS 二次開發需求將會居高不下。

GIS 二次開發是測繪工程、地理信息科學、地理信息工程等專業本科生和研究生必修的一門核心課程[12],一致認為這是由專業課程體系和應用型人才的社會需求共同決定。相關研究較多,研究角度涉及從產業型人才培養模式[3]、社會需求角度[11]、GIS 開發競賽[13-14]等方面;培養專業分別從地理信息科學[15]、城建類[13]、農業資源與環境專業[16]等專業出發,分析不同專業對GIS 二次開發人才的特定需求;在開發平臺和實踐教學上,主要選擇ArcEngine[14,17-18]、Map Objects[17,19]和MapX[17]等傳統的COM GIS;應用案例上,選擇了三維數字校園系統[20]、動態追蹤[19]、土地承包經營權[18]等。由于涉及內容廣泛,包括離散數學、程序設計語言、數據結構和算法、數據庫、遙感影像處理、地圖編繪等多個專業課程[3],應用性強,動手能力要求高,大部分學生對此課程缺乏信心和興趣,普遍認為這門課程難度較大。

隨著地理大數據激增、人工智能快速發展、社會精細管理等方面的沖擊,社會對GIS 專業人才知識結構和動手能力的需求發生了極大變化。一些學者認為,當前國內GIS 二次開發的課程內容和結構體系比較陳舊,GIS 開發模式和教學重點相對落后[3,11-12,21-23],已不能滿足大數據和人工智能背景下GIS 人才培養需求。大數據需求背景下,如何設計GIS 二次開發課程教學模式、教學內容和教學方法等,降低GIS 二次開發課程學習難度,提升學生學習興趣,促使學生適應新形勢下社會和行業發展需求,是GIS二次開發教學改革面臨的重要問題。

1 傳統GIS二次開發模式面臨的挑戰

1.1 傳統GIS二次開發方式

根據內容可將GIS 分為工具型GIS 和應用型GIS 兩大基本類型[24]。對于大多數非GIS 專業的普通用戶而言,工具型GIS 平臺功能復雜、難以掌握,應用型GIS 更能滿足特定行業應用需求,市場上對應用型GIS 的需求大大超過工具型GIS。應用型GIS 一般是利用高級程序設計語言(如Python、C#、Java、C++等),在工具型地理信息系統平臺(如SuperMap、MapGIS、ArcGIS、MapInfo、QGIS 等)基礎上進行二次開發而來。

GIS 二次開發模式主要包括單純二次開發和集成二次開發[3,24-25],或者宿主型開發和組件式開發兩大類[21]。“單純二次開發”又叫宿主型二次開發,通過使用GIS 平臺的腳本語言實現。在過去,大多數GIS 平臺提供了自己的二次開發語言。如ESRI ArcView 有Avenue[26],ArcGIS 早期支持VBA,MapInfo Professional 提供了MapBasic 語言、MGE提供了MDL[24]。這種開發方式難度低,可以快速擴充系統功能,程序穩定。“集成二次開發”又叫組件式開發,利用通用高級程序設計語言(C#、Java、C++等),通過調用GIS可視化控件實現,大部分功能都綁定到GIS 控件。例如,ArcGIS 早期提供MapObjects 組件,后來產生ArcObjects 和ArcEngine 組件;MapInfo 早期擁有MapX,后期發布了MapXtreme;SuperMap 的SuperMap Objects 簡單易用。此種方式對專業程序員比較友好,只需利用熟悉的通用高級程序設計語言和集成開發環境即可開發,具有投入成本低、開發速度快、容易集成業務工作流、開發出來的程序界面漂亮、易于商業化等優點。

隨著信息技術和GIS 的發展,GIS 二次開發的內涵和外延也隨著發生變化。其他的GIS 二次開發模式還包括Web API 二次開發和開源二次開發[21]。Web API 開發通過調用網絡服務實現,主要用于互聯網電子地圖服務和公眾電子地圖展示,但空間分析功能較弱;開源二次開發基于優秀的開源GIS 平臺(如NASA WorldWind、MapWindow、QGIS 等),通過修改、優化和擴展源代碼實現。

1.2 新時期的挑戰

技術層面上,隨著衛星定位、攝影測量和遙感、機載激光雷達和無人船等技術的快速發展和廣泛應用,空間數據的采集手段越來越多、成本越來越低、效率越來越高。政策層面上,隨著“一帶一路”倡議的提出和“精準扶貧”“西氣東輸”“南水北調”等重大工程的實施,國家進行了地理國情普查、第三次土地調查、林業調查、草業資源清查等全國范圍的空間信息項目,積累了大量的空間數據。2022 年2 月16 日,國務院印發《關于開展第三次全國土壤普查的通知》,決定自2022 年起利用4 年時間完成第三次全國土壤普查,調查方案將基于RS 和GIS 制定,數據采集利用GNSS進行定位,成果采用GIS管理。

社會對地理數據的需求發生了極大變化,表現為數據需求量大、計算密集型高、實時性強、業務流程繁多、專業模型復雜、智能化程度要求高。例如,疫情防控的健康碼、行程卡分析,需要集成來自各種渠道的空間大數據,進行時空伴隨分析,精準性和實時性要求都非常高。

目前,GIS 面臨供給側的地理大數據爆炸和需求側的地理大數據需求的雙重挑戰,傳統的GIS 二次開發方式在大數據面前顯得力不從心。傳統的宿主型二次開發使用特定腳本語言(如ArcView 的Avenue、ArcGIS 的VBA、Map-Info 的MapBasic),功能單一、互操作性差、難以跨平臺、計算生態嚴重缺失。例如,即使曾經使用極為廣泛的VBA,也很難開發出網絡爬蟲工具,而目前人們大量使用這種技術下載監測數據以打造物聯網系統,這是大數據工程建設的重要組成部分。在傳統的集成式開發中,GIS 組件一般作為窗體容器的可視化控件,所有功能都通過這些控件綁定,不能以微服務的形式提供網絡和共享服務;如果同時使用多個GIS 平臺的控件,則會占用較多硬件資源,導致其運行速度減慢,軟件不穩定,容易崩潰,幾乎不能與大數據開發框架集成,也就難以形成豐富的生態鏈。例如,進行高斯投影科學計算,不需要可視化,只需要坐標系轉換功能即可,但在使用ArcGIS Engine 進行高斯投影計算時,也要安裝全部的ArcGIS Engine。

同時,傳統的GIS 二次開發難度較大。GIS 需要支持空間數據庫,進行大量的空間分析,因此其規模和復雜程度要遠高于普通的信息管理系統(MIS)或統計分析系統(例如SPSS)。開發人員需要掌握二次開發基本原理、組件技術基礎,掌握GIS 數據生產、數據分析、數據庫設計、系統設計、程序實現的全過程[27],也需要學習操作系統、離散數學、數據結構和算法、空間數據庫、軟件工程等基礎課程[24]。教學內容中的算法、代碼編寫占很大比例,GIS 空間分析的代碼貢獻較少,開發人員珍貴,人才奇缺。例如,ArcEngine、MapObjects、MapX 均基于組件技術[23,28],非常晦澀難懂。并且,在使用ArcGIS Engine 時需要大量使用強制類型轉化,IDE 無法進行智能提示,編譯器無法進行類型檢查。

1.3 大數據背景下GIS二次開發的必要性

GIS 二次開發課程是地理信息系統專業的核心課程之一,具有很強的技術性、應用性和實踐性。在過去,集成式組件開發(控件開發)是大部分GIS 二次開發的首選方式,開發人員利用自己熟悉的編程語言(例如C#、Java)進行編程,速度快、方式靈活。然而,這種開發方式其實很難滿足大數據背景下的現實需求,具體表現如下:①GIS 控件往往只包括原系統平臺的少部分功能,一些復雜的地理分析難以實現,而地理分析是GIS 的核心。例如ArcToolbox 是ArcGIS 的核心,利用Arcpy 調用ArcToolbox 進行空間分析是解決復雜空間問題的重要方法,但如果用戶使用傳統MapObjects、ArcEngine 進行二次開發,則根本不可能實現類似ArcToolbox 的功能;②集成式開發技術需要精通的C#或其他高級程序設計語言,這對大部分GIS 數據分析人員而言過于復雜,導致開發人員緊缺,時間急迫,開發人員日夜加班成常態,但熟練的GIS 技術員和分析工程師卻幫不上忙,難以滿足大型GIS 工程項目和政府政績的周期和時間節點要求;③基于GIS 控件開發獨立的程序,需要從零開始搭建程序框架,意味著缺少成熟商業軟件特有的基礎設施、多源數據和多數據庫的支持、空間分析功能等基本且重要的功能,基本不具有擴展性。

2 變革背景下的GIS二次開發語言與環境

2.1 開發語言比較與選擇

GIS 二次開發所選擇的語言應該是發展變化的,能適應現代程序設計主流(例如云計算),有較強的大數據處理能力。例如,ArcGIS for Desktop 10.8 軟件安裝包大小只有1.3G,而ArcGIS_Desktop_Tutorial_Data 數據包就有1.7G。本文在項目教學中處理的數據量達到數十TB。

目前,GIS 商業軟件和開源軟件很多,GIS 二次開發語言所面臨的選擇也非常多,為此考察2021 年十大主流編程語言。根據最新的TIOBE 排行榜(TIOBE Index for October 2021)(www.tiobe.com),選取排名前十的編程語言進行分析,如表1所示。

Table 1 Top ten major programming languages of TIOBE in 2021表1 2021年TIOBE十大主流程序設計語言

在上述10 門編程語言中,C/C++直接操作內存和硬件,具有極強的性能優勢,適合專業程序員作為開發GIS平臺的系統級開發語言,但存在控制難度大、開發周期長等問題;Java 和C#具有現代編程語言的面向對象、類型安全等優點,開發速度較快,適合開發界面豐富、業務流程復雜的商業程序;Visual Basic .NET 的功能與C#類似,但有逐漸邊緣化的趨勢;經典的Visual Basic 最高版本為6.0,之后不再更新,由于網絡、數據庫等功能較弱,現在主流的GIS開發平臺不再支持。JavaScript 作為一種腳本語言,與瀏覽器交互效果好,適合作為前端展示,但并不適合算法開發、科學計算,絕大部分GIS 都不支持JavaScript 擴展其空間分析和大數據處理功能;SQL 是數據庫專用語言;PHP 作為服務器端執行的腳本語言,適用于WebGIS 開發并嵌入HTML 中。Python 相對簡單易用,開發速度快;動態特性適合GIS 插件開發,用以擴展功能;計算生態豐富,適合構建以大數據為中心的高級應用;在人工智能方面具有最好的支持;創新優勢明顯,學習此門語言對進一步深造和開展科學研究具有很大幫助;該語言開源免費,不需要授權,GIS 平臺對Python 的支持將會越來越豐富。因此,Python適合GIS數據分析,是GIS專業進行二次開發的首選語言。

2.2 開發環境比較與選擇

選定Python 作為GIS 二次開發語言后,分析目前主流的集成式開發環境(IDE,Integrated Development Environment)(見表2),根據GIS的特點進行優選。

Table 2 Comparison of mainstream Python IDEs表2 主流的Python IDE對比

IDLE 由Python 軟件自帶,可以拿來即用,但綜合功能太弱,語法檢查、智能提示、斷點調試等提高生產力的功能幾乎不具備,效率極低,不合適作為GIS 二次開發的IDE;ArcGIS Python 窗口為ArcGIS 軟件自帶,可以拿來即用,適合入門學習;PyCharm 是專業的Python 開發工具,智能提示、自動完成、自動排版、代碼重構、斷點調試等功能強大,可以快速提升開發效率,適合較為復雜的代碼;Visual Studio 非常龐大,而且收費,但開發功能強大,適合專業程序員;Visual Studio Code 屬于免費的輕量級開發環境,對Python 開發支持比較好,但手動配置難度較大,對初學者不太友好,適合比較專業的程序員;Jupyter Notebook 在瀏覽器運行,默認配置信息、文件和數據保存在系統盤,但在公共多媒體教室和公共計算機房出于對操作系統安全的考慮,對系統盤進行保護,在電腦重啟時將系統盤到恢復初始狀態,默認保存在系統盤的數據和文件將會丟失,因此不適合安裝在公共機房,但由于瀏覽器的跨平臺特性,適合用于制作教學素材。

3 大數據背景下GIS二次開發教學內容設計

3.1 需求分析

以前,GIS 二次開發系統追求“信息系統的工作流、商業軟件的獨立界面、空間數據的可視化”,處理核心業務的程序代碼并不多。目前,相關科學技術發生深刻變革,GIS軟件繁多、算法成熟、應用型顯著加強,開源GIS 工具(如GDAL、OGR)和軟件(QGIS、MapWindow)層出不窮。很多先進的算法,如人工智能軟件TensorFlow、森林景觀模型LandScape、景觀指數計算FragStats 等軟件得以廣泛使用,空間統計回歸、土地利用變化模擬、地理元胞自動機等算法都已經較為成熟并集成到地理信息系統軟件中。GIS 提供了成熟的二三維一體化的可視化功能,界面和空間數據可視化不再是GIS 二次開發中需要關注的重點問題。例如,讀取空間數據的坐標系、對空間數據進行轉換等,只需要使用Python 調用API 即可,并不需要顯示空間數據,也不需要打開GIS軟件。

總之,目前GIS 二次開發的實踐重點發生了變化,貼上了開源開放、大數據、云計算、人工智能等標簽;腳本化和批處理成為自動化處理空間大數據必不可少的手段;如何快速提高生產力成為GIS二次開發亟需解決的問題。

3.2 教學內容

科學技術和用戶需求的深刻變化,導致教學內容必然發生變化,課程的教學大綱需要綜合優化。很多傳統的GIS 二次開發流于表面,局限于常規的GIS 功能。例如,地圖的縮放、查詢、數據加載、要素編輯、專題圖制作、數據庫管理等,都是GIS 平臺提供的成熟功能。學習傳統的GIS二次開發,可以做出一個帶有基本功能的GIS,但很難擴展現有系統功能,因而難以應對大數據空間分析的核心挑戰,對科學研究的意義不大。

GIS 的外在表現是空間制圖,內在基礎是數據管理,核心功能是空間分析。學習二次開發之后,應該可以對已有功能進行集成,進行批處理;或者開發新算法,加入新功能。考慮到技術更迭和可持續發展,GIS 二次開發課程應當適當具有前瞻性和引領性,“1+3”個面向,第一個是面向未來,而面向未來意味著面向大數據,面向科學計算,面向人工智能。其邏輯關系是大數據是GIS 的血液,科學計算是處理空間大數據的方法,而其中人工智能是科學計算的重要組成部分。

在“1+3”面向的思想指導下,將空間數據制圖、空間數據管理和空間分析的作為二次開發的核心內容,使GIS 二次開發成為解決科學研究、生產工程、技術創新的有效手段。空間數據制圖主要是對地圖和圖層的基本操作,目的是實現大數據可視化、制圖自動化;數據管理是GIS 開發的基礎,主要進行空間數據和屬性數據的存取,目的是對地理大數據進行管理,同時也是地理處理工具的入口;空間分析主要是調用工具對地理大數據進行批處理組件工作流,同時通過開發算法定制獨特的工具,GIS 二次開發內容設置如表3 所示。各部分都有典型應用案例,內容循序漸進,逐步深入到GIS開發的核心[29]。

Table 3 Content for GIS secondary development表3 GIS二次開發內容設置

對于GIS 平臺本身具有的基本功能(如地圖的縮放漫游操作)、必須手工操作實現更為方便的功能(如圖層符號化)、在計算生態中有比較成熟的解決方案的內容(如土地利用轉移矩陣),就不再作為GIS開發的優選內容。

4 GIS二次開發的痛點與對策

GIS 二次開發的本質是在精通GIS 原理、熟悉GIS 操作的基礎上,對GIS 平臺提供的API 進行合理調用的過程。API數量巨大、記憶負擔重、思維抽象、函數調用語法復雜、復現難,極易出錯。如果在編寫程序時需要反復查找API、記憶函數名稱、確認拼寫等,則需要花費大量時間,降低了開發流暢度,影響了開發效率,糟糕的開發體驗會給初學者造成較大壓力,使之失去進一步學習的信心和興趣。通過優化課程體系設置,提高教學技巧,可提高初學者開發體驗,增強其學習的信心。

4.1 課程體系設置

以夯實基礎為目的,采用Python 作為“高級程序語言設計”“數據機構和算法”“空間數據庫”的實施語言,逐步加深對Python 的理解,消除對Python 的恐懼心理。如果沒有前面的扎實基礎,直接入手GIS 二次開發,則很難靈活變通。大型GIS 平臺都采用了空間數據庫引擎,屏蔽了數據庫底層的物理結構,因而GIS 二次開發并不需要針對特定的空間數據庫修改教學大綱。

4.2 教學設計技巧

在教學設計上,通過自動代碼生成,探索式開發,將常用代碼片段總結成模板,降低初學門檻,減輕記憶負擔。

(1)自動式代碼生成。由于Python 窗口支持拖放式的自動生成代碼[29],拖放工具自動生成函數,拖放數據自動生成參數,基本不用記憶和查詢函數名稱和用法即可快速入門GIS二次開發,即刻體驗開發的樂趣。

以查詢某一要素類的個數為例[29]:在工具箱里找到Get Count,拖放到Python 窗口,會自動生成函數,在內容列表或目錄窗口拖放圖層或數據,自動生成函數的參數,如圖1所示。

Fig.1 Code generation by dragging and dropping圖1 拖放式代碼生成

(2)探索式程序開發。在現代面向對象的程序設計思想指導下,通過命名空間(模塊)、類、成員的層次結構,分類組織API,通過IDE 的上下文智能提示和自動完成,可以通覽對象成員,快速探索API;API 本身有許多列舉函數,可以列舉出所有成員;Python 可以通過dir 函數,查找出對象的所有成員。例如,for attr in dir(mxd):print(attr,getattr(mxd,attr)),可以列舉出地圖文檔mxd 的所有成員。利用這種探索式開發方式,邊學習邊擴充知識,快速熟悉更多的API。

(3)模板式代碼片段。在GIS 二次開發過程中,有很多框架式代碼,只需要修改參數,就可將其應用于不同的場景。例如,下面的程序片段為獲取第一個圖層代碼,這是很多程序的入口,可以作為標準模版重復使用。

將GIS二次開發的教學內容和教學設計技巧整理成教材《基于Python 的ArcGIS 二次開發實驗實習教程》,已由武漢大學出版社出版[29]。

5 GIS二次開發實踐項目案例與分析

GIS 二次開發能顯著提升GIS 數據生產、加工效率和科研深度,能將科學思想迅速轉化為科研成果,產生經濟產值和社會價值。在實際項目開發中,如果GIS 二次開發模式選擇合理、技術路線設計科學、技術人員經驗豐富,則可以起到事半功倍的效果;反之,如果GIS 二次開發模式不合時宜、技術路線不科學、技術人員沉留于傳統的界面開發和功能組裝,缺少現代地理數據分析的觀念和技能,則事倍功半,甚至導致項目失敗。

5.1 成功案例

成功案例為“基于GIS 的不動產證制作系統”的開發。2014 年底,中央出臺《關于引導農村土地經營權有序流轉發展農業適度規模經營的意見》,提出用5 年時間基本完成土地承包經營權確權登記頒證工作,共涉及2 838 個縣(市、區)及開發區、3.4 萬個鄉鎮、55 萬多個行政村,15 億畝承包地的確權工作[30]。全國通過野外GNSS RTK 測量、無人機航拍、全站儀實測等多手段采集數據;在機房利用ArcGIS、CASS for AutoCAD 等軟件繪制權屬地圖、建立空間數據庫[31]。農村土地承包經營權確權登記將農村土地承包經營權的承包關系、承包地塊、面積、空間位置、用途、地類、等級等情況記錄于專門的簿冊,這是明晰土地承包關系,強化對土地承包經營權的物權保護,保持現有土地承包關系穩定并長久不變的根本手段[17]。

建立空間數據庫后,國家希望快速制作土地承包經營權證書,提出“應發盡發”的要求。在面臨著“數據量大、任務重、時間短、經費低”的挑戰下,本文采用項目教學方式,承擔了數十個縣市的經營權證書印制工作。具體技術路線是基于Python 語言,主要通過調用ArcGIS 的ArcPy 進行二次開發,研制了“農村土地承包經營權證書系統”。該軟件讀取空間數據庫和Excel 數據表,通過空間分析動態調整出圖比例尺,批量生成精美、規范的土地承包經營權證書,智能化程度高、適應范圍廣,為保障2 億農戶農村土地承包經營權證書的頒發提供了技術手段和應用示范,在本地區本行業甚至在全國產生了較大影響力和示范作用。

5.2 失敗案例

失敗案例是一個“不動產確權登記中間數據庫”項目開發。2021 年,全國范圍實施“房地一體”確權登記工作,目的是對宗地和房屋進行權屬調查和高精度測繪,這是實施推進宅基地“三權分置”改革工作的基礎,不動產統一登記的基本內容。該項目在實施過程中綜合利用無人機航拍、權屬實地調查、地籍RTK 測量;利用Pix4D 制作正射影像、Context Capture 進行傾斜攝影三維建模;利用CAD、GIS等軟件制圖,所獲得數據的現勢性強、幾何精度高。2021年夏季,某縣自然資源局為了加快推動“房地一體”的實施,后期充分利用“房地一體”項目所獲得的寶貴數據,擬建設“不動產確權登記中間數據庫”,項目經費400 萬元,主要功能包括多源數據輸入、外業調查任務分配和進度跟蹤、調查數據質量檢查、宅基地和房產統計、“一戶一宅”合法性分析,達到房產證“應發盡發”的目的,滿足2021 年底房產證發放率達到80%的省控要求。

“不動產確權登記中間數據庫”項目的技術負責方具有成功實施“地籍管理信息系統”的技術和經驗,筆者作為合作方旁聽了研討會。如果此項目進展順利,將會引入為項目教學,讓教師和學生參與后期技術開發和數據處理。本項目采用的技術路線如下:在某著名的通用GIS 平臺基礎上,采用GIS 組件進行集成式二次開發,開發語言采用C#,開發環境采用Visual Studio,空間數據庫采用Oracle。技術路線和軟件框架對接現有的“地籍管理信息系統”,可以大量使用現有的數據庫表結構和“地籍管理信息系統”的功能和部分代碼。軟件開發時,將控件作為載體,以地圖查看和數據庫的“增刪改查”等常規內容作為開發的切入點。項目開始幾周后,技術承擔單位還在進行GIS 基本功能開發,進度太慢,遠不能滿足國家對“房地一體”項目時間節點的要求,開發的功能滿足不了“一戶一宅”分析的靈活性和功能的完備性要求,項目未能按計劃實施而失敗,造成較大損失。

經過分析,此項目的核心訴求是大數據分析。例如,“建筑面積超限、占地面積超限、宅基地數量超限、手續不全”等多種情況及其組合,均可導致不符合“一戶一宅”的要求,因此從軟件開發實踐上而言,“一戶多宅”情況難以窮舉。該項目除房產證發放屬于工作流外,其他功能需求本質也屬于數據分析。在軟件功能過于復雜、難度較高、靈活性較強、不能準確確定開發邊界的前提下,采用Python 開發基本功能,GIS 分析員快速參與進來,通過腳本或者可視化建模組合功能,推動項目進展,是更好的設計思路。

6 結語

大數據分析具有很大的不確定性,包括數據的不確定、軟件功能的不確定、算法的不確定以及結論的不確定,因此是一個逐步優化的過程。Python 語言由于簡明、動態、開源、適合于數據密集型和計算密集型任務,與人工智能結合緊密、計算生態豐富,為GIS 二次開發的首選語言。GIS 軟件廠商對Python 的支持越來越好,上下文智能提示、自動代碼生成、斷點調試等高級功能可以顯著提升開發效率,提升開發流暢度。GIS 二次開發入門推薦使用內置的Python Window;而后面的課程綜合實習、項目教學實訓適合采用PyCharm 進行較大規模的代碼開發;教學視頻課程制作可以采用Jupyter Notebook,這是因為Jupyter Notebook在瀏覽器里運行,在不同平臺的操作和表現比較一致。

為了應對GIS 二次開發入門難、精通難的痛點,在專業課程體系設置上,建議采用Python 作為高級程序語言設計、數據機構和算法、空間數據庫的實施語言,先夯實基礎。通過代碼自動生成,減輕記憶和拼寫負擔,可以快速入門GIS 二次開發;探索式開發方式可以讓學生在學習過程中快速熟悉API,為可持續學習提供了切實可行的方法;優化的工作流代碼模板是一些典型任務總結出來的代碼片段,可以拿來即用,快速提高項目開發效率。

使用Python 進行二次開發,適合于GIS 數據分析人員,除能夠顯著提升開發效率、降低開發難度外,還有一個重要的優勢是能利用原GIS 平臺的基礎設施和擴展特性。例如,在進行不動產證制作時,只需使用Python 調用API開發出單個證書制作的地理處理工具;當需要對大量數據進行處理時,可以利用GIS 平臺提供的模型構建器,通過迭代數據庫和數據集進行批處理。由于腳本的靈活性,功能可以隨時修改和擴充;鑒于GIS 平臺的基礎設施和擴展特性,GIS 分析師可以盡早參與到項目中,輔助軟件開發過程,通過模型構建器組合不同的地理處理工具,應用不同的策略和工作流進行數據分析,這是應對大數據挑戰極為有效的手段。

在教學資料方面,目前GIS 操作應用類教材層出不窮,GIS 二次開發的教材較少,而且主要以是傳統的組件式開發內容居多,GIS 二次開發的視頻類教程更是稀缺。未來將進一步完善大數據背景下的GIS 二次開發教材,制作對應的教學視頻,及時進行科學計算并構建人工智能模型,為應對地理大數據分析提供理論支撐和項目教學實踐參考。

猜你喜歡
二次開發數據庫功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
西門子Easy Screen對倒棱機床界面二次開發
關于非首都功能疏解的幾點思考
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 国产亚洲精品精品精品| 在线99视频| 国产成人AV综合久久| 亚洲男人天堂久久| 亚洲一本大道在线| 亚洲免费三区| 午夜国产精品视频黄| 国产三级毛片| 影音先锋亚洲无码| 国产经典三级在线| a毛片基地免费大全| 91色国产在线| 国产中文一区a级毛片视频| 亚洲成年网站在线观看| 中文字幕一区二区人妻电影| 女人18一级毛片免费观看| 国产在线高清一级毛片| 网友自拍视频精品区| 国产欧美精品一区aⅴ影院| 亚洲免费播放| 欧美中文字幕第一页线路一| 欧美激情视频二区三区| 久久这里只有精品23| vvvv98国产成人综合青青| 免费黄色国产视频| 久热re国产手机在线观看| 九九视频免费在线观看| 欧洲av毛片| 91在线视频福利| 国产亚洲精品无码专| 国产成人91精品免费网址在线| 国产91av在线| 日本欧美中文字幕精品亚洲| 67194成是人免费无码| 91久久国产综合精品| 久久国产热| 欧美怡红院视频一区二区三区| a毛片在线| 成人免费午夜视频| 日韩无码视频网站| 久久大香香蕉国产免费网站| 国产精品成人啪精品视频| 992tv国产人成在线观看| 无码内射中文字幕岛国片| 亚洲精品日产AⅤ| 777午夜精品电影免费看| 一级毛片免费观看久| av在线5g无码天天| 成人自拍视频在线观看| 99视频只有精品| 特级做a爰片毛片免费69| 亚洲欧美激情小说另类| 亚洲一区二区三区香蕉| 伊人久综合| 欧美不卡在线视频| 亚洲va精品中文字幕| 日日碰狠狠添天天爽| 国产美女91视频| 无码内射在线| 亚洲欧美日本国产综合在线| 欧美伦理一区| 国产午夜福利亚洲第一| 国产原创演绎剧情有字幕的| 亚洲成人在线免费| 国产熟睡乱子伦视频网站| 精品一区二区三区波多野结衣| 亚洲大学生视频在线播放| 女人天堂av免费| 制服无码网站| 中文成人在线视频| 日本欧美中文字幕精品亚洲| 青青国产在线| 国内毛片视频| 日韩成人在线视频| 久久精品人人做人人爽97| 午夜电影在线观看国产1区| 在线看片免费人成视久网下载| 日韩无码黄色网站| 人妻夜夜爽天天爽| 精品福利国产| www亚洲天堂| 国产无码性爱一区二区三区|