乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      《面向ArcGIS的Python腳本編程》讀后 | kikita & Maps

       Albert_E 2019-03-16

      ? 這篇是讀書筆記。同事手里有本《面向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 的地理處理功能,定位正在于此。

      arcpymodel 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可以實現(xiàn)更高級的編程邏輯。例如嵌套循環(huán)是MB的軟肋,一遇到多重遍歷之類的任務(wù)就只能呵呵了。
      • python可以實現(xiàn)更底層的處理任務(wù)。例如我們可以使用Cursor,遍歷表并對其增刪改等等。
      • python可以集成第三方的資源。例如R語言等第三方類庫來處理數(shù)據(jù)執(zhí)行任務(wù)。
      • python可以不在ArcGIS軟件內(nèi)部執(zhí)行任務(wù),只需要安裝并授權(quán)ArcGIS軟件,然后通過獨立腳本的形式運行。既然可以獨立運行,就可以定義系統(tǒng)任務(wù)定時執(zhí)行。

      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):

      • 建議使用四個空格表示縮進(jìn)
      • 不要同時使用tab和空格進(jìn)行縮進(jìn)

      ? 注釋:

      • 建議每個功能塊都有相關(guān)注釋
      • 每個腳本工具或函數(shù)文件前需要有個頭文件,應(yīng)該包含腳本文件名、功能介紹、運行要求、作者、開發(fā)時間等信息。

      從腳本外部輸入?yún)?shù)

      ? 使用系統(tǒng)參數(shù) sys.agv 。系統(tǒng)參數(shù)sys.argv[0]存儲的是腳本自身的地址,因此額外的系統(tǒng)參數(shù)是從1開始。

      1
      2
      3
      4
      5
      # This is content of testInputPara.py.
      import sys
      x = int(sys.argv[1])
      y = int(sys.argv[2])
      print(x*y)

      ? 在命令行中執(zhí)行:

      1
      2
      D:\ForTempTest>python testInputPara.py 2 8
      16

      ? 在交互式python編譯器中使用 input(),可以接收用戶輸入。

      1
      2
      3
      4
      >>> x = input("")
      bingo
      >>> print(x)
      bingo

      ? ArcGIS 中通過創(chuàng)建腳本工具,與GP框架結(jié)合的調(diào)用方法,是更適合ArcGIS用戶的方法。以前寫過 《在ArcGIS中創(chuàng)建Python工具(一)、(二)、(三)》幾篇,點擊鏈接可以近一步了解腳本工具。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多