<?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: Python efficiency with Rasters in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575858#M45125</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This is what I came up with, which seems to be working:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
#Import modules
import os
import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension("Spatial")

#Set local variables
wks = arcpy.GetParameterAsText(0) # input workspace
wks1 = wks
inRaster1 = arcpy.GetParameterAsText(1) # input raster layer
inRaster2 = arcpy.GetParameterAsText(2) # input raster layer
inRaster3 = arcpy.GetParameterAsText(3) # input raster layer
inRaster4 = arcpy.GetParameterAsText(4) # input raster layer
inRaster5 = arcpy.GetParameterAsText(5) # input raster layer
inRaster6 = arcpy.GetParameterAsText(6) # input raster layer
inRaster7 = arcpy.GetParameterAsText(7) # input raster layer
inRaster8 = arcpy.GetParameterAsText(8) # input raster layer
inRaster9 = arcpy.GetParameterAsText(9) # input raster layer
inRaster10 = arcpy.GetParameterAsText(10) # input raster layer
env.workspace = wks
cellSize = 100
outExtent = Extent(871599.89, 982834.44, 912502.09, 1070920.9)

#Multiply Raster by a constant with CreateConstantRaster
constantValue1 = arcpy.GetParameterAsText(11) # input weight value
outConstRaster1 = CreateConstantRaster(constantValue1, "FLOAT", cellSize, outExtent)
outTimes1 = Raster(inRaster1)* outConstRaster1
outRaster1 = "Wt_" + os.path.basename(inRaster1)
outTimes1.save(outRaster1) # save raster
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
constantValue2 = arcpy.GetParameterAsText(12) # input weight value
outConstRaster2 = CreateConstantRaster(constantValue2, "FLOAT", cellSize, outExtent)
outTimes2 = Raster(inRaster2)* outConstRaster2
outRaster2 = "Wt_" + os.path.basename(inRaster2)
outTimes2.save(outRaster2)

#isinstnace test for parameter input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
constantValue3 = arcpy.GetParameterAsText(13) # input weight value
if isinstance(constantValue3, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster3 = CreateConstantRaster(constantValue3, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes3 = Raster(inRaster3)* outConstRaster3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster3 = "Wt_" + os.path.basename(inRaster3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes3.save(outRaster3)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue4 = arcpy.GetParameterAsText(14) # input weight value
if isinstance(constantValue4, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster4 = CreateConstantRaster(constantValue4, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes4 = Raster(inRaster4)* outConstRaster4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster4 = "Wt_" + os.path.basename(inRaster4)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes4.save(outRaster4)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue5 = arcpy.GetParameterAsText(15) # input weight value
if isinstance(constantValue5, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster5 = CreateConstantRaster(constantValue5, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes5 = Raster(inRaster5)* outConstRaster5
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster5 = "Wt_" + os.path.basename(inRaster5)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes5.save(outRaster5)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue6 = arcpy.GetParameterAsText(16) # input weight value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if isinstance(constantValue6, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster6 = CreateConstantRaster(constantValue6, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes6 = Raster(inRaster6)* outConstRaster6
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster6 = "Wt_" + os.path.basename(inRaster6)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes6.save(outRaster6)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue7 = arcpy.GetParameterAsText(17) # input weight value
if isinstance(constantValue7, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster7 = CreateConstantRaster(constantValue7, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes7 = Raster(inRaster7)* outConstRaster7
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster7 = "Wt_" + os.path.basename(inRaster7)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes7.save(outRaster7)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue8 = arcpy.GetParameterAsText(18) # input weight value
if isinstance(constantValue8, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster8 = CreateConstantRaster(constantValue8, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes8 = Raster(inRaster8)* outConstRaster8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster8 = "Wt_" + os.path.basename(inRaster8)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes8.save(outRaster8)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue9 = arcpy.GetParameterAsText(19) # input weight value
if isinstance(constantValue9, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster9 = CreateConstantRaster(constantValue9, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes9 = Raster(inRaster9)* outConstRaster9
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster9 = "Wt_" + os.path.basename(inRaster9)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes9save(outRaster9)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue10 = arcpy.GetParameterAsText(20) # input weight value
if isinstance(constantValue10, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster10 = CreateConstantRaster(constantValue10, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes10 = Raster(inRaster10)* outConstRaster10
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster10 = "Wt_" + os.path.basename(inRaster10)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes10.save(outRaster10)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 00:47:34 GMT</pubDate>
    <dc:creator>RobinCheskin</dc:creator>
    <dc:date>2021-12-12T00:47:34Z</dc:date>
    <item>
      <title>Python efficiency with Rasters</title>
      <link>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575855#M45122</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The script below multiplies two rasters, where the cell value of one raster is a parameter.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;#Import modules
import os
import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension("Spatial")

#Set local variables
wks = arcpy.GetParameterAsText(0) # input workspace
inRaster1 = arcpy.GetParameterAsText(1) # input raster layer
env.workspace = wks

#Perform Constant Raster Function
constantValue = arcpy.GetParameterAsText(2) # input weight value
cellSize = 100
outExtent = Extent(871599.89, 982834.44, 912502.09, 1070920.9)
outConstRaster = CreateConstantRaster(constantValue, "FLOAT", cellSize, outExtent)
outConstRaster.save("temp1")

#Perform Times Function
outTimes = Raster(inRaster1)* Raster("temp1")
outRaster1 = "Wt_" + os.path.basename(inRaster1)
outTimes.save(outRaster1)

#Create script output and delete constant raster
arcpy.SetParameterAsText(3,outRaster1)
arcpy.Delete_management("temp1")
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This works, but is not optimal and much slower than I would like.&amp;nbsp; I tried this code without saving outConstRaster and just calling it as a raster object, but I kept getting the same error: "TypeError: expected a raster or layer name."&amp;nbsp; This will also need to work for up to 10 different raster layers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any thoughts on making this more efficient?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Sep 2012 19:54:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575855#M45122</guid>
      <dc:creator>RobinCheskin</dc:creator>
      <dc:date>2012-09-21T19:54:40Z</dc:date>
    </item>
    <item>
      <title>Re: Python efficiency with Rasters</title>
      <link>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575856#M45123</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First of all, don't save constant value raster, if you using it only ones, just use it in multiplication. It will remove few operations (saving, rereading and deleting). Another thing, is type of raster, use "Float" only if necessary, operations or floating numbers are much more complex for processor.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import os
import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension("Spatial")

#Set local variables
wks = arcpy.GetParameterAsText(0) # input workspace
inRaster1 = arcpy.GetParameterAsText(1) # input raster layer
env.workspace = wks

#Perform Constant Raster Function
constantValue = arcpy.GetParameterAsText(2) # input weight value
cellSize = 100
outExtent = Extent(871599.89, 982834.44, 912502.09, 1070920.9)
if int(constantValue) == constantValue:
&amp;nbsp; type = 'INTEGER'
else:
&amp;nbsp; type = 'FLOAT'
outConstRaster = CreateConstantRaster(constantValue, type, cellSize, outExtent)

#Perform Times Function
outTimes = Raster(inRaster1)* outConstRaster
outRaster1 = "Wt_" + os.path.basename(inRaster1)
outTimes.save(outRaster1)

#Create script output and delete constant raster
arcpy.SetParameterAsText(3,outRaster1)
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 00:47:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575856#M45123</guid>
      <dc:creator>ArkadiuszMatoszka</dc:creator>
      <dc:date>2021-12-12T00:47:29Z</dc:date>
    </item>
    <item>
      <title>Re: Python efficiency with Rasters</title>
      <link>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575857#M45124</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you, this worked nicely for the single raster.&amp;nbsp; The challenge I am facing is creating the script for up to 10 rasters:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;#Import modules
import os
import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension("Spatial")

#Set local variables
wks = arcpy.GetParameterAsText(0) # input workspace
inRaster1 = arcpy.GetParameterAsText(1) # input raster layer
inRaster2 = arcpy.GetParameterAsText(2) # input raster layer
inRaster3 = arcpy.GetParameterAsText(3) # input raster layer (optional)
inRaster4 = arcpy.GetParameterAsText(4) # input raster layer (optional)
inRaster5 = arcpy.GetParameterAsText(5) # input raster layer (optional)
inRaster6 = arcpy.GetParameterAsText(6) # input raster layer (optional)
inRaster7 = arcpy.GetParameterAsText(7) # input raster layer (optional)
inRaster8 = arcpy.GetParameterAsText(8) # input raster layer (optional)
inRaster9 = arcpy.GetParameterAsText(9) # input raster layer (optional)
inRaster10 = arcpy.GetParameterAsText(10) # input raster layer (optional)
env.workspace = wks

#Multiply Raster by a constant with CreateConstantRaster
constantValue1 = arcpy.GetParameterAsText(11) # input weight value
constantValue2 = arcpy.GetParameterAsText(12) # input weight value
constantValue3 = arcpy.GetParameterAsText(13) # input weight value (optional)
constantValue4 = arcpy.GetParameterAsText(14) # input weight value (optional)
constantValue5 = arcpy.GetParameterAsText(15) # input weight value (optional)
constantValue6 = arcpy.GetParameterAsText(16) # input weight value (optional)
constantValue7 = arcpy.GetParameterAsText(17) # input weight value (optional)
constantValue8 = arcpy.GetParameterAsText(18) # input weight value (optional)
constantValue9 = arcpy.GetParameterAsText(19) # input weight value (optional)
constantValue10 = arcpy.GetParameterAsText(20) # input weight value (optional)
cellSize = 100
outExtent = Extent(871599.89, 982834.44, 912502.09, 1070920.9)

outConstRaster1 = CreateConstantRaster(constantValue1, "FLOAT", cellSize, outExtent)
outConstRaster2 = CreateConstantRaster(constantValue2, "FLOAT", cellSize, outExtent)
outConstRaster3 = CreateConstantRaster(constantValue3, "FLOAT", cellSize, outExtent)
outConstRaster4 = CreateConstantRaster(constantValue4, "FLOAT", cellSize, outExtent)
outConstRaster5 = CreateConstantRaster(constantValue5, "FLOAT", cellSize, outExtent)
outConstRaster6 = CreateConstantRaster(constantValue6, "FLOAT", cellSize, outExtent)
outConstRaster7 = CreateConstantRaster(constantValue7, "FLOAT", cellSize, outExtent)
outConstRaster8 = CreateConstantRaster(constantValue8, "FLOAT", cellSize, outExtent)
outConstRaster9 = CreateConstantRaster(constantValue9, "FLOAT", cellSize, outExtent)
outConstRaster10 = CreateConstantRaster(constantValue10, "FLOAT", cellSize, outExtent)

#Create weighted raster layer with Times
outTimes1 = Raster(inRaster1)* outConstRaster1
outTimes2 = Raster(inRaster2)* outConstRaster2
outTimes3 = Raster(inRaster3)* outConstRaster3
outTimes4 = Raster(inRaster4)* outConstRaster4
outTimes5 = Raster(inRaster5)* outConstRaster5
outTimes6 = Raster(inRaster6)* outConstRaster6
outTimes7 = Raster(inRaster7)* outConstRaster7
outTimes8 = Raster(inRaster8)* outConstRaster8
outTimes9 = Raster(inRaster9)* outConstRaster9
outTimes10 = Raster(inRaster10)* outConstRaster10

outRaster1 = "Wt_" + os.path.basename(inRaster1)
outRaster2 = "Wt_" + os.path.basename(inRaster2)
outRaster3 = "Wt_" + os.path.basename(inRaster3)
outRaster4 = "Wt_" + os.path.basename(inRaster4)
outRaster5 = "Wt_" + os.path.basename(inRaster5)
outRaster6 = "Wt_" + os.path.basename(inRaster6)
outRaster7 = "Wt_" + os.path.basename(inRaster7)
outRaster8 = "Wt_" + os.path.basename(inRaster8)
outRaster9 = "Wt_" + os.path.basename(inRaster9)
outRaster10 = "Wt_" + os.path.basename(inRaster10)

outTimes.save(outRaster1)
outTimes.save(outRaster2)
outTimes.save(outRaster3)
outTimes.save(outRaster4)
outTimes.save(outRaster5)
outTimes.save(outRaster6)
outTimes.save(outRaster7)
outTimes.save(outRaster8)
outTimes.save(outRaster9)
outTimes.save(outRaster10)

#Create script output
env.workspace = wks1
arcpy.SetParameterAsText(21,wks1)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have been toying around with ToolValidator b/c the script has to skip over creating a constant raster &amp;amp; performing times if there is no parameter (after the first 2 raster layers &amp;amp; weight values the parameters are optional).&amp;nbsp; Unfortunately I am stuck again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Help would be greatly appreciated...!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 00:47:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575857#M45124</guid>
      <dc:creator>RobinCheskin</dc:creator>
      <dc:date>2021-12-12T00:47:31Z</dc:date>
    </item>
    <item>
      <title>Re: Python efficiency with Rasters</title>
      <link>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575858#M45125</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This is what I came up with, which seems to be working:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
#Import modules
import os
import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension("Spatial")

#Set local variables
wks = arcpy.GetParameterAsText(0) # input workspace
wks1 = wks
inRaster1 = arcpy.GetParameterAsText(1) # input raster layer
inRaster2 = arcpy.GetParameterAsText(2) # input raster layer
inRaster3 = arcpy.GetParameterAsText(3) # input raster layer
inRaster4 = arcpy.GetParameterAsText(4) # input raster layer
inRaster5 = arcpy.GetParameterAsText(5) # input raster layer
inRaster6 = arcpy.GetParameterAsText(6) # input raster layer
inRaster7 = arcpy.GetParameterAsText(7) # input raster layer
inRaster8 = arcpy.GetParameterAsText(8) # input raster layer
inRaster9 = arcpy.GetParameterAsText(9) # input raster layer
inRaster10 = arcpy.GetParameterAsText(10) # input raster layer
env.workspace = wks
cellSize = 100
outExtent = Extent(871599.89, 982834.44, 912502.09, 1070920.9)

#Multiply Raster by a constant with CreateConstantRaster
constantValue1 = arcpy.GetParameterAsText(11) # input weight value
outConstRaster1 = CreateConstantRaster(constantValue1, "FLOAT", cellSize, outExtent)
outTimes1 = Raster(inRaster1)* outConstRaster1
outRaster1 = "Wt_" + os.path.basename(inRaster1)
outTimes1.save(outRaster1) # save raster
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
constantValue2 = arcpy.GetParameterAsText(12) # input weight value
outConstRaster2 = CreateConstantRaster(constantValue2, "FLOAT", cellSize, outExtent)
outTimes2 = Raster(inRaster2)* outConstRaster2
outRaster2 = "Wt_" + os.path.basename(inRaster2)
outTimes2.save(outRaster2)

#isinstnace test for parameter input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
constantValue3 = arcpy.GetParameterAsText(13) # input weight value
if isinstance(constantValue3, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster3 = CreateConstantRaster(constantValue3, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes3 = Raster(inRaster3)* outConstRaster3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster3 = "Wt_" + os.path.basename(inRaster3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes3.save(outRaster3)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue4 = arcpy.GetParameterAsText(14) # input weight value
if isinstance(constantValue4, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster4 = CreateConstantRaster(constantValue4, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes4 = Raster(inRaster4)* outConstRaster4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster4 = "Wt_" + os.path.basename(inRaster4)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes4.save(outRaster4)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue5 = arcpy.GetParameterAsText(15) # input weight value
if isinstance(constantValue5, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster5 = CreateConstantRaster(constantValue5, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes5 = Raster(inRaster5)* outConstRaster5
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster5 = "Wt_" + os.path.basename(inRaster5)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes5.save(outRaster5)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue6 = arcpy.GetParameterAsText(16) # input weight value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if isinstance(constantValue6, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster6 = CreateConstantRaster(constantValue6, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes6 = Raster(inRaster6)* outConstRaster6
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster6 = "Wt_" + os.path.basename(inRaster6)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes6.save(outRaster6)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue7 = arcpy.GetParameterAsText(17) # input weight value
if isinstance(constantValue7, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster7 = CreateConstantRaster(constantValue7, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes7 = Raster(inRaster7)* outConstRaster7
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster7 = "Wt_" + os.path.basename(inRaster7)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes7.save(outRaster7)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue8 = arcpy.GetParameterAsText(18) # input weight value
if isinstance(constantValue8, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster8 = CreateConstantRaster(constantValue8, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes8 = Raster(inRaster8)* outConstRaster8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster8 = "Wt_" + os.path.basename(inRaster8)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes8.save(outRaster8)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue9 = arcpy.GetParameterAsText(19) # input weight value
if isinstance(constantValue9, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster9 = CreateConstantRaster(constantValue9, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes9 = Raster(inRaster9)* outConstRaster9
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster9 = "Wt_" + os.path.basename(inRaster9)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes9save(outRaster9)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()

constantValue10 = arcpy.GetParameterAsText(20) # input weight value
if isinstance(constantValue10, ()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outConstRaster10 = CreateConstantRaster(constantValue10, "FLOAT", cellSize, outExtent)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes10 = Raster(inRaster10)* outConstRaster10
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster10 = "Wt_" + os.path.basename(inRaster10)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outTimes10.save(outRaster10)
else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetParameterAsText(21,wks1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 00:47:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575858#M45125</guid>
      <dc:creator>RobinCheskin</dc:creator>
      <dc:date>2021-12-12T00:47:34Z</dc:date>
    </item>
    <item>
      <title>Re: Python efficiency with Rasters</title>
      <link>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575859#M45126</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I have been toying around with ToolValidator b/c the script has to skip over creating a constant raster &amp;amp; performing times if there is no parameter (after the first 2 raster layers &amp;amp; weight values the parameters are optional).&amp;nbsp; &lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not so clear how you are using the isinstance() function. The usual way to do this with arcpy is by examining the returned value of arcpy.GetParameterAsText(). If the argument was not provided (and was not populated using script tool defaults or in validation code) the GetParameterAsText() result will be an empty string (not None, since the function always returns a text string).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;if arcpy.GetParameterAsText(2) != "":
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-style:italic;"&gt;do stuff with arcpy.GetParameterAsText(2)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 00:47:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575859#M45126</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2021-12-12T00:47:37Z</dc:date>
    </item>
    <item>
      <title>Re: Python efficiency with Rasters</title>
      <link>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575860#M45127</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;if arcpy.GetParameterAsText(2) != "":
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-style:italic;"&gt;do stuff with arcpy.GetParameterAsText(2)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Right, you can also use simple:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;if arcpy.GetParameterAsText(2):
&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-style:italic;"&gt;do stuff with arcpy.GetParameterAsText(2)&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Empty string is treated as Boolean False, so if there is no parameters nothing will be done.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 00:47:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-efficiency-with-rasters/m-p/575860#M45127</guid>
      <dc:creator>ArkadiuszMatoszka</dc:creator>
      <dc:date>2021-12-12T00:47:40Z</dc:date>
    </item>
  </channel>
</rss>

