python中添加arcpy(python怎麼添加文件)

本文目錄一覽:

Python寫arcgis腳本,要怎麼import arcpy呢,我用的IDE是pycharm,直

arcgis版本需要與python版本匹配,10.0好像用的python2.6,那麼只能在python2.6里寫import arcpy。如果同一台機器上裝了python2.7,用它來調用arcpy是不行的。你看看IDE的解釋器設置的版本是不是不對。

Python中不能import arcpy。總是顯示 ImportError: No module named arcpy。 求解決!

找到…Python27\ArcGIS10.1\Lib\site-packages目錄下的desktop10.1.path文件,打開,把arcpy和bin 兩個文件的目錄添加進去,比如:

D:\Program Files (x86)\ArcGIS\Desktop10.1\bin

D:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy

已安裝Python,又想用ArcPy開發,怎麼搞

新的super(),可以不再給super()傳參數,

class C(object):

def __init__(self, a):

print(‘C’, a)

class D(C):

def __init(self, a):

super().__init__(a) # 無參數調用super()

D(8)

C 8

__main__.D object at 0x00D7ED90 !

ArcGIS 應用Python中arcpy模塊

涉及到讀取要素屬性內容其實就是訪問要素,要用到arcpy.da里的seachcursor方法,也就是arcpy里的游標,seachcursor將要素圖層所有要素(若有選擇會只對選擇部分起效)返回遊標,利用for in 循環可以遍歷每一個要素,利用row[0….n]的就可以讀取各個要素的欄位0一直到欄位n的屬性值。

python調用 arcpy

你好,請使用柵格計算器,

在空間分析工具箱,

地圖代數,

柵格計算器。

Arcgis Engine二次開發用python可以嗎?

1.自定義工具箱是什麼

就像名字一樣,自定義工具箱是由個人創建的工具箱,就像下面這樣,可以理解成一個 .tbx 後綴的壓縮包,每一個工具箱中都可以添加多個工具集、腳本工具甚至模型構建器工具。

一大堆工具箱

1.1如何添加自定義工具箱(熟悉可跳過)

第一步:右鍵點擊 ArcToolbox – 添加工具箱

第二步:在打開的添加工具箱窗口中選中需要添加的工具,然後點擊右下角的打開即可。

添加工具箱到 Arcmap

1.2如何創建自定義工具箱

點擊右上角的紅色工具箱符號,可以新建並重命名一個工具箱。

我們這裡新創建了一個海怪工具箱,用於之後的教程演示。

新建工具箱

1.3添加一個腳本工具

新創建的工具箱就像一個大箱子,箱子呢是用來裝工具的,你可以直接在工具箱中右鍵,然後點擊添加,再點擊腳本,進而創建一個腳本工具;

亦或是右鍵,點擊新建,再點擊工具集,創建一個可以自定義名稱的工具集,然後在工具集里新建一個腳本工具。

這裡添加的腳本工具只是一個空殼,我們後面會繼續完善。

新建的工具箱位於 ../Chapter7/海怪工具箱.tbx。

2.工具箱的封裝

工具箱由三部分組成,其中有兩部分需要我們來控制:

一是輸入界面:確定工具箱輸入界面的參數定義和設置;

二是 Python 源代碼:功能的實現,為 .py 後綴的腳本文件;

三是對參數行為提供額外控制的可選驗證代碼,其位於工具箱中(這部分自帶,基本上不用修改)。

所以下面的重點就是輸入界面和 Python 源代碼。

2.1工具箱輸入界面

工具箱輸入界面,或者說圖形交互界面(GUI),就像下面的幾張圖一樣,從該界面我們可以控制工具的行為,自定義輸入界面然後配合 Python 腳本,可以實現多種客制化的功能。

簡單來說,你可以認為輸入界面是依託於 Arcmap 的「前端」,腳本代碼就是負責運行的「後端」。

導入導出工具:

為方便演示,製作一個非常簡單的工具箱,它的功能呢就是把輸入的要素類(資料庫或者 shp )再導出來而已,是完全沒有用的導入導出功能啦,不過作為演示還是非常不錯的。

製作完成後的導入導出工具的界面

第一步:

在工具箱中,右鍵點擊添加,再點擊腳本,然後修改名稱,修改成你想要的名字,勾選存儲相對路徑名,然後點擊下一頁。

修改名稱

第二步:

然後添加腳本文件,添加該腳本文件 ../Chapter7/toolscript/input_and_output.py,讀者可以在最後的下載包中找到該文件。

然後點擊下一頁。

鏈接python腳本

第三步:

控制用戶交互界面。ArcGIS 在這裡內置了一整套簡單但是實用的圖形控制項,比如輸入菜單、下拉框、多選框、單選等,藉由這些圖形控制項我們可以控制腳本工具的圖形交互界面。

我們這裡使用的腳本功能非常簡單,上面也有說到:輸入一個矢量要素類,不做任何處理,然後輸出一個矢量要素類。

為了匹配這個腳本,我們需要設置一個輸入圖層的控制項,同時為了能順利的輸出,也需要一個輸出圖層的控制項,注意一個是輸入一個是輸出。

從下圖可以看到,左邊(左邊的橙色框)是顯示名稱,其中輸入輸出控制項的名稱以及輸入控制項的名稱,這裡命名為輸入要素和輸出要素;然後在右邊(右邊的橙色框)的數據類型下拉框中,我們選擇要素圖層,這裡只能做選擇,不能任意輸入。

設置名稱和數據類型

那麼輸入輸出是如何區分的呢?

選中輸入要素(變成藍色),然後可以看到下方(下方橙色框)的參數屬性設置選項卡,這裡可以對參數進行調整。

參數選項

① 類型:有三種,一般只會用到 Required 和 Optional,表示必須和可選,用於控制參數是否可以忽略不填;

② 方向: 兩種,Input 和 Output,表示輸入和輸出,大部分情況都是使用 Input 來獲得參數,Output 用於獲得最後的成果數據,像是矢量、柵格或者圖表;

③ 多值:Yes 或者 No,用於輸入多個相同類型的數據,工具打開後就是下面這樣,在輸入要素中可輸入多個要素類;

④ 默認:設置一個控制項的默認值,直接輸入即可。可配合多值一同使用,使用 ; (英文的分號)分開,

結果如下,可以看到一打開該工具就已經填充上了預設的多個默認值(報錯是因為數據類型不是要素圖層);

⑤ 環境:工具箱的環境設置,比如掩膜、容差範圍、默認資料庫位置等,一般不預先設置;

⑥ 過濾器:選擇文件類型可以在選擇文件時只顯示特定格式的文件;

⑦ 獲取自:指定數據的獲取源。這是個什麼意思呢?比如我們想要獲取圖層A的某個欄位,獲取源就是圖層A。

以下面這種圖作為例子,新增名為欄位的控制項(上方的橙色框),數據類型也是欄位,然後參數屬性中獲取自選擇輸入要素(下方橙色框)。

設置欄位控制項

點擊完成後,打開腳本工具。在輸入要素框中選擇一個圖層,然後再點擊獲取欄位,如下就可以選擇圖層中的欄位了。

獲取圖層的欄位

⑧ 符號系統:在最下面還有一個符號系統,通常只能作用於輸出的矢量圖層(方向:Output),可為輸出圖層指定設置好的 lyr 文件樣式。

設置符號系統

第四步:

點擊右下方的完成,那麼腳本工具的輸入界面就完成了。

2.2 Python 腳本

工具箱輸入界面和 Python 代碼要相互配合才行,工具箱界面中的輸入、輸出以及各種各樣的參數,在 Python 腳本文件中都得一一對應上,將輸入界面中的各個參數傳給 Python 腳本,這樣才能讓 Python 腳本按照預期的效果正常運行。

看上去有點麻煩,但實際上 arcpy 中提供了現成的函數就可以直接獲得參數。

①參數對接(獲取)

至於如何對接參數,我們使用剛剛的那個腳本文件舉例:

../Chapter7/toolscript/input_and_output.py

# -*- coding:utf-8 -*-

import arcpy

#▶1◀

input_lyr = arcpy.GetParameterAsText(0)

output = arcpy.GetParameterAsText(1)

if __name__ == ‘__main__’:

lyr = arcpy.mapping.Layer(input_lyr)

arcpy.CopyFeatures_management(lyr, output)

▶1◀:arcpy 提供了 GetParameterAsText(index) 函數,該函數根據輸入界面的排序號碼獲得指定的參數。比如 GetParameterAsText(0) 獲得的就是輸入圖層參數, GetParameterAsText(1) 獲得的就是第二個參數,也就是輸出圖層參數。

如果有更多參數,以此類推。

②參數對接中應該注意的情況

GetParameterAsText(index) 從輸入界面獲得的參數都會轉變成字元串,沒錯都是字元串。

如果你只是輸入輸出地址這種,那麼沒有問題,因為地址本來就是字元串,但是如果你設置了一個選擇長度範圍的長整型的控制項、亦或是某種布爾值選擇,最後輸入到 python 腳本這裡都會變成字元串。

整數變成字元串,使用 int(str) 規避;

布爾型變成字元串,True 變成了 “True”,False 變成了 “False”,這樣就不能判斷真假了,需要寫一個判斷語句或者隨便你,方法很多;

還有就是一個輸入控制項多值的情況,所有值根據先後連接成一個字元串,中間由 、(英文分號)間隔,可以使用 split 函數分開;

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/292034.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 14:07
下一篇 2024-12-25 14:07

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論