參考:在arcgis上用python腳本(arcpy)做數據批處理
1. 導入 ArcPy,定義 Workspace
>>> import arcpy >>> arcpy.env.workspace = r"D:\01-Working\2017\20171204-IDL_Average" >>> print(arcpy.env.workspace) D:\01-Working\2017\20171204-IDL_Average
2. 瀏覽 Workspace 內部文件
>>> allfiles = arcpy.ListFiles() >>> print(allfiles) [u'20171023-wan.zip', u'555.zip', u'85858.zip', u'GOCI_06_AVG_GDPS_RC_GEO_ZJ_MASK_BIL_FLAASH_TSM.tif'] >>> all_tifs = arcpy.ListFiles("*.tif") >>> print(all_tifs) [u'bb.tif', u'cc.tif', u'dd5.tif', u'GOCI_06_AVG_GDPS_RC_GEO_ZJ_MASK_BIL_FLAASH_TSM.tif', u'test.tif'] >>> all_rasters = arcpy.ListRasters() >>> print(all_rasters) [u'bb.tif', u'cc.tif', u'dd5.tif', u'GOCI_06_AVG_GDPS_RC_GEO_ZJ_MASK_BIL_FLAASH_TSM.tif', u'test.tif'] >>>
3. 利用 for 循環顯示
>>> for i in all_rasters: ... print(i) ... bb.tif cc.tif dd5.tif GOCI_06_AVG_GDPS_RC_GEO_ZJ_MASK_BIL_FLAASH_TSM.tif test.tif
ListFiles:根據查詢字符串返回當前工作空間中的文件列表。通過指定搜索條件可以限制結果。
參考:String Processing Routines —— 字符串處理函數
01 | STRING | 返回字符串。 | |
02 | STRCMP | 比較字符串,一樣返回1,不一樣返回0,默認大小寫敏感。 | |
03 | STRMATCH | 字符串進行比較,一致返回1,不一致返回0。 | |
04 | STRCOMPRESS | 將字符串中的空格和Tab等壓縮成一個空格。 | |
05 | STRJOIN | 將字符串數組合並成一個字符串。 | |
06 | STRLEN | 返回字符串的長度。 | |
07 | STRPOS | 字符串中字符所在的索引值,返回數值。 | |
08 | STRMID | 字符串截取,返回截取后的字符串。 | |
09 | STRPUT | 將后面字符串替換前面相同數目的字符串。 | |
10 | STRSPLIT | 默認返回拆分索引數組,也可返回拆分字符串數組。 | |
11 | STRTRIM | 刪除字符串前后的空格。 | |
12 | STRUPCASE | 字符串大寫。 | |
13 | STRLOWCASE | 字符串小寫。 |
序號 | 名稱 | 功能說明 |
語法 & 舉例 | ||
01 | ListFiles | 根據查詢字符串返回當前工作空間中的文件列表。通過指定搜索條件可以限制結果。 ListFiles({wild_card}) |
◈ 舉例: |
||
02 | ListRasters | 按名稱和柵格類型返回工作空間中的柵格列表。 ListRasters({wild_card}, {raster_type}) ◈ raster_type:BMP、JPG、TIF、IMG等,默認 All。 ◈ 返回值為 String 數組 |
◈ 舉例: |
||
03 | ListFeatureClasses | 列出工作空間中的要素類,受名稱、要素類型和可選要素數據集的限制。 |
|
||
04 | ENVI::CreateRaster | 方法:創建一個 ENVIRaster 並將其寫入到一個文件中。 Result = ENVI.CreateRaster(URI [, Data] [, DATA_IGNORE_VALUE=value] [, DATA_TYPE=variable] [, ERROR=variable] [, INHERITS_FROM=ENVIRaster] [, INTERLEAVE=string] [, METADATA= ENVIRasterMetadata][, NBANDS=variable] [, NCOLUMNS=variable] [, NROWS=variable] [, SPATIALREF=ENVISpatialRef] [, TIME=ENVITime]) ◈ URI:數據的路徑 ◈ Data:數組 ◈ INHERITS_FROM=ENVIRaster:參考的 ENVIRaster |
◈ 舉例: resultFile = 'D:\01-Working\2017\20171204-IDL平均計算\mm.tif' newRaster = e.CreateRaster(resultFile, data, INHERITS_FROM = raster) newRaster.Save |
||
05 | STRJOIN | 將字符串數組合並成一個字符串。 STRJOIN(String [, Delimiter], /SINGLE) ◈ String:字符串數組 ◈ Delimiter:用於連接數組的分隔符 |
◈ 舉例: |
||
06 | STRLEN | 返回字符串的長度。 |
|||
07 | STRPOS | 字符串中字符所在的索引值,返回數值。 |
◈ 返回值:0 ◈ 返回值:7 ◈ 返回值:7 ◈ 返回值:7 |
||
08 | STRMID | 字符串截取,返回截取后的字符串。 |
◈ 返回值:lexbnlee ◈ 返回值:ee ◈ 返回值:bn |
||
09 | STRPUT | 將后面字符串替換前面相同數目的字符串。 |
◈ 變量 A = "ALEXBNLEE" ◈ 變量 A = "ALEXBNLEE" |
||
10 | STRSPLIT | 默認返回拆分索引數組,也可返回拆分字符串數組。 STRSPLIT(String [, Pattern] [, COUNT=variable] [, ESCAPE=string] [, /FOLD_CASE]] [, /EXTRACT|, LENGTH=variable]) ◈ String:欲拆分的字符串或字符串數組 ◈ Pattern:字符串分隔符,默認是空格/TAB ◈ COUNT=variable:得到拆分后得到數組的元素個數 ◈ ESCAPE=string:刪除符合的string值 ◈ FOLD_CASE:大小寫不敏感 ◈ EXTRACT:返回字符串數組 ◈ LENGTH=variable:拆分后,字符串數組中每個字符串的長度,返回值為數組 |
◈ 變量 str = "alex is so cute" ◈ 變量 str = "alex is so cute" ◈ 變量 str2 = ";alex;-;is;-;so;-;cute;" ◈ 變量 str = "alex is so cute" |
||
11 | STRTRIM | 刪除字符串前后的空格。 |
◈ STRTRIM(a):去掉后面的空格 |
||
12 | STRUPCASE |
字符串大寫。 |
|
||
13 | STRLOWCASE |
字符串小寫。 |