python 2.7导入arcpy_导入 ArcPy
導入模塊
模塊為通常包含函數和類的 Python 文件。ArcPy 由一系列模塊提供支持,其中包括以下模塊:數據訪問模塊 (arcpy.da)
制圖模塊 (arcpy.mp)
元數據模塊 (arcpy.metadata)
共享模塊 (arcpy.sharing)
Network Analyst 模塊(arcpy.nax 和 arcpy.na)
要導入整個模塊,請使用“導入”模塊:# Import only arcpy.mp
import arcpy.mp
當然,Python 還具有很多其他核心模塊和第三方模塊。如果還想使用 Python 的核心 os 和 sys 模塊,可以使用相似的導入方式:# Import arcpy, os and sys
import arcpy
import os
import sys
在很多情況下,用戶可能不想使用整個模塊或無需使用整個模塊。如果只導入某一模塊的一部分,可以使用 from-import 語句。在下例中,將導入 env 類(env 類包含所有地理處理環境)。現在無需以 arcpy.env 的形式訪問環境,而可以將其簡化為 env。# Import env from arcpy and set the workspace environment
from arcpy import env
env.workspace = 'c:/data'
遵循相同的思路,有時用戶可能需要注意:如何對模塊或模塊的一部分進行標識以使腳本更具可讀性,以及對于首選項來說默認名稱可能過長。在上述任一情況下,均可以使用 from-import-as 的形式。與先前的示例相同,下面的示例中也將導入 env 類,但會將其指定為 ENV 的名稱:# Import env from arcpy as ENV and set the workspace environment
from arcpy import env as ENV
ENV.workspace = 'c:/data'
可以使用相同方式導入制圖模塊:# Import the mapping module from arcpy as MAP and create an ArcGISProject
# object
from arcpy import mp as MAP
aprx = MAP.ArcGISProject('c:/Projects/YosemiteNP/Yosemite.aprx')
其他版本的導入操作使用 from-import-* 的形式。模塊的內容將被直接導入到命名空間中,這表示用戶隨后可以直接使用所有這些內容,而無需為它們添加前綴。例如:# Import management from arcpy as *
from arcpy.management import *
但是,使用此方法存在一些風險。具有相同名稱的其他對象、變量、模塊等將被覆蓋,另外在使用大型模塊時,命名空間可能會變得異常擁擠和雜亂。可以此方式考慮該問題:在下例中,管理模塊和分析模塊都將被導入為 *。這兩個模塊都具有裁剪工具。如果現在嘗試使用裁剪工具,那么實際使用的會是哪種裁剪工具? 答案是后者,但是此方法可能導致在閱讀腳本時出現不確定或難以閱讀的情況。# Import the management and analysis modules from arcpy as *
from arcpy.management import *
from arcpy.analysis import *
# Which Clip is it?
Clip('standb4', 'clipcov', 'standby_clip', 1.25)
但是在某些情況下,from-import-* 可以簡化代碼,例如,在使用 ArcGIS Spatial Analyst extension 的 sa 模塊的情況下。sa 模塊的優勢之一在于,可以在一行中嵌套多個類和函數以生成輸出柵格對象。
許可:
以下兩個實例都需要 ArcGIS Spatial Analyst extension 來運行。# Import arcpy and the sa module as *
import arcpy
from arcpy.sa import *
# Get input parameters
inRaster1 = arcpy.GetParameterAsText(0)
inRaster2 = arcpy.GetParameterAsText(1)
inRaster3 = arcpy.GetParameterAsText(2)
outRaster = (Raster(inRaster1) + (Raster(inRaster2) - Raster(inRaster3)))
現在比較下一個代碼塊,此代碼塊使用常規 import-from 語句。現在假設再向代碼中添加一些類和函數。即使為每個函數和類添加 sa,代碼的體積也將迅速增加,這將破壞可讀性并且使代碼行變得更加龐大。# Import arcpy and the sa module
import arcpy
from arcpy import sa
# Get input parameters
inRaster1 = arcpy.GetParameterAsText(0)
inRaster2 = arcpy.GetParameterAsText(1)
inRaster3 = arcpy.GetParameterAsText(2)
outRaster = (sa.Raster(inRaster1) + (sa.Raster(inRaster2) - sa.Raster(inRaster3)))
總結
以上是生活随笔為你收集整理的python 2.7导入arcpy_导入 ArcPy的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内网穿透 无需公网ip_无需端口映射、无
- 下一篇: 使用微信快速取色