? 這篇是讀書筆記。同事手里有本《面向ArcGIS的Python腳本編程》,系統(tǒng)的介紹了如何結(jié)合ArcGIS使用python。最近拿來閱讀,覺得受益頗多。最早期我是通過python自身的學(xué)習(xí)資源、書籍、ArcGIS幫助文檔入門的,知識體系雖然建立起來了,但是很多細(xì)節(jié)沒有考慮到,對照書中的內(nèi)容溫故知新、查漏補缺。 arcpy與AO? 書的開篇就介紹了腳本語言和程序語言的區(qū)別。我將其引申到日常工作中用戶會經(jīng)常問到的,“為什么AO可以實現(xiàn)的東西,arcpy卻不能?”“為什么arcpy的功能這么‘粗粒度’?” ? AO中包含了ArcGIS用到的所有編程對象,包含了數(shù)以千計的不同對象,因此程序員可以精細(xì)控制軟件的外觀和運行機(jī)制。Python作為一種非常平易近人的語言,既是腳本語言又是程序語言,在ArcGIS平臺中,python更多充當(dāng)?shù)氖悄_本語言的角色,例如:訪問ArcGIS現(xiàn)有的功能,組合各種現(xiàn)有功能來擴(kuò)展ArcGIS的功能,更可以作為一種“粘合劑”將更多的功能整合進(jìn)來。用書中的話講,腳本語言就是在“控制其他應(yīng)用程序以實現(xiàn)任務(wù)自動化”。arcpy是ArcGIS提供的python站點包,用于訪問ArcGIS 的地理處理功能,定位正在于此。 arcpy與model builder? model builder(簡稱MB吧)是ArcGIS Desktop中我認(rèn)為最可愛的功能沒有之一,它采用了編程的思想?yún)s免去了書寫代碼,是給非程序員實踐創(chuàng)造的啟航之地。日常工作中,很多邏輯簡單、功能清晰的任務(wù)都可以使用MB實現(xiàn)。以前寫過一篇,《如何在ArcGIS for Desktop中實現(xiàn)批量任務(wù)》,具體不再展開。你可能由這些疑問,“MB也能完成批量任務(wù),我何時應(yīng)該考慮使用python?” 當(dāng)然這里回答的是“不得不”的問題,如果你本來就是編程高手,從一開始就會覺得MB限制了你的想象力,如下回答可能不需要考慮。 ? MB的局限性有什么?或者說相比之下,python能更多實現(xiàn)什么?
python基礎(chǔ)命名規(guī)范? 這本書中也提到了命名規(guī)范的內(nèi)容,這是我在初期沒有考慮到的問題。隨著時間的推移和協(xié)同工作的需要,漸漸發(fā)現(xiàn)這是個非常重要的內(nèi)容,大型的科技公司會更重視這個方面。編程和寫文章一樣,僅僅懂得一種語言的語法、詞匯是不足夠的,更重要的是如何將文章寫的清晰優(yōu)雅,對應(yīng)到代碼中就是簡潔高效。python的官方命名規(guī)范:Style Guide for Python Code,它是PEPs(Python Enhancement Proposals)中的一部分。 ? 變量名及腳本文件名:
? 縮進(jìn):
? 注釋:
從腳本外部輸入?yún)?shù)? 使用系統(tǒng)參數(shù) sys.agv 。系統(tǒng)參數(shù)sys.argv[0]存儲的是腳本自身的地址,因此額外的系統(tǒng)參數(shù)是從1開始。
? 在命令行中執(zhí)行:
? 在交互式python編譯器中使用 input(),可以接收用戶輸入。
? ArcGIS 中通過創(chuàng)建腳本工具,與GP框架結(jié)合的調(diào)用方法,是更適合ArcGIS用戶的方法。以前寫過 《在ArcGIS中創(chuàng)建Python工具(一)、(二)、(三)》幾篇,點擊鏈接可以近一步了解腳本工具。 |
|