導航:首頁 > 編程語言 > arcgis導出python腳本

arcgis導出python腳本

發布時間:2022-09-11 18:42:45

『壹』 python新手求教,ARCGIS利用Python腳本實現toolbox中raster to vector柵格轉矢量數據的代碼

在不認識命令的這個命令行窗口 echo %PATH%會顯示當前這個窗口所用的環境變數PATH 如果Python 的路徑不在其中的話 set PATH=%PATH%;C:\Python33不過,這樣你關閉這個窗口的時候,這個設置就失效了

『貳』 有沒有吧友有《面向arcgis的python腳本編程》的pdf

python進行批量處理的,其實幫助文檔就是最好的教材,如果你需要中文的,可以試試arcgis10。arcgis10 對python的支持更強大,而且他有中文的幫助文檔。見鏈接:http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#/na/002z00000001000000/

『叄』 關於arcgis的python腳本編程, shape文件出png圖片問題

1、點類型的轉柵格:

PointToRasterexample1(Python
window)


.

importarcpy
fromarcpyimportenv
env.workspace="c:/data"
arcpy.PointToRaster_conversion("ca_ozone_pts.shp","ELEVATION",
"c:/output/ca_elev","MAXIMUM","",2000)

PointToRasterexample2
(stand-alonescript)

.

#Name:PointToRaster_Ex_02.py
#Description:.
#Requirements:ArcInfo

#Importsystemmoles
importarcpy
fromarcpyimportenv

#Setenvironmentsettings
env.workspace="C:/data"

#Setlocalvariables
inFeatures="ca_ozone_pts.shp"
valField="ELEVATION"
outRaster="c:/output/ca_elev02"
assignmentType="MAXIMUM"
priorityField=""
cellSize=2000

#ExecutePointToRaster
arcpy.PointToRaster_conversion(inFeatures,valField,outRaster,
assignmentType,priorityField,cellSize)



2、面類型的轉柵格:

PolygonToRasterexample1
(Pythonwindow)

.

importarcpy
fromarcpyimportenv
env.workspace="c:/data"
arcpy.PolygonToRaster_conversion("ca_counties.shp","NAME",
"c:/output/ca_counties.img",
"MAXIMUM_AREA","MALES",0.25)

PolygonToRasterexample2
(stand-alonescript)

.

#Name:PolygonToRaster_Ex_02.py
#Description:.
#Requirements:ArcInfo

#Importsystemmoles
importarcpy
fromarcpyimportenv

#Setenvironmentsettings
env.workspace="C:/data"

#Setlocalvariables
inFeatures="ca_counties.shp"
valField="NAME"
outRaster="c:/output/ca_counties"
assignmentType="MAXIMUM_AREA"
priorityField="MALES"
cellSize=0.5

#ExecutePolygonToRaster
arcpy.PolygonToRaster_conversion(inFeatures,valField,outRaster,
assignmentType,priorityField,cellSize)


3、線類型轉柵格

PolylineToRasterexample1
(Pythonwindow)

.

importarcpy
fromarcpyimportenv
env.workspace="c:/data"
arcpy.PolylineToRaster_conversion("roads.shp","CLASS","c:/output/roads.img",
"MAXIMUM_COMBINED_LENGTH","LENGTH",30)

PolylineToRasterexample2
(stand-alonescript)

.

#Name:PolylineToRaster_Ex_02.py
#Description:.
#Requirements:ArcInfo

#Importsystemmoles
importarcpy
fromarcpyimportenv

#Setenvironmentsettings
env.workspace="C:/data"

#Setlocalvariables
inFeatures="roads.shp"
valField="CLASS"
outRaster="c:/output/roads.tif"
assignmentType="MAXIMUM_COMBINED_LENGTH"
priorityField="LENGTH"
cellSize=30

#ExecutePolylineToRaster
arcpy.PolylineToRaster_conversion(inFeatures,valField,outRaster,
assignmentType,priorityField,cellSize)

『肆』 如何從arcgis里邊導出地表的x y z

你如果是將要素類導出為TXT文件的話,arcgis有個叫WriteFeaturesToTextFile的工具,不過這個工具在10.0後沒有顯示在系統工具裡面(我的就是這樣),但是這個工具的Python腳本文件(即WriteFeaturesToTextFile.py)在desktop安裝目錄下的 ArcToolbox\Scripts 路徑下。
然後你有兩種選擇:1,自己把裡面的代碼改改(直接把參數硬編碼到腳本)直接運行
2,自己自定義一個腳本工具,把工具的腳本指定為剛剛那個文件

『伍』 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 函數分開;

『陸』 arcgisserevr 可以將python腳本發布為服務嗎

通常我們使用ArcCatalog或者ArcGIS Server Manager等圖形界面工具來發布ArcGIS服務,然而有些情況下,比如需要發布的服務數量很多,而且需要不定期隨時發布的時候,再使用這些工具進行人工操作就顯得力不從心了。ArcGIS的強大之處就在於其為我們提供了多種選擇,我們可以通過Python編寫腳本,調用ArcPy模塊中的功能來實現自動掃描文件夾並將其中的地圖文檔發布為地圖服務。
本文將創建一個publishHelper.py文件,在其中編寫兩個方法,一個是PublishAll,用來遍歷文件夾並調用另一個方法PublishMxd,後者完成具體的服務發布工作。
在服務發布之前,需要首先檢查mxd文檔路徑,讀取mxd文檔,轉為msd,分析文檔等,最後才是發布服務。

[html] view plain
# -*- coding: utf-8 -*-
import arcpy, os

__name__ = 'publishHelper'

# 將指定目錄下所有的.mxd文檔發布為地圖服務
# folder:包含mxd文檔的文件夾路徑
# serviceDir:服務目錄URL,例如http://localhost/arcgis/rest/services
# serviceFolder:服務所在文件夾,如果為空,則表示根目錄
def PublishAll(folder,serviceDir,serviceFolder):
print "檢查文件夾路徑……"
if os.path.isdir(folder) == False:
print "輸入的文件夾路徑無效!"
return
print "遍歷文件夾……"
files = os.listdir(folder)
for f in files:
if f.endswith(".mxd"):
mxdPath = os.path.join(folder, f)
print "publishing: " + f
PublishMxd(mxdPath, serviceDir, serviceFolder)
else:
continue
#將mxd文檔發布為服務:1.將mxd轉為msd;2.分析msd;3.發布msd
def PublishMxd(mxdPath, serviceDir, serviceFolder):
#檢查mxd和msd文件是否存在
print "檢查文件路徑……"
if os.path.exists(mxdPath) == False:
print "指定路徑的mxd文檔不存在!"
return

# 打開mxd文檔
try:
print "正在打開mxd文檔……"
mxd = arcpy.mapping.MapDocument(mxdPath)
except Exception, e:
print "open mxd error: ", e
return
else:
print "mxd文檔打開成功……"

# 獲取默認的數據框
print "正在讀取mxd文檔默認數據框……"
df = ""
try:
frames = arcpy.mapping.ListDataFrames(mxd, "圖層")
if len(frames) == 0:
frames = arcpy.mapping.ListDataFrames(mxd, "Layers")
df = frames[0]
except Exception, e:
print "讀取mxd文檔默認數據框失敗:", e
return

# 構造msd文檔名稱
msdPath = mxdPath.replace(".mxd", ".msd")
# 將mxd轉為msd
print "正在將mxd文檔轉換為msd文檔……"
arcpy.mapping.ConvertToMSD(mxd, msdPath, df, "NORMAL", "NORMAL")

# 分析msd
print "正在分析文檔……"
analysis = arcpy.mapping.AnalyzeForMSD(mxd)
# 列出分析結果信息
for key in ('messages', 'warnings', 'errors'):
print "----" + key.upper() + "---"
vars = analysis[key]
for ((message, code), layerlist) in vars.iteritems():
print " ", message, " (CODE %i)" % code
print " applies to:",
for layer in layerlist:
print layer.name,
print

#獲取伺服器信息
serviceName = os.path.basename(msdPath).replace(".msd", "")
serverName = serviceDir.split("/")[2]
try:
#發布msd
print "正在發布服務……"
arcpy.mapping.PublishMSDToServer (msdPath, serviceDir, serverName, serviceName, serviceFolder, ["WMS", "KML"])
except Exception, e:
print "發布服務失敗:", e
else:
print "服務發布成功!"

調用代碼:

[html] view plain
import sys
sys.path.append("E:\\Codes\\Python")
from publishHelper import PublishAll # 必須要有正確的許可,否則導入失敗
PublishAll("D:\\TestData", "http://localhost/ArcGIS/rest/services", "sichuan")

如此即可通過Python腳本去遍歷文件夾,並發布其中的mxd文檔為地圖服務。稍作完善,還可作為windows服務自動運行,實現服務的隨到隨發。

『柒』 arcgis中modelbulider導出為python腳本後的腳本可以直接使用嗎

可以以如下方式引用: %Value% 那麼輸出的結果可以是E:\temp\shp1_%Value%.shp,%Value%的具體值取決於每次循環出來的結果。 一般迭代器出來的結果都是這樣使用。

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

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

『玖』 arcgis 怎麼用python做統計分析

方法/步驟

1
打開arcmap軟體,點擊工具欄上的ArcToolbox工具箱,在工具箱裡面選擇要進行數據處理的工具(工具的選擇視數據處理的內容而定),本文選擇了「Define Projection」定義投影的工具進行說明。
雙擊此工具,在彈出的工具窗口點擊右下角的「Show Help>>」按鈕。

2
點擊「Tool Help」按鈕,此時就打開了軟體的幫助文檔並定位到了此工具(define projection)對應的頁面,往下拉動滾動條,定位到此工具的python腳本的內容:
Syntax 介紹了此工具腳本的語法
Code Sample 介紹了腳本使用的例子
拷貝腳本使用例子裡面的代碼。

3
在軟體的主界面點擊「Geoprocessing」菜單-->點擊「Python」菜單項,即出現內嵌在arcigis中的python工具窗口。
python工具窗口的左邊是代碼編輯區域,右邊是信息提示區域。

4
把第2步拷貝的代碼語句粘貼到python工具窗口的左邊區域,修改一下工具腳本的參數(視具體工具和數據而定),連續點擊兩下回車鍵。

5
等待腳本程序的執行完成,完成之後在桌面右下角會彈出提示信息,同時pythong工具窗口的右邊區域也會有具體的工具腳本執行信息。

6
執行完成之後,在arcmap載入處理過的數據,右鍵查看屬性,可以看到通過此工具腳本(define projection)進行投影定義的數據已經具有了投影參數。

http://jingyan..com/article/eae07827ba96a51fec548513.html

『拾』 arcgis中,我在幫助里找到了需要的腳本,但是接下來怎麼操作腳本的文字要復制到哪裡又如何來運行

1. 把腳本貼到記事本中,保存為txt文件,然後將後綴改成py。
2. 用IDLE打開,修改參數,run -> run mole就可以了。

閱讀全文

與arcgis導出python腳本相關的資料

熱點內容
編譯器原理與實現書 瀏覽:708
dos選擇命令 瀏覽:16
apm固件編譯到單片機 瀏覽:120
聯通深藍卡都包含什麼app 瀏覽:263
如何判斷網路伺服器正常 瀏覽:649
路由器搭橋遠端伺服器地址是什麼 瀏覽:515
編譯動態庫時會連接依賴庫嗎 瀏覽:707
淘寶手機加密是隨機的嗎 瀏覽:672
解壓包子怎麼裝飾 瀏覽:585
四個數湊24演算法 瀏覽:676
哪一種不是vi編譯器的模式 瀏覽:169
xp在此處打開命令窗口 瀏覽:128
代碼編譯運行用什麼軟體 瀏覽:999
動態庫在程序編譯時會被連接到 瀏覽:762
python超簡單編程 瀏覽:261
獲取命令方 瀏覽:978
怎樣製作文件夾和圖片 瀏覽:60
調研編譯寫信息 瀏覽:861
python馮諾依曼 瀏覽:419
同時安裝多個app有什麼影響 瀏覽:254