博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ArcGIS批量导出栅格影像的属性表
阅读量:6838 次
发布时间:2019-06-26

本文共 2231 字,大约阅读时间需要 7 分钟。

需要将多幅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

你可能感兴趣的文章
如何衡量个人在各自团队的效率和绩效
查看>>
testlink的下载地址
查看>>
通过cell里的UIView获得cell的indexpath
查看>>
【转载】请重新认识你作为程序员的价值
查看>>
canvas 之 - 精灵 钟表动画
查看>>
期末作品检查
查看>>
微软高层:拟改变支付方式 应对盗版问题
查看>>
微软中国:Morro可能将不进入中国市场
查看>>
静态方法、实例方法、继承
查看>>
&和&&的区别
查看>>
yuv和yCbCr的差异
查看>>
引擎设置
查看>>
策略模式
查看>>
log
查看>>
深入浅出 JQuery (一) 浅析JQuery
查看>>
[暴力]JZOJ 5882 雪人
查看>>
对python选修课的感想
查看>>
解决select下拉框禁用(设置disabled属性),后台获取值为空
查看>>
第四周进度条
查看>>
http delete 方法传参数遇到java.net.ProtocolException: DELETE does not support writing的问题...
查看>>