精华内容
下载资源
问答
  • 用坡度栅格数据计算表面积
  • arcGIS python两个栅格数据,栅格计算器进行栅格代数计算。 信息熵(区位熵)计算公式: #-*- coding:UTF-8 -*- import arcpy from arcpy import env from arcpy.sa import * env.workspace = r"C:\Users\HP\...

    arcGIS python两个栅格数据,栅格计算器进行栅格代数计算。
    信息熵(区位熵)计算公式:
    公式

    #-*- coding:UTF-8 -*-
    import arcpy
    from arcpy import env
    from arcpy.sa import *
    
    env.workspace = r"C:\Users\HP\Desktop\20210323\tweets.gdb"
    
    #CheckOut liscen SpatialAnalysis
    arcpy.CheckOutExtension("ImageAnalyst")
    arcpy.CheckOutExtension("Spatial")
    env.overwriteOutput = 1
    
    outDACA = r"C:\Users\HP\Desktop\20210323\tweets.gdb\temp_DACA_KDE"
    
    outMudslide = r"C:\Users\HP\Desktop\20210323\tweets.gdb\temp_mudslide_KDE"
    meanValue =0.5
    z=0.00000001
    
    resultMap = Log2(((DACA_Raster + z)/(Mudslide_Raster + z))* 1/meanValue)
    result_KDE = r"C:\Users\HP\Desktop\20210323\tweets.gdb\result_KDE"
    resultMap.save(result_KDE)
    print("---output result KDE Successful-----")
    
    展开全文
  • 在Arcmap的工具箱中,关于栅格计算的工具很多,这里简单介绍怎样寻找到计算的工具,然后进行栅格数据批量化计算。 首先明确自己需要进行的计算公式,然后在Arcmap的工具箱中查找工具。例如我需要对栅格数据进行乘。...

    简单利用Arcpy批量化裁剪遥感数据
    在进行数据处理时候,有很多步骤是可以使用简单编程进行批量化操作,这里简单介绍使用Arcpy批量化栅格数据简单计算。
    在Arcmap的工具箱中,关于栅格计算的工具很多,这里简单介绍怎样寻找到计算的工具,然后进行栅格数据批量化计算。
    首先明确自己需要进行的计算公式,然后在Arcmap的工具箱中查找工具。例如我需要对栅格数据进行乘。那就打开“Spatial Analyst 工具-数学分析-乘”,点击“工具帮助”,查看工具函数的说明以及使用示例,知道该函数的使用范围以及方法。
    乘工具界面
    乘工具界面
    函数说明
    乘工具函数说明
    乘工具函数使用代码示例
    “乘工具”函数使用代码示例
    因为需要批量化计算,对栅格数据进行循环即可。
    代码如下 ``。

    
    # coding:utf-8
    # 程序说明:使用ARCGIS自带的python2.7编译器。
    
    import os
    import arcpy
    from arcpy import env
    from arcpy.sa import *
    import string
    arcpy.CheckOutExtension("spatial")
    arcpy.gp.overwriteOutput = 1
    arcpy.env.overwriteOutput = 1
    
    arcpy.env.workspace = "E:\\data\\tif"
    rasters = arcpy.ListRasters("*", "tif") #遍历工作空间中的tif格式数据
    outPath = 'E:/data/times'
    
    for raster in rasters:
        outDY = outPath + str(raster)
        ra_DY = Times(raster, 0.0001)
        ra_DY.save(outDY)
        print(str(raster))
    
    // An highlighted block
    var foo = 'bar';
    

    代码十分简单,在学习的路上做的笔记,如有问题错误,欢迎指正!

    展开全文
  • ArcPy批量计算栅格数据平均值 GLDAS数据下载及处理(NC转TIF) ArcGIS批量裁剪栅格数据 ArcPy批量栅格重采样 ArcPy批量裁剪栅格数据 IDL多进程批处理遥感数据 ArcPy批量拼接栅格数据 文章目录遥感数据处理系列前言...

    遥感数据处理系列

    一些项目及科研中遇到的小需求,一方面记录自己的学习历程,另一方面帮助大家学习。

    ArcPy批量计算栅格数据平均值
    GLDAS数据下载及处理(NC转TIF)
    ArcGIS批量裁剪栅格数据
    ArcPy批量栅格重采样
    ArcPy批量裁剪栅格数据

    IDL多进程批处理遥感数据
    ArcPy批量拼接栅格数据



    前言

    在使用ArcGIS的开发包函数进行栅格数据平均值计算时发现,在结果影像出现了好多的异常值?经过查看发现是因为ArcGIS算法的问题,所以,用IDL写了下自己的栅格平均值计算逻辑。

    一、栅格数据平均值

    1. 原理简介

    使用ArcGIS进行栅格数据平均值计算时,出现异常值的原因如下图所示:
    ArcGIS计算栅格数据平均值原理
    那么问题来了:如果每个像元都有一个NoData出现过,那岂不是OutRas里面全部都是NoData了?
    我脑海里的栅格数据平均值:对于N景影像,在(a,b)坐标处有 t 景影像存在有效像元,那么其平均值应该是多景影像在(a,b)坐标处DN值的累加 除以 t

    2. 代码

    文件组织架构:

    inwsMYD09.2011.001.tifMYD09.2011.002.tif...outs输出到

    输入:
    一个含有若干栅格数据的文件夹 inws(本例为“.tif”格式)

    代码实例:

    pro Average_Batch
    
      ;计算输入文件夹内的 所有栅格数据的 平均值
      ;算整个文件夹的
    
      compile_opt strictarr
      COMPILE_OPT idl2
    
      envi, /restore_base_save_files
      envi_batch_init, log_file='batch.txt',/NO_STATUS_WINDOW
    
      dir0='F:\LE-daily-LMB\2017'   ; 输入路径
    
      out_dir='F:\LMB\LE-year'  ; 输出路径
    
      files=file_search(dir0,'*.tif')
    
      ; 读取文件信息。先获取个行列数
      ENVI_OPEN_FILE, files[0], r_fid=fid,  /no_realize
      ENVI_FILE_QUERY, fid,  nl=nl, ns=ns,dims=dims,nb=nb
      mapinfo=envi_get_map_info(fid=fid)
      file=ENVI_GET_DATA(fid=fid,dims=dims,pos=0)
      low_row=N_elements(file[0,*]);获取行数
      low_col=N_elements(file[*,0]);获取列数
    
      Sum = make_array(low_col,low_row,value=0.0);存有效像元的累加值
      count = make_array(low_col,low_row,value=0.0);存有效像元的出现次数
      Average = make_array(low_col,low_row,value=0.0);存平均值
    
      ; 遍历文件夹内的所有栅格数据
      for i=0,n_elements(files)-1 do begin
        ENVI_OPEN_FILE, files[i], r_fid=fid,  /no_realize
        ENVI_FILE_QUERY, fid,  nl=nl, ns=ns,dims=dims,nb=nb
        file=ENVI_GET_DATA(fid=fid,dims=dims,pos=0)
    
        ; 单景影像的逻辑
        for a=0,low_col-1 do begin;获取列数
          for b=0,low_row-1 do begin;获取行数,应该是先列后行
    
            if  file[a,b] GT  0 then begin    ;GE 大于等于运算符,左边大于右边则为真;GT 大于运算符;LE:小于等于运算符;LT:小于运算符
              Sum[a,b] = Sum[a,b] + file[a,b]   ; 有效值累加,每个像元的
              count[a,b] = count[a,b] + 1 ;累加次数计数器
            endif
    
          endfor
        endfor
    
      endfor
      
      Average = Sum / count
    
      outfile8 = out_dir + '\' + strmid(file_basename(files[0]),0,25) + '.Average.tif'    ;16  25
      ENVI_WRITE_ENVI_FILE , Average , r_fid=fid , map_info=mapinfo , out_name=outfile8
    
    end
    

    上例可实现对输入路径文件夹下的所有栅格数据的平均栅格计算。

    总结

    ArcPy牛皮!毕业万岁!中期快乐!
    批量计算平均栅格数据,接下来要继续探索下IDL语言,虽然它的语法有些…,同时,学习下python + GDAL,这一大杀器

    后记

    写博客的初衷是分享我的一些经验,同时也方便自己在其他电脑上进行数据处理。帮了很多人,但评论区小伙伴也有遇到问题的,那么:知识付费,我的时间和经验正好可以解决你的问题。
    在这里插入图片描述

    展开全文
  • ArcPy批量计算栅格数据平均值

    千次阅读 2020-12-24 16:37:36
    文章目录前言一、计算栅格数据平均值二、栅格异常值处理总结 前言 ArcPy这个包也太重要了吧!如果没有IDL+Python+Matlab,我的实验又该如何展开?如果没有ArcPy,那可能就要用GDAL硬撕代码了。本文介绍如何处理...

    遥感数据处理系列

    一些项目及科研中遇到的小需求,一方面记录自己的学习历程,另一方面帮助大家学习。本系列文章的开发环境为:ArcGIS 10.2.2 + Python 2.7、ENVI 5.3 + IDL 8.5

    ArcPy批量计算栅格数据平均值
    GLDAS数据下载及处理(NC转TIF)
    ArcGIS批量裁剪栅格数据
    ArcPy批量栅格重采样
    ArcPy批量裁剪栅格数据

    IDL多进程批处理遥感数据
    ArcPy批量拼接栅格数据



    前言

    ArcPy这个包也太重要了吧!如果没有IDL+Python+Matlab,我的实验又该如何展开?如果没有ArcPy,那可能就要用GDAL硬撕代码了。本文介绍如何处理单个栅格数据的平均值(最大值、最小值同理)。

    一、计算栅格数据平均值

    1. 原理简介

    计算栅格数据平均值主要使用ArcPy的GetRasterProperties_management函数。

    函数使用:

    GetRasterProperties_management (in_raster, {property_type}, {band_index})
    

    常用参数简介:

    	in_raster:要检索属性的栅格文件
    	property_type:
    	        MINIMUM —输入栅格中所有像元的最小值。
    	        MAXIMUM —输入栅格中所有像元的最大值。
    	        MEAN —输入栅格中所有像元的平均值。(本文主要使用该标签)
    

    2. 代码

    输入: 一个含有若干栅格数据的文件夹(本例为“.tif”格式)

    输出: 一个文本文件,在当前目录下(与代码路径相同)

    代码实例:

    # -*- coding: UTF-8 -*-
    import os
    import glob
    import arcpy
    from arcpy.sa import *
    
    '''
    功能:
        计算输入文件夹inws内,所有栅格数据的平均值
    '''
    
    arcpy.CheckOutExtension("ImageAnalyst")  # 检查许可
    arcpy.CheckOutExtension("spatial")
    
    # 输入路径  应该注意,中文路径,会导致读不出文件;路径尽量不要有空格,写文件时会报错
    inws = r"D:\LE-daily\2013"
    
    OutputFile = open('2013-average.csv', 'w')
    
    # 利用glob包,将inws下的所有tif文件读存放到rasters中
    rasters = glob.glob(os.path.join(inws, "*.tif"))
    
    # 循环rasters中的所有影像,进行“求平均值”操作
    for ras in rasters:
        meanValueInfo = arcpy.GetRasterProperties_management(ras, 'MEAN')
        meanValue = meanValueInfo.getOutput(0)
        print os.path.basename(ras).split('_')[0] + ',' + str(meanValue) + '\n'
        OutputFile.write(os.path.basename(ras).split('_')[0] + ',' + str(meanValue) + '\n')
    
    OutputFile.close()
    print("All project is OK!")
    

    以上代码适用于不含异常值的场景,那么,如果有异常值呢?那么多的背景值,或是计算时为标记异常情况设置的其它flag(例如:NDVI计算时,标记异常情况为-2…)

    二、栅格异常值处理

    栅格存在异常值如何处理?这里借助SetNull函数进行:读取栅格数据后,先进行一步去除异常值,接着再进行一步平均值获取,Perfect!

    代码如下:

    # -*- coding: UTF-8 -*-
    import os
    import glob
    import arcpy
    from arcpy.sa import *
    
    '''
    功能:
        计算输入文件夹inws内,所有栅格数据的平均值
    '''
    
    arcpy.CheckOutExtension("ImageAnalyst")  # 检查许可
    arcpy.CheckOutExtension("spatial")
    
    # 输入路径  应该注意,中文路径,会导致读不出文件;路径尽量不要有空格,写文件时会报错
    inws = r"D:\LE-daily\2013"
    
    OutputFile = open('2013-average.csv', 'w')
    
    # 利用glob包,将inws下的所有tif文件读存放到rasters中
    rasters = glob.glob(os.path.join(inws, "*.tif"))
    
    whereClause = "VALUE = 0"  # 去除异常值
    
    # 循环rasters中的所有影像,进行“求平均值”操作
    for ras in rasters:
        outSetNull = SetNull(ras, ras, whereClause)  # 去除异常值
    
        meanValueInfo = arcpy.GetRasterProperties_management(outSetNull, 'MEAN')
        meanValue = meanValueInfo.getOutput(0)
        print os.path.basename(ras).split('_')[0] + ',' + str(meanValue) + '\n'
    
        OutputFile.write(os.path.basename(ras).split('_')[0] + ',' + str(meanValue) + '\n')
    
    OutputFile.close()
    print("All project is OK!")
    

    总结

    ArcPy牛皮!毕业万岁!圣诞节快乐!感谢晶晶晶的圣诞帽!
    计算最大值、最小值,参考上例,修改MEAN标签为MAXIMUM、MINIMUM即可。

    后记

    写博客的初衷是分享我的一些经验,同时也方便自己在其他电脑上进行数据处理。帮了很多人,但评论区小伙伴也有遇到问题的,那么:知识付费,我的时间和经验正好可以解决你的问题。
    在这里插入图片描述

    展开全文
  • 利用C#开发了一个影像入库程序,栅格影像输入到栅格目录集中,显示全黑,怎么利用C#进行计算统计数据呀??![图片说明](https://img-ask.csdn.net/upload/201807/05/1530758992_362113.png)
  • 【ArcGIS|空间分析】栅格数据和矢量数据的面积计算

    万次阅读 多人点赞 2018-11-09 20:57:59
    栅格矢量数据计算面积之前,都需要将数据进行投影转换,设置单位以方便计算。 文章目录1、栅格数据面积计算方法一:添加字段并计算方法二:以表格显示分区统计2、 矢量数据面积计算 1、栅格数据面积计算 方法一:...
  • 为了计算栅格数据指定区域的面积,在ArcMap中我们可以利用ArcToolBox工具中分区统计。 打开Arcmap,新建空白地图,导入栅格数据,以及指定区域的矢量数据或矢量数据。 打开ArcToolBox工具,选择Spatial Analysis...
  • 基于MATLAB的栅格数据温度极端值计算 For each station year, we summed the number of frost days (Tn <= 0℃) and warm days (Tm > 15℃) andexamined the temporal trends over the study period… ...
  • 在GIS中,根据数据存储的表现形式不同,通常将空间数据分为矢量数据和栅格数据。最简单的区别是:当栅格数据放大到一定程度时,就会呈现出我们熟悉的讨厌的"马赛克"。 栅格数据存储 最简单的栅格由按行和列组成,...
  • python实现栅格数据最大值合成法

    千次阅读 2019-01-26 19:58:50
    根据多个栅格数据计算每个像元的统计数据。可用的统计数据有:众数、最大值、均值、中位数、最小值、少数、范围、标准差、总和及变异度。 在本示例中,将针对多个输入 Grid 栅格中的每个像元计算标准差,并将结果...
  • 栅格数据压缩

    2020-04-17 14:22:52
    栅格数据压缩   在栅格数据属性一文中,我们已经了解影像/栅格数据所占的空间可以通过像元深度和行列数推算出来。可是常常遇到的情况是我们在Windows的资源管理器里面看到的影像大小与计算出来的不等,这又是...
  • """获取特定波段的数据,存储为数组""" srcband = self.mpoDataset.GetRasterBand(band_num) return srcband.ReadAsArray() def getRasterBandStas(self, band_num): """获取特定波段的统计量(最小值,最大...
  • DHSVM栅格数据制作

    2020-11-09 15:59:24
    文章目录一、所需工具二、流域栅格数据制作1.DEM数据2.坡向数据3.MASK数据4.土地类型、植被类型数据三、栅格数据转二进制数据1.导出栅格数据2.ASCII转二进制 栅格单元是DHSVM运行的计算单元,也是河道数据、初始...
  • 本文介绍如何使用r语言进行单个或多个栅格数据间的计算,类似于ArcGIS中的栅格计算器。 单个栅格数据: library(raster) calc(x, fun, filename='', na.rm, forcefun=FALSE, forceapply=FALSE, ...) 元素: x:...
  • arcgis如何计算栅格数据像元值和坐标值并保存到excel表格中1、栅格转点2、计算XY坐标3、保存成Table并用excel打开 来源: 小编在前面自己用gdal实现了,读取栅格数据每个像元的坐标值和像元值 现在换种思路,那我...
  • 两个文件夹中的栅格数据以字母+时间方式命名,如A文件夹中的...A与B文件夹中的栅格数据时间字段一致,如何用python2.7实现时间相同的两个栅格数据的地图代数计算?即a20190101*b20190101, a20190102*b20190102, ……?
  • 序:栅格数据经过裁剪后多是不规则的,如何提取他们的边界矢量范围 一、提取过程: 提取后的边界范围可以另存为kml、shp等矢量数据格式。
  • 矢量数据向栅格数据转换方法

    千次阅读 2019-10-19 10:36:11
    文章目录栅格数据结构矢量数据结构 栅格数据结构 栅格数据 栅格数据局结构–>>像元阵列 像元行列号确定位置 每个像元有对应的像元值,记录他的属性 每个像元有且只有一个值。 编码用—>&...
  • ArcGIS中栅格空值计算与替换方法

    万次阅读 2019-03-31 16:46:58
    在研究或工作中,经常会遇到栅格数据中某些像元数据缺失或者不能被使用,也会因为异常值而将部分像元定义为空值(NoData)。再此情况下,我们需要重新计算空值像元中正常值,从某种意义上也是对空值像元的内向插值。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 616
精华内容 246
关键字:

栅格数据计算