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 = r‘D: est.gdb‘ outPath = r‘D: 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 = r‘D: est est.gdb‘ outCSV = r‘D: 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不同文件夹下批量添加影像的主要内容,如果未能解决你的问题,请参考以下文章