<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Multiply two or more rasters in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/multiply-two-or-more-rasters/m-p/619760#M16662</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The Times method will only take two inputs, so what you'll have to do is create a new pMathOp and use pOutRaster as the first input and the third raster as the second input.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 11 May 2011 11:52:58 GMT</pubDate>
    <dc:creator>KenBuja</dc:creator>
    <dc:date>2011-05-11T11:52:58Z</dc:date>
    <item>
      <title>Multiply two or more rasters</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/multiply-two-or-more-rasters/m-p/619759#M16661</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Dear All,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I need to know how i can multiply more than 2 rasters. I have the code for times two rasters (see below) but when i declare a third inputdataset i get a compile error; 'wrong number of arguments or invalid property assignment'. I'm working in 9.3.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim pMxDoc As IMxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMxDoc = ThisDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMap As IMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMap = pMxDoc.FocusMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Dim pWSFact As IWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Set pWSFact = New AccessWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Dim pWS2 As IRasterWorkspaceEx&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Set pWS2 = pWSFact.OpenFromFile(databasepath.Caption, 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Dim pWSF As IWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWSF = New RasterWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWS = pWSF.OpenFromFile("F:\PhD\GIS\Temp", 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'Create the MathOps object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pMathOp As IMathOp&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pMathOp = New RasterMathOps&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Declare the input geoDataset1 object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pinputdataset1 As IRasterDataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pinputdataset1 = pWS2.OpenRasterDataset("elderlyh")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pInputDataset2 As IRasterDataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pInputDataset2 = pWS2.OpenRasterDataset("elderly")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set output workspace&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pEnv As IRasterAnalysisEnvironment&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pEnv = pMathOp&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pEnv.OutWorkspace = pWS&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Perform the operation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pOutRaster As IRaster&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pOutRaster = pMathOp.Times(pinputdataset1, pInputDataset2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create a raster layer and add it into ArcMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pOutRasLayer As IRasterLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pOutRasLayer = New RasterLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pOutRasLayer.CreateFromRaster pOutRaster&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pOutRasLayer.name = "VulnScore"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMap.AddLayer pOutRasLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 May 2011 23:49:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/multiply-two-or-more-rasters/m-p/619759#M16661</guid>
      <dc:creator>MeghanAlexander1</dc:creator>
      <dc:date>2011-05-10T23:49:48Z</dc:date>
    </item>
    <item>
      <title>Re: Multiply two or more rasters</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/multiply-two-or-more-rasters/m-p/619760#M16662</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The Times method will only take two inputs, so what you'll have to do is create a new pMathOp and use pOutRaster as the first input and the third raster as the second input.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 May 2011 11:52:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/multiply-two-or-more-rasters/m-p/619760#M16662</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2011-05-11T11:52:58Z</dc:date>
    </item>
    <item>
      <title>Re: Multiply two or more rasters + LOOP</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/multiply-two-or-more-rasters/m-p/619761#M16663</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you Ken, I've figured this out now.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have another issue: can soneone tell me how to create a loop for declaring the inputdatasets - i have a user form whereby the user selects the importance of the raster in question in terms of their decision making (i.e. by ticking a checkbox), a raster may be selected as 'no importance' - in which case, I do not want it to be included within the mathop. How can I write the code to include a loop for this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;**************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Private Sub CommandButton50_Click()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pMxDoc As IMxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMxDoc = ThisDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMap As IMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMap = pMxDoc.FocusMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Dim pWSFact As IWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Set pWSFact = New AccessWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Dim pWS2 As IRasterWorkspaceEx&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Set pWS2 = pWSFact.OpenFromFile(databasepath.Caption, 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Dim pWSF As IWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWSF = New RasterWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWS = pWSF.OpenFromFile("F:\PhD\GIS\Temp", 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'Create the MathOps object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pMathOp As IMathOp&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pMathOp = New RasterMathOps&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;'*****&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If Eh.Value = True Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pinputdataset = pWS2.OpenRasterDataset("elderlyh")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ElseIf Eh.Value = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If Em.Value = True Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pinputdataset = pWS2.OpenRasterDataset("elderlym")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ElseIf Em.Value = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If El.Value = True Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pinputdataset = pWS2.OpenRasterDataset("elderly")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; 'declare input dataset2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If Lh.Value = True Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pInputDataset2 As IRasterDataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pInputDataset2 = pWS2.OpenRasterDataset("parenth")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ElseIf Lh.Value = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If Lm.Value = True Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pInputDataset2 = pWS2.OpenRasterDataset("parentm")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ElseIf Lm.Value = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If Lo.Value = True Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pInputDataset2 = pWS2.OpenRasterDataset("parent")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;'declare input dataset3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If Vh.Value = True Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pInputDataset3 As IRasterDataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pInputDataset3 = pWS2.OpenRasterDataset("carh")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ElseIf Vh.Value = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If Vm.Value = True Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pInputDataset3 = pWS2.OpenRasterDataset("carm")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ElseIf Vm.Value = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If Vl.Value = True Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pInputDataset3 = pWS2.OpenRasterDataset("car")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 'Set output workspace&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pEnv As IRasterAnalysisEnvironment&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pEnv = pMathOp&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pEnv.OutWorkspace = pWS&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pOutRaster As IRaster&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pOutRaster2 As IRaster&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pOutRaster = pMathOp.Times(pinputdataset1, pInputDataset2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pOutRaster2 = pMathOp.Times(pOutRaster, pInputDataset3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;'Create a raster layer and add it into ArcMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim pOutRasLayer As IRasterLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set pOutRasLayer = New RasterLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pOutRasLayer.CreateFromRaster pOutRaster2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pOutRasLayer.name = "VulnScore"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pMap.AddLayer pOutRasLayer&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 May 2011 00:30:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/multiply-two-or-more-rasters/m-p/619761#M16663</guid>
      <dc:creator>MeghanAlexander1</dc:creator>
      <dc:date>2011-05-12T00:30:11Z</dc:date>
    </item>
  </channel>
</rss>

