ArcPy常用操作
文章目錄
- 1. 導(dǎo)入arcpy
- 2. 導(dǎo)入模塊
- 3. 導(dǎo)入第三方模塊
- 4. 部分導(dǎo)入模塊
- 5. 柵格數(shù)據(jù)操作
- 5.1 讀取柵格數(shù)據(jù)
- 5.2 保存柵格數(shù)
- 5.3 讀取柵格波段
- 5.4 柵格轉(zhuǎn)其他格式
- 6. 創(chuàng)建柵格圖層
- 7. 創(chuàng)建要素類
- 8. 文件和文件夾操作
- 8.1 遍歷文件夾
- 8.2 文件為.mxd后綴
- 8.3 路徑拼接
- 9. 定義工作空間
- 10. 獲取ArcGIS輸入信息
- 11. 設(shè)置數(shù)據(jù)路徑
- 12. 運(yùn)算-條件函數(shù)
- 13. 運(yùn)算-加減乘除
- 14 .mxd文件操作
1. 導(dǎo)入arcpy
import arcpy????在導(dǎo)入ArcPy之后,可以運(yùn)行隨ArcGIS安裝的標(biāo)準(zhǔn)工具箱中的所有地理處理工具。如:分析工具箱、制圖工具箱、轉(zhuǎn)換工具箱、數(shù)據(jù)管理工具箱、編輯工具箱、地理編碼工具箱、線性參考工具箱、多維工具箱、空間統(tǒng)計(jì)工具箱。
2. 導(dǎo)入模塊
import arcpy. mapping????模塊通常是一個(gè)包含函數(shù)和類的Python文件。一系列模塊支持ArcPy,包括:
- 數(shù)據(jù)訪問(wèn)模塊(arcpy.da)
- 制圖模塊(arcpy.mapping)
- ArcGIS Spatial Analyst擴(kuò)展模塊(arcpy.sa)
- ArcGIS Network Analyst擴(kuò)展模塊(arcpy.na)
3. 導(dǎo)入第三方模塊
import arcpy import os import sys????當(dāng)然,Python還具有很多其他核心模塊和第三方模塊。如果還想使用Python的核心os和sys模塊,可以使用相似的導(dǎo)入方式:
4. 部分導(dǎo)入模塊
????1. 在很多情況下,用戶可能不想使用整個(gè)模塊或無(wú)需使用整個(gè)模塊。如果只導(dǎo)入某一模塊的一部分,可以使用from-import語(yǔ)句。在下例中,將導(dǎo)入env類(env類包含所有地理處理環(huán)境)。現(xiàn)在無(wú)需以arcpy.env的形式訪問(wèn)環(huán)境,而可以將其簡(jiǎn)化為env。
from arcpy import env env. Workspace = "c:/data"????2. 遵循相同的思路,有時(shí)用戶可能需要注意:如何對(duì)模塊或模塊的一部分進(jìn)行標(biāo)識(shí)以使腳本更具可讀性,以及對(duì)于首選項(xiàng)來(lái)說(shuō)默認(rèn)名稱可能過(guò)長(zhǎng)。在上述任一情況下,均可以使用from-import-as的形式。與先前的示例相同,下面的示例中也將導(dǎo)入env類,但會(huì)指定ENV作為env類的名稱:
from arcpy import env as ENV ENV. Workspace = "c:/data"????3. 操作使用from-import-*的形式。模塊的內(nèi)容將被直接導(dǎo)入到命名空間中,這表示用戶隨后可以直接使用所有這些內(nèi)容,而無(wú)需為它們添加前綴。例如:
from arcpy. env import * Workspace = "c:/data"????但是,使用此方法存在一些風(fēng)險(xiǎn)。具有相同名稱的其他對(duì)象、變量、模塊等將被覆蓋,另外在使用大型模塊時(shí),命名空間可能會(huì)變得異常擁擠和雜亂。
5. 柵格數(shù)據(jù)操作
????
5.1 讀取柵格數(shù)據(jù)
Raster(inRaster) # 數(shù)據(jù)類型:Raster // eg: r = Raster("c:/data/dem") # 絕對(duì)路徑 r = Raster("19960909.img") # 相對(duì)路徑,當(dāng)不是ArcGIS的柵格數(shù)據(jù)時(shí),要加上后綴5.2 保存柵格數(shù)
RasterObj.save("路徑字符串") // eg: r.save("c:/data/dem_1") # 絕對(duì)路徑保存5.3 讀取柵格波段
Band_RED = arcpy.Raster(inTifPath + '/Band_3') # 讀取紅外波段5.4 柵格轉(zhuǎn)其他格式
RasterToOtherFormat_conversion(Input_Rasters, Output_Workspace)6. 創(chuàng)建柵格圖層
// {可選} MakeRasterLayer_management (in_raster, out_rasterlayer, {where_clause}, {envelope}, {band_index})????配合SaveToLayerFile_management導(dǎo)出.lyr 或者Int_3d導(dǎo)出為柵格
// {可選} SaveToLayerFile_management (in_layer, out_layer, {is_relative_path}, {version}) Int_3d (in_raster_or_constant, out_raster) # 轉(zhuǎn)為整型7. 創(chuàng)建要素類
// {可選} CreateFeatureclass_management(out_path, out_name, {geometry_type}, {template}, {has_m}, {has_z}, {spatial_reference}, {config_keyword}, {spatial_grid_1}, {spatial_grid_2}, {spatial_grid_3})8. 文件和文件夾操作
????主要利用os包
8.1 遍歷文件夾
os.walk(_inFolder): # 返回文件夾下 當(dāng)前路徑,文件夾名,文件名os.listdir(inPath) # 返回文件夾下文件名8.2 文件為.mxd后綴
f.endswith(".mxd")8.3 路徑拼接
os.path.join(a,b)9. 定義工作空間
????腳本中最為常用的環(huán)境變量設(shè)置就是arcpy.env.workspace,該變量用于定義當(dāng)前腳本的工作目錄(或者稱為工作空間)
arcpy.env.workspace = 'F:/MODIS_Snow_Cover/Snow_Cover_Hdf/'+ i10. 獲取ArcGIS輸入信息
????獲取界面輸入得第一個(gè),第二個(gè)路徑
field_name = arcpy.GetParameterAsText(0) arcpy.env.workspace = arcpy.GetParameterAsText(1)11. 設(shè)置數(shù)據(jù)路徑
| wild_card | 通配符可限制返回的結(jié)果,例如匹配前面有A的文件名(“A*”) | String |
| raster_type | 柵格格式 | String |
12. 運(yùn)算-條件函數(shù)
????位置柵格數(shù)據(jù)的值用于確定要從輸入柵格列表中的哪一個(gè)柵格獲取輸出像元值。
Pick (in_position_raster, in_rasters_or_constants)????根據(jù)指定條件將所識(shí)別的像元位置設(shè)置為 NoData。如果條件評(píng)估為真,則返回 NoData;如果條件評(píng)估為假,則返回由另一個(gè)柵格指定的值
SetNull (in_conditional_raster, in_false_raster_or_constant)????針對(duì)輸入柵格的每個(gè)輸入像元執(zhí)行 if/else 條件評(píng)估,Arcpy.sa.con(真,賦值,假)
Arcpy.sa.con(NDVI < -1.0, -1.0, Con(NDVI > 1.0, 1.0, NDVI))13. 運(yùn)算-加減乘除
- Divide (in_raster_or_constant1, in_raster_or_constant2) 除
- Minus (in_raster_or_constant1, in_raster_or_constant2) 減
- Plus (in_raster_or_constant1, in_raster_or_constant2) 加
- Times (in_raster_or_constant1, in_raster_or_constant2) 乘
14 .mxd文件操作
總結(jié)
- 上一篇: 联想u盘linux安装教程,联想笔记本用
- 下一篇: CSDN-Markdown-图片设置(大