zoukankan      html  css  js  c++  java
  • 叠加取最大值rasterdataset的操作 rasterdataset

       Dim year As String
       year = TextBox1.Text
      
       '闰年
       Dim MerageMatrixLeapYear(11) As String  '对应规则
       MerageMatrixLeapYear(0) = "01001017"
       MerageMatrixLeapYear(1) = "02033049"
       MerageMatrixLeapYear(2) = "03065081"
       MerageMatrixLeapYear(3) = "04097113"
      
       MerageMatrixLeapYear(4) = "05129145"
       MerageMatrixLeapYear(5) = "06145161"
       MerageMatrixLeapYear(6) = "07177193"
       MerageMatrixLeapYear(7) = "08209225"
      
       MerageMatrixLeapYear(8) = "09241257"
       MerageMatrixLeapYear(9) = "10273289"
       MerageMatrixLeapYear(10) = "11305321"
       MerageMatrixLeapYear(11) = "12337353"
      
       '非闰年
       Dim MerageMatrixNonLeapYear(11) As String
       MerageMatrixNonLeapYear(0) = "01001017"
       MerageMatrixNonLeapYear(1) = "02033049"
       MerageMatrixNonLeapYear(2) = "03065081"
       MerageMatrixNonLeapYear(3) = "04097113"
      
       MerageMatrixNonLeapYear(4) = "05113129"
       MerageMatrixNonLeapYear(5) = "06145161"
       MerageMatrixNonLeapYear(6) = "07177193"
       MerageMatrixNonLeapYear(7) = "08209225"
      
       MerageMatrixNonLeapYear(8) = "09241257"
       MerageMatrixNonLeapYear(9) = "10273289"
       MerageMatrixNonLeapYear(10) = "11305321"
       MerageMatrixNonLeapYear(11) = "12337353"
      
      
       'Get the focused map from MapDocument
        Dim pMxDoc As IMxDocument
        Set pMxDoc = ThisDocument
        Dim pMap As IMap
        Set pMap = pMxDoc.FocusMap
        
        'Create a RasterBandCollection from the raster layers in ArcMap
        Dim pEnumLayers As IEnumLayer
     
       
        Dim pLayer As ILayer
        Dim pRasLayer As IRasterLayer
             
        Dim pRaster As IRaster
        Dim pRBCollTmp As IRasterBandCollection
        Dim pRBand As IRasterBand
           
        Dim pRBColl As IRasterBandCollection
      
        
        Dim month As Integer
        Dim dataname As String
        Dim data1 As String
        Dim data2 As String
       
       
        'Create a RasterLocalOp operator
        Dim pLocalOp As ILocalOp
        Set pLocalOp = New RasterLocalOp
       
        'Set output workspace
        Dim pEnv As IRasterAnalysisEnvironment
        Set pEnv = pLocalOp
       
        Dim pWS As IWorkspace
        Dim pWSF As IWorkspaceFactory
        Set pWSF = New RasterWorkspaceFactory
        Set pWS = pWSF.OpenFromFile("c:\temp", 0) '结果数据的输出目录
        Set pEnv.OutWorkspace = pWS
       
       ' Dim pRWS As IRasterWorkspace2 ' 用来create rasterdataset
       
       
       For month = 0 To 11
       
        Set pEnumLayers = pMap.Layers
        Set pRBColl = New Raster
       
        dataname = Mid(MerageMatrixLeapYear(month), 1, 2)
        data1 = Mid(MerageMatrixLeapYear(month), 3, 3)
        data2 = Mid(MerageMatrixLeapYear(month), 6, 3)
         
        'Loop through all layers in ArcMap
        Set pLayer = pEnumLayers.Next
        Do Until pLayer Is Nothing
        If TypeOf pLayer Is IRasterLayer Then
           
            If pLayer.Name = "n" + year + data1 + ".tif" Or pLayer.Name = "n" + year + data2 + ".tif" Then
               Set pRasLayer = pLayer
               Set pRaster = pRasLayer.Raster
               Set pRBCollTmp = pRaster
               Set pRBand = pRBCollTmp.Item(0) '保证是单波段的才可以
               pRBColl.AppendBand pRBand
            End If
       
        End If
       
        Set pLayer = pEnumLayers.Next
        Loop
            

        'Compute cell-by-cell (local) statistics
        Dim pOutRaster As IRaster
        Set pOutRaster = pLocalOp.LocalStatistics(pRBColl, esriGeoAnalysisStatsMaximum)
       
       
        'Add output into ArcMap as a raster layer
        Dim pOutRasLayer As IRasterLayer
        Set pOutRasLayer = New RasterLayer
        pOutRasLayer.Name = dataname  '给layer赋名字
        pOutRasLayer.CreateFromRaster pOutRaster
        pMap.AddLayer pOutRasLayer
       
     Next month

     MsgBox "生成完毕!"

  • 相关阅读:
    Linux filesystem
    centos 下 gradle 编译打包 apk
    python SSL 错误
    nginx 缓存配置
    nginx 反向代理配置
    redhat 网卡绑定
    磁盘阵列
    Centos 安装Django2.1
    python pyquery 基本用法
    python 爬虫之-- 正则表达式
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1744662.html
Copyright © 2011-2022 走看看