<?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: Map Algebra and Python? in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/map-algebra-and-python/m-p/725402#M56203</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Arvind,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is a script which should give you the mean of 2 rasters. The number of rasters in each of the workspaces must be the same or the script will error.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Tony&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;# Import system modules
import sys, string, os, arcgisscripting

# Create the Geoprocessor object
gp = arcgisscripting.create(9.3)
gp.OverWriteOutput = 1

# Check out Spatial Analyst extension license
gp.CheckOutExtension("Spatial")


# Parameters
Workspace01 = gp.GetParameterAsText(0)
gp.AddMessage ("input Workspace01: " + Workspace01)
#Workspace01 = r"C:\temp\test\Workspace1"

Workspace02 = gp.GetParameterAsText(1)
gp.AddMessage ("input Workspace02: " + Workspace02)
#Workspace02 = r"C:\temp\test\Workspace2"

OutWorkspace = gp.GetParameterAsText(2)
gp.AddMessage ("output Workspace: " + output_Workspace)
#OutWorkspace = r"C:\temp\test\outputwkspc"

try:
#Get the raster datasets in the input Workspace01 and loop through them from the start
&amp;nbsp;&amp;nbsp;&amp;nbsp; #I removed the messages for easier reading of the code.
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Set the environment workspace to workspace one. gp.workspace is an environment variable and must be set befor listing data
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.workspace = Workspace01
&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRasters01 = gp.ListRasters()#This will list all the rasters in Workspace01

&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.workspace = Workspace02#change the workspace to the next workspace you wish to list data for.
&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRasters02 = gp.ListRasters()
&amp;nbsp;&amp;nbsp;&amp;nbsp; iterInputRasters02 = iter(InputRasters02)#create an iterater for rasters02 so it may be incremented.
&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; for InputRaster in InputRasters01:#This will loop through your first list.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Becasue the workspace was changed to create the second list the path to the first list is no longer valid. So the script does not fail
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #we need to set the full path name to items in InputRasters01.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fullInputRaster = Workspace01 + os.sep + InputRaster

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRaster02 = iterInputRasters02.next()#increment&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Set the output table name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nameRaster1 = gp.describe(fullInputRaster).baseName
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nameRaster2 = gp.describe(InputRaster02).baseName
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster = OutWorkspace + os.sep + "mean" + InputRaster + ".tif"#create a tif with first raster name. Use a tif because the name could become too long for esri grid.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InExpression = "MEAN(" + fullInputRaster + "," + InputRaster02 +")"#use the variable so the raster is updated for each SOMA call

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Process: MapAlgebra
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.SingleOutputMapAlgebra_sa(InExpression, outRaster)
except:
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage(gp.GetMessages(2))
&amp;nbsp;&amp;nbsp;&amp;nbsp; print gp.GetMessages(2)&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 07:01:06 GMT</pubDate>
    <dc:creator>TonyPagani</dc:creator>
    <dc:date>2021-12-12T07:01:06Z</dc:date>
    <item>
      <title>Map Algebra and Python?</title>
      <link>https://community.esri.com/t5/python-questions/map-algebra-and-python/m-p/725401#M56202</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hey all, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm trying to input two rasters and derive a "mean" raster from both of them.&amp;nbsp; The thing is I need to do this 4500 times.&amp;nbsp; Any help would be appreciated.&amp;nbsp; I've been messing around with a code, but I don't even know if I have it right.&amp;nbsp; Right now, it runs successfully but no output and I'm thinking this is because I forgot to define something? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, I don't know even if I can run it like the way I envision it?&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What I'm trying to do is &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mean (1895_01Tmin, 1895_02Tmax) = 1895_01Tmean&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mean (1895_02Timin, 1895_02tmax) = 1895_02Tmean&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;....&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mean (XXX_XXTmin, XXXX_XXTmax) = XXXX_XXTmean &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I posted my code below and I really appreciate any help! &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;# Import system modules&lt;BR /&gt;import sys, string, os, arcgisscripting&lt;BR /&gt;&lt;BR /&gt;# Create the Geoprocessor object&lt;BR /&gt;gp = arcgisscripting.create()&lt;BR /&gt;gp.OverWriteOutput = 1&lt;BR /&gt;&lt;BR /&gt;# Parameters&lt;BR /&gt;Workspace01 = gp.GetParameterAsText(0)&lt;BR /&gt;gp.AddMessage ("input Workspace01: " + Workspace01)&lt;BR /&gt;#Workspace01 = "C:\test\ppt_study_counties"&lt;BR /&gt;&lt;BR /&gt;Workspace02 = gp.GetParameterAsText(1)&lt;BR /&gt;gp.AddMessage ("input Workspace02: " + Workspace02)&lt;BR /&gt;#Workspace02 = "C:\test\ppt_study_counties"&lt;BR /&gt;&lt;BR /&gt;output_Workspace = gp.GetParameterAsText(2)&lt;BR /&gt;gp.AddMessage ("output Workspace: " + output_Workspace)&lt;BR /&gt;#OutWorkspace01 = "C:\test\zonal_stats_ppt_counties"&lt;BR /&gt;&lt;BR /&gt;try:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Get the raster datasets in the input Workspace01 and loop through them from the start&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.Workspace01 = Workspace01&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRasters01 = gp.ListRasters01()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage(InputRasters01)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRasters01.reset()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRaster01 = InputRasters01.next()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage(InputRaster01)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.Workspace02 = Workspace02&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRasters02 = gp.ListRasters02()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage(InputRasters02)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRasters02.reset()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRaster02 = InputRasters02.next()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage(InputRaster02)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while InputRaster:&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Set the output table name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster = OutputWorkspace + "\\" + Workspace01 + Workspace02 + "tmen" &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InExpression = "MEAN(Workspace01, Workspace02)"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage(outRaster)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Check out Spatial Analyst extension license&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.CheckOutExtension("Spatial")&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Load required toolboxes.&amp;nbsp; You may need to alter the paths if you are using a 64 bit OS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddToolbox("C:\Program Files (x86)\ArcGIS\ArcToolbox\Toolboxes\Spatial Analyst Tools.tbx")&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Process: MapAlgebra&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.SingleOutputMapAlgebra_sa(InExpression, Outfile)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # print InputRaster&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRaster = InputRasters.next()&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;except:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage(gp.GetMessages(2))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print gp.GetMessages(2)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Sep 2011 15:22:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/map-algebra-and-python/m-p/725401#M56202</guid>
      <dc:creator>ArvindBhuta</dc:creator>
      <dc:date>2011-09-02T15:22:51Z</dc:date>
    </item>
    <item>
      <title>Re: Map Algebra and Python?</title>
      <link>https://community.esri.com/t5/python-questions/map-algebra-and-python/m-p/725402#M56203</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Arvind,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is a script which should give you the mean of 2 rasters. The number of rasters in each of the workspaces must be the same or the script will error.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Tony&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;# Import system modules
import sys, string, os, arcgisscripting

# Create the Geoprocessor object
gp = arcgisscripting.create(9.3)
gp.OverWriteOutput = 1

# Check out Spatial Analyst extension license
gp.CheckOutExtension("Spatial")


# Parameters
Workspace01 = gp.GetParameterAsText(0)
gp.AddMessage ("input Workspace01: " + Workspace01)
#Workspace01 = r"C:\temp\test\Workspace1"

Workspace02 = gp.GetParameterAsText(1)
gp.AddMessage ("input Workspace02: " + Workspace02)
#Workspace02 = r"C:\temp\test\Workspace2"

OutWorkspace = gp.GetParameterAsText(2)
gp.AddMessage ("output Workspace: " + output_Workspace)
#OutWorkspace = r"C:\temp\test\outputwkspc"

try:
#Get the raster datasets in the input Workspace01 and loop through them from the start
&amp;nbsp;&amp;nbsp;&amp;nbsp; #I removed the messages for easier reading of the code.
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Set the environment workspace to workspace one. gp.workspace is an environment variable and must be set befor listing data
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.workspace = Workspace01
&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRasters01 = gp.ListRasters()#This will list all the rasters in Workspace01

&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.workspace = Workspace02#change the workspace to the next workspace you wish to list data for.
&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRasters02 = gp.ListRasters()
&amp;nbsp;&amp;nbsp;&amp;nbsp; iterInputRasters02 = iter(InputRasters02)#create an iterater for rasters02 so it may be incremented.
&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; for InputRaster in InputRasters01:#This will loop through your first list.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Becasue the workspace was changed to create the second list the path to the first list is no longer valid. So the script does not fail
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #we need to set the full path name to items in InputRasters01.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fullInputRaster = Workspace01 + os.sep + InputRaster

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputRaster02 = iterInputRasters02.next()#increment&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Set the output table name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nameRaster1 = gp.describe(fullInputRaster).baseName
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nameRaster2 = gp.describe(InputRaster02).baseName
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outRaster = OutWorkspace + os.sep + "mean" + InputRaster + ".tif"#create a tif with first raster name. Use a tif because the name could become too long for esri grid.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InExpression = "MEAN(" + fullInputRaster + "," + InputRaster02 +")"#use the variable so the raster is updated for each SOMA call

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Process: MapAlgebra
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.SingleOutputMapAlgebra_sa(InExpression, outRaster)
except:
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage(gp.GetMessages(2))
&amp;nbsp;&amp;nbsp;&amp;nbsp; print gp.GetMessages(2)&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 07:01:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/map-algebra-and-python/m-p/725402#M56203</guid>
      <dc:creator>TonyPagani</dc:creator>
      <dc:date>2021-12-12T07:01:06Z</dc:date>
    </item>
    <item>
      <title>Re: Map Algebra and Python?</title>
      <link>https://community.esri.com/t5/python-questions/map-algebra-and-python/m-p/725403#M56204</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hey Tony, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I really appreciate it.&amp;nbsp; I'll check it out and run it through.&amp;nbsp; Looking forward to trying it.&amp;nbsp; Thanks a ton again!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Arvind&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Sep 2011 21:52:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/map-algebra-and-python/m-p/725403#M56204</guid>
      <dc:creator>ArvindBhuta</dc:creator>
      <dc:date>2011-09-27T21:52:47Z</dc:date>
    </item>
  </channel>
</rss>

