arcgis不同文件夹下批量添加影像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcgis不同文件夹下批量添加影像相关的知识,希望对你有一定的参考价值。

参考技术A 对多个文件夹中不同tif数据分别进行ArcPy批量合并(拼接)

上期说的是对文件夹中的多景tif影像进行ArcPy的批量合并(拼接) 但,现在又有一个问题,如果数据存于不同文件夹,需要对其中两个文件夹的某个对应数据分别拼接,需要如何?
需求
如下,名称为”1“的文件夹中存有15景栅格影像

名称为”2“的文件夹中也存有对应的15景栅格影像

现在的需求:每次把两个文件夹中对应的数据拿出来执行处理,进行合并,并保存,其它数据重复此过程

ArcGIS批量导出栅格影像的属性表

需要将多幅TIF影像中的属性表导出后参与运算。

1. 打开 ArcMap 或者 ArcCatalog

技术分享图片

 

2. 在文件夹中新建文件地理数据库。 

技术分享图片

 

3. 导入栅格。    

技术分享图片   技术分享图片

 

4. 打开Python窗口,修改代码,输入进行计算。

以下代码将各文件的属性表分别导出为.csv文件。合并为一个.csv 文件在第二段代码。

# coding:utf-8
#功能:批量导出栅格文件的属性表。
#使用步骤 1:在相应文件夹下新建“文件地理数据库”,并将需要导出属性表的栅格文件“导入”到该数据库中。
#使用步骤 2:更改第二行代码[ws = r‘D:	est	est1.gdb‘]为自己的文件存放地址和数据库名称,第三行同样的处理。
#使用步骤 3:复制代码在ArcGIS中运行即可。
import arcpy, os 
ws = rD:		est.gdb      
outPath = rD:	est 
outExt = ".csv"  
arcpy.env.workspace = ws  
rasters = arcpy.ListRasters("*") 
for raster in rasters:
     rasloc = ws + os.sep + raster
     fields = "*"
     try:
          lstFlds = arcpy.ListFields(rasloc)
          header = ‘‘         
          for fld in lstFlds:
               header += ",{0}".format(fld.name)
               if len(lstFlds) != 0:
                    outCSV = outPath + os.sep + raster + outExt
                    f = open(outCSV,w)
                    header = header[1:] + ,RasterName

                    f.write(header)
                    with arcpy.da.SearchCursor(rasloc, fields) as cursor:
                         for row in cursor:
                              f.write(str(row).replace("(","").replace(")","") + "," + raster + 
)
                    f.close()
     except Exception as e:
          print (e)

 

导出至同一个csv文件。

# coding:utf-8
#功能:批量导出栅格文件的属性表。
#使用步骤 1:在相应文件夹下新建“文件地理数据库”,并将需要导出属性表的栅格文件“导入”到该数据库中。
#使用步骤 2:更改第二行代码[ws = r‘D:	est	est.gdb‘]为自己的文件存放地址和数据库名称,第三行同样的处理。
#使用步骤 3:复制代码在ArcGIS中运行即可。
import arcpy, os 
ws = rD:	est	est.gdb      
outCSV = rD:	est.csv 
arcpy.env.workspace = ws  
rasters = arcpy.ListRasters("*")
for raster in rasters:
    rasloc = ws + os.sep + raster
    fields = "*"
    try:
        lstFlds = arcpy.ListFields(rasloc)
        header = ‘‘ 
        header += ",{0}".format(lstFlds[0].name)+",{0}".format(lstFlds[1].name)
        if len(lstFlds) != 0:                    
            f = open(outCSV,a)
            header =header[0:] + ,RasterName

            f.write(header)
            with arcpy.da.SearchCursor(rasloc, fields) as cursor:
                for row in cursor:
                    f.write(str(row).replace("(","").replace(")","") + "," + raster + 
)
            f.close()
    except Exception as e:
        print (e)
del row

 

参考地址

 

 


以上是关于arcgis不同文件夹下批量添加影像的主要内容,如果未能解决你的问题,请参考以下文章

ArcGis Python脚本——批量对影像要素类定义投影

怎么用Arcgis批量获取遥感影像外接范围

ArcGIS批量导出栅格影像的属性表

GlobalMapper精品教程003:GlobalMapper影像裁剪批量影像分幅案例详解

ArcGIS + Python 批量裁剪添加X/Y坐标脚本

Arcgis栅格属性中Source分栏下statistics的所有数值怎么批量导出?