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 "生成完毕!"

  • 相关阅读:
    分布式事务的四种解决方案
    uber-go/guide 的中文翻译
    域名解析-CNAME
    Nginx节点存活状态检查
    Laravel核心解读--中间件(Middleware)
    Mac dyld: Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
    前缀树算法实现路由匹配原理解析
    原创-实用salt部署文档(持续更新)
    线上案例-调参-设置滑动窗口提高视频云播放性能
    NGINX日志割切
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1744662.html
Copyright © 2011-2022 走看看