日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ArcPy常用操作

發(fā)布時間:2023/12/10 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArcPy常用操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 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. 運算-條件函數(shù)
  • 13. 運算-加減乘除
  • 14 .mxd文件操作

1. 導(dǎo)入arcpy

import arcpy

????在導(dǎo)入ArcPy之后,可以運行隨ArcGIS安裝的標準工具箱中的所有地理處理工具。如:分析工具箱、制圖工具箱、轉(zhuǎn)換工具箱、數(shù)據(jù)管理工具箱、編輯工具箱、地理編碼工具箱、線性參考工具箱、多維工具箱、空間統(tǒng)計工具箱

2. 導(dǎo)入模塊

import arcpy. mapping

????模塊通常是一個包含函數(shù)和類的Python文件。一系列模塊支持ArcPy,包括:

  • 數(shù)據(jù)訪問模塊(arcpy.da)
  • 制圖模塊(arcpy.mapping)
  • ArcGIS Spatial Analyst擴展模塊(arcpy.sa)
  • ArcGIS Network Analyst擴展模塊(arcpy.na)

3. 導(dǎo)入第三方模塊

import arcpy import os import sys

????當然,Python還具有很多其他核心模塊和第三方模塊。如果還想使用Python的核心ossys模塊,可以使用相似的導(dǎo)入方式:

4. 部分導(dǎo)入模塊

????1. 在很多情況下,用戶可能不想使用整個模塊或無需使用整個模塊。如果只導(dǎo)入某一模塊的一部分,可以使用from-import語句。在下例中,將導(dǎo)入env類(env類包含所有地理處理環(huán)境)。現(xiàn)在無需以arcpy.env的形式訪問環(huán)境,而可以將其簡化為env。

from arcpy import env env. Workspace = "c:/data"

????2. 遵循相同的思路,有時用戶可能需要注意:如何對模塊或模塊的一部分進行標識以使腳本更具可讀性,以及對于首選項來說默認名稱可能過長。在上述任一情況下,均可以使用from-import-as的形式。與先前的示例相同,下面的示例中也將導(dǎo)入env類,但會指定ENV作為env類的名稱:

from arcpy import env as ENV ENV. Workspace = "c:/data"

????3. 操作使用from-import-*的形式。模塊的內(nèi)容將被直接導(dǎo)入到命名空間中,這表示用戶隨后可以直接使用所有這些內(nèi)容,而無需為它們添加前綴。例如:

from arcpy. env import * Workspace = "c:/data"

????但是,使用此方法存在一些風(fēng)險。具有相同名稱的其他對象、變量、模塊等將被覆蓋,另外在使用大型模塊時,命名空間可能會變得異常擁擠和雜亂。

5. 柵格數(shù)據(jù)操作

????

5.1 讀取柵格數(shù)據(jù)

Raster(inRaster) # 數(shù)據(jù)類型:Raster // eg: r = Raster("c:/data/dem") # 絕對路徑 r = Raster("19960909.img") # 相對路徑,當不是ArcGIS的柵格數(shù)據(jù)時,要加上后綴

5.2 保存柵格數(shù)

RasterObj.save("路徑字符串") // eg: r.save("c:/data/dem_1") # 絕對路徑保存

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): # 返回文件夾下 當前路徑,文件夾名,文件名os.listdir(inPath) # 返回文件夾下文件名

8.2 文件為.mxd后綴

f.endswith(".mxd")

8.3 路徑拼接

os.path.join(a,b)

9. 定義工作空間

????腳本中最為常用的環(huán)境變量設(shè)置就是arcpy.env.workspace,該變量用于定義當前腳本的工作目錄(或者稱為工作空間)

arcpy.env.workspace = 'F:/MODIS_Snow_Cover/Snow_Cover_Hdf/'+ i

10. 獲取ArcGIS輸入信息

????獲取界面輸入得第一個,第二個路徑

field_name = arcpy.GetParameterAsText(0) arcpy.env.workspace = arcpy.GetParameterAsText(1)

11. 設(shè)置數(shù)據(jù)路徑

wild_card通配符可限制返回的結(jié)果,例如匹配前面有A的文件名(“A*”)String
raster_type柵格格式String
# 列出工作目錄下的所有柵格 arcpy.ListRasters({wild_card},{raster_type})# 在列表末尾添加新的對象 list.append(end)

12. 運算-條件函數(shù)

????位置柵格數(shù)據(jù)的值用于確定要從輸入柵格列表中的哪一個柵格獲取輸出像元值。

Pick (in_position_raster, in_rasters_or_constants)

????根據(jù)指定條件將所識別的像元位置設(shè)置為 NoData。如果條件評估為真,則返回 NoData;如果條件評估為假,則返回由另一個柵格指定的值

SetNull (in_conditional_raster, in_false_raster_or_constant)

????針對輸入柵格的每個輸入像元執(zhí)行 if/else 條件評估,Arcpy.sa.con(真,賦值,假)

Arcpy.sa.con(NDVI < -1.0, -1.0, Con(NDVI > 1.0, 1.0, NDVI))

13. 運算-加減乘除

  • 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文件操作

  • 打開.mxd文件
  • mxd = arcpy.mapping.MapDocument(mxdPath)
  • 另存為操作
  • saveACopy(file_name, {version})

    總結(jié)

    以上是生活随笔為你收集整理的ArcPy常用操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。