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

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

1. 打开 ArcMap 或者 ArcCatalog

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

3. 导入栅格。

   

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

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

# coding:utf-8
#功能:批量导出栅格文件的属性表。
#使用步骤 1:在相应文件夹下新建“文件地理数据库”,并将需要导出属性表的栅格文件“导入”到该数据库中。
#使用步骤 2:更改第二行代码[ws = r‘D:\test\test1.gdb‘]为自己的文件存放地址和数据库名称,第三行同样的处理。
#使用步骤 3:复制代码在ArcGIS中运行即可。
import arcpy, os
ws = r‘D:\t\test.gdb‘
outPath = r‘D:\test‘
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\n‘
                    f.write(header)
                    with arcpy.da.SearchCursor(rasloc, fields) as cursor:
                         for row in cursor:
                              f.write(str(row).replace("(","").replace(")","") + "," + raster + ‘\n‘)
                    f.close()
     except Exception as e:
          print (e)

导出至同一个csv文件。

# coding:utf-8
#功能:批量导出栅格文件的属性表。
#使用步骤 1:在相应文件夹下新建“文件地理数据库”,并将需要导出属性表的栅格文件“导入”到该数据库中。
#使用步骤 2:更改第二行代码[ws = r‘D:\test\test.gdb‘]为自己的文件存放地址和数据库名称,第三行同样的处理。
#使用步骤 3:复制代码在ArcGIS中运行即可。
import arcpy, os
ws = r‘D:\test\test.gdb‘
outCSV = r‘D:\test\0.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\n‘
            f.write(header)
            with arcpy.da.SearchCursor(rasloc, fields) as cursor:
                for row in cursor:
                    f.write(str(row).replace("(","").replace(")","") + "," + raster + ‘\n‘)
            f.close()
    except Exception as e:
        print (e)
del row

参考地址

原文地址:https://www.cnblogs.com/geozho/p/10167957.html

时间: 2024-10-07 12:47:16

ArcGIS批量导出栅格影像的属性表的相关文章

fusioncharts批量导出图片之后自动提交表单

最近一个项目  一个页面有多个fusioncharts,需要将他们一次性导出之后再利用图片做一下操作,制作一个可以客户下载的质检简报. 对客户效果来说,我只需要点击一个按钮就能生成简报并且下载,对开发人员来说就需要,先将图片导出(当然不能挨个导出,要同时执行导出,因为fusioncharts导出太慢了),要确认全部导出了才能提交表单,要不然提交表单之后,图片没有生成出来必然产生异常.下面我们来看一下实现 首先我给每一个fusionchartschart指定一个有规律的id,作用有两个: 一个是导

如何将Excel表批量赋值到ArcGIS属性表

情景再现 现需要将Excel表信息批量赋值(不是挂接)到Shp文件的属性表,两张表的字段.记录数一模一样,至于为什么会出现这样的问题,咱也不敢问,只有想个法子把它搞定! 原始的Excel信息表共57列,总共3万多条记录,包含了正确的记录数据,如下: 目标的ArcGIS属性表也是57列(不是Table表,是要素类的属性表),记录中的信息不正确,如下: 好在它们的FID字段可以一一对应,现在需要根据Excel属性表把ArcGIS属性表填充正确. 常规思路 最容易想到的方法是,用属性表连接Excel表

ArcGIS 按多边形区域统计栅格影像的一些信息

在使用ArcGIS对栅格影像进行分析时,难免要进行一些统计类的分析.如统计框选区域的像素的个数,面积.均值等内容. 下面给出使用“Spatial Analyst Tools -- > Zonal --> Zonal Statistics as Table ” 进行操作的例子,以便让GIS开发者有一个开发的思路. 以下为图示的操作过程,不再赘述,亲们只懂得大意就好.不明白的地方请留言.

批量导出access某表内容到word文档

一.需求: 需要将表中每一条记录中的某些内容导出在一个word文档中,并将这些文档保存在指定文件夹目录下 二.界面,简单设计如下: 三.添加office相关引用 添加后可在解决方案资源管理器中看到: 四.添加form1中的引用 using System.Data.OleDb;using System.Data.SqlClient;using System.IO;using Microsoft.Office.Core;using Word=Microsoft.Office.Interop.Word

在ARCGIS中如何用矢量配准栅格影像

在ARCGIS中如何用矢量配准栅格影像 第一步  工具准备 ArcGIS 10.2下载地址:http://pan.baidu.com/s/1qWDljC4 BIGEMAP地图下载器:http://www.bigemap.com/Home/Product/index.html 本实例使用ArcMap 10.2软件进行影像与矢量数据叠加配准.首先 ArcMap中是可以自动匹配坐标系:例如先导入西安80的矢量数据文件,再加载影像图层就会自动将影像从源坐标系转换到西安80坐标系.亦可利用BIGEMAP或

ArcGIS学习记录—属性表的编辑与修改

原文地址: ArcGIS问题:属性表的编辑与修改 - Silent Dawn的日志 - 网易博客 http://gisman.blog.163.com/blog/static/34493388200942785434949/   属性表的编辑 1. 属性表的编辑与修改 属性表的ID的添加和删除须在stop editing 状态下,在修改或添加具体属性时要在start editing 状态下,修改添加完成后save edits. 2.属性表数据的恢复.删除.复制或粘贴 失误删除要素后,打开备份的原

ArcGis dbf读写——挂接Excel到属性表代码C#

ArcMap提供了挂接Excel表格信息到属性表的功能,但是当数据量较大到以万计甚至十万计的时候这个功能就歇菜了,当然,你可以考虑分段挂接.这个挂接功能只是做了一个表关联,属性记录每个字段的信息需要通过“字段计算器”计算过来. Excel数据写入ArcGis属性表功能开发实例中,博主见到太多使用UpdateCursor的方式,效率感人. ArcGis Shapefile的属性表信息存放在一个dbf格式的文件中,那么,有没有一种方式可以通过直接对它的读写实现快速挂接?通过数据库连接的方式可以实现,

使用Python脚本批量裁切栅格

????对栅格的裁切,我们通常使用裁切(数据管理-栅格-栅格处理)或按掩膜提取(空间分析-提取分析)来裁切,裁切的矢量要素通常是一个要素图层或Shape文件.如果要进行批量处理,可以使用ToolBox中的批量处理工具.但是,有时我们选择的裁切矢量要素不是一个要素图层,而是要素图层中的一个要素,如按标准图幅裁切栅格影像,以前的做法是将要素一个一个的导出来,再进行批量处理.快速导出方法:ArcGIS按字段属性分割文件. ????现在,可以使用Python脚本来批量裁切,在网上找了位大神的原始代码学习

再议使用Python批量裁切栅格

曾经写过<使用Python脚本批量裁切栅格>,但今天又遇到这个情况则发现了问题.我们遇到的实际问题往往是有一个需要裁剪的影像(大块的),另外有一个矢量面,现在需要按矢量面每一个要素进行裁剪,无奈arcgis里的工具无法方便地做到.只能自己写工具,这次使用了clip而不是ExtractByMask,因为ExtractByMask有很多限制! 下面是工具的操作示例:按每一个要素进行裁剪栅格,输出栅格以选择的字段命名,前提是字段的每个值是唯一的. 下面是消息输入和裁剪矢量表的属性表: 下面是Pyth