POST
|
What is the best textbook for learning Python in ArcGIS that people are aware of?
... View more
09-26-2012
08:24 AM
|
0
|
11
|
1410
|
POST
|
Thanks m.gasior! The funny part is that I have another model for this project with 5 nested models; sometimes you need an outside perspective to see very simple solutions, so thanks again.
... View more
09-26-2012
06:23 AM
|
0
|
0
|
270
|
POST
|
My python script tool will not stop running inside model builder. Here is an overview of what the model does: 1. Python script called "WeightRiskLayers" creates weighted rasters based on user input and saves them into a workspace. 2. Raster iterator iterates through these weighted rasters and puts them in the Collect Values tool. 3. Cell Statistics sums the rasters together to create a "Risk Terrain." The problem is that when I run everything outside of model builder, the python script repeats and subsequently the entire model runs again. I even tried adding the Model Only Tool "Stop" but that did not work. Here is the python script (sry it is long) #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 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) ReMapTable_dbf = "P:\\Crime_Analysis\\Testing_Training\\RiskTerrainModeling\\RobinAdrienne\\AggAssaults\\ReMapTable.dbf" #Multiply Raster by a constant with CreateConstantRaster constantValue1 = arcpy.GetParameterAsText(11) # input weight value outConstRaster1 = CreateConstantRaster(constantValue1, "FLOAT", cellSize, outExtent) outReclass1 = ReclassByTable(inRaster1, ReMapTable_dbf , "FROM", "TO", "VALUE") outTimes1 = outReclass1* outConstRaster1 outRaster1 = "Wt_" + os.path.basename(inRaster1) outTimes1.save(outRaster1) # save raster constantValue2 = arcpy.GetParameterAsText(12) # input weight value outConstRaster2 = CreateConstantRaster(constantValue2, "FLOAT", cellSize, outExtent) outReclass2 = ReclassByTable(inRaster2, ReMapTable_dbf ,"FROM","TO","VALUE") outTimes2 = outReclass2* outConstRaster2 outRaster2 = "Wt_" + os.path.basename(inRaster2) outTimes2.save(outRaster2) arcpy.SetParameterAsText(13,outRaster2) #isinstnace test for parameter input constantValue3 = arcpy.GetParameterAsText(14) # input weight value if constantValue3: outConstRaster3 = CreateConstantRaster(constantValue3, "FLOAT", cellSize, outExtent) outReclass3 = ReclassByTable(inRaster3, ReMapTable_dbf ,"FROM","TO","VALUE") outTimes3 = outReclass3* outConstRaster3 outRaster3 = "Wt_" + os.path.basename(inRaster3) outTimes3.save(outRaster3) else: sys.exit() constantValue4 = arcpy.GetParameterAsText(15) # input weight value if constantValue4: outConstRaster4 = CreateConstantRaster(constantValue4, "FLOAT", cellSize, outExtent) outReclass4 = ReclassByTable(inRaster4, ReMapTable_dbf ,"FROM","TO","VALUE") outTimes4 = outReclass4* outConstRaster4 outRaster4 = "Wt_" + os.path.basename(inRaster4) outTimes4.save(outRaster4) else: sys.exit() constantValue5 = arcpy.GetParameterAsText(16) # input weight value if constantValue5: outConstRaster5 = CreateConstantRaster(constantValue5, "FLOAT", cellSize, outExtent) outReclass5 = ReclassByTable(inRaster5, ReMapTable_dbf ,"FROM","TO","VALUE") outTimes5 = outReclass5* outConstRaster5 outRaster5 = "Wt_" + os.path.basename(inRaster5) outTimes5.save(outRaster5) else: sys.exit() constantValue6 = arcpy.GetParameterAsText(17) # input weight value if constantValue6: outConstRaster6 = CreateConstantRaster(constantValue6, "FLOAT", cellSize, outExtent) outReclass6 = ReclassByTable(inRaster6, ReMapTable_dbf ,"FROM","TO","VALUE") outTimes6 = outReclass6* outConstRaster6 outRaster6 = "Wt_" + os.path.basename(inRaster6) outTimes6.save(outRaster6) else: sys.exit() constantValue7 = arcpy.GetParameterAsText(18) # input weight value if constantValue7: outConstRaster7 = CreateConstantRaster(constantValue7, "FLOAT", cellSize, outExtent) outReclass7 = ReclassByTable(inRaster7, ReMapTable_dbf ,"FROM","TO","VALUE") outTimes7 = outReclass7* outConstRaster7 outRaster7 = "Wt_" + os.path.basename(inRaster7) outTimes7.save(outRaster7) else: sys.exit() constantValue8 = arcpy.GetParameterAsText(19) # input weight value if constantValue8: outConstRaster8 = CreateConstantRaster(constantValue8, "FLOAT", cellSize, outExtent) outReclass8 = ReclassByTable(inRaster8, ReMapTable_dbf ,"FROM","TO","VALUE") outTimes8 = outReclass8* outConstRaster8 outRaster8 = "Wt_" + os.path.basename(inRaster8) outTimes8.save(outRaster8) else: sys.exit() constantValue9 = arcpy.GetParameterAsText(20) # input weight value if constantValue9: outConstRaster9 = CreateConstantRaster(constantValue9, "FLOAT", cellSize, outExtent) outReclass9 = ReclassByTable(inRaster9, ReMapTable_dbf ,"FROM","TO","VALUE") outTimes9 = outReclass9* outConstRaster9 outRaster9 = "Wt_" + os.path.basename(inRaster9) outTimes9save(outRaster9) else: sys.exit() constantValue10 = arcpy.GetParameterAsText(21) # input weight value if constantValue10: outConstRaster10 = CreateConstantRaster(constantValue10, "FLOAT", cellSize, outExtent) outReclass10 = ReclassByTable(inRaster10, ReMapTable_dbf ,"FROM","TO","VALUE") outTimes10 = outReclass10* outConstRaster10 outRaster10 = "Wt_" + os.path.basename(inRaster10) outTimes10.save(outRaster10) else: sys.exit() Here is the script inside model builder: [ATTACH=CONFIG]17981[/ATTACH] Can I stop the model by changing the python code? Or can I do it through model builder? Help will be met with the utmost appreciation 😮
... View more
09-25-2012
02:48 PM
|
0
|
2
|
561
|
POST
|
Found a solution. Apparently I did not need to designate outReclass1 a raster, and the "*" operator must be next to outReclass1 with no spaces, which seems very silly to me.
#Multiply Raster by a constant with CreateConstantRaster
constantValue1 = arcpy.GetParameterAsText(11) # input weight value
outConstRaster1 = CreateConstantRaster(constantValue1, "FLOAT", cellSize, outExtent)
outReclass1 = ReclassByTable(inRaster1, ReMapTable_dbf , "FROM", "TO", "VALUE", "DATA")
outTimes1 = outReclass1* outConstRaster1
outRaster1 = "Wt_" + os.path.basename(inRaster1)
outTimes1.save(outRaster1) # save raster
... View more
09-25-2012
12:17 PM
|
0
|
0
|
403
|
POST
|
I am having a very frustrating problem with using the Times() function to multiply two rasters together. One of the rasters is created by ReclassByTable, and for some odd reason its output is not recognized as a raster (see red):
#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
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)
ReMapTable_dbf = "P:\\Crime_Analysis\\Testing_Training\\RiskTerrainModeling\\RobinAdrienne\\AggAssaults\\ReMapTable.dbf"
#Multiply Raster by a constant with CreateConstantRaster
constantValue1 = arcpy.GetParameterAsText(11) # input weight value
outConstRaster1 = CreateConstantRaster(constantValue1, "FLOAT", cellSize, outExtent)
outReclass1 = ReclassByTable(inRaster1, ReMapTable_dbf , "FROM", "TO", "VALUE", "DATA")
outTimes1 = Raster(outReclass1)* outConstRaster1
outRaster1 = "Wt_" + os.path.basename(inRaster1)
outTimes1.save(outRaster1) # save raster I keep getting the same error: [PHP]outTimes1 = Raster(outReclass1)* outConstRaster1 TypeError: expected a raster or layer name [/PHP] I already checked that the ReMap Table was working b/c when I save outReclass1 it gives me a raster where all the values are equal to 1 (which is what I want). In previous versions of the script, I had used a model builder to create the raster where all values are equal to 1 and used the times function successfully with outConstRaster1. However, I want to use the ReclassByTable in a python script because it is faster than model builder, but it is not working for me. I also tried making outReclass1 a raster layer for the times function, but that did not work either. Please help!
... View more
09-25-2012
10:06 AM
|
0
|
1
|
1884
|
POST
|
This is what I came up with, which seems to be working:
#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
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
constantValue3 = arcpy.GetParameterAsText(13) # input weight value
if isinstance(constantValue3, ()):
outConstRaster3 = CreateConstantRaster(constantValue3, "FLOAT", cellSize, outExtent)
outTimes3 = Raster(inRaster3)* outConstRaster3
outRaster3 = "Wt_" + os.path.basename(inRaster3)
outTimes3.save(outRaster3)
else:
arcpy.SetParameterAsText(21,wks1)
sys.exit()
constantValue4 = arcpy.GetParameterAsText(14) # input weight value
if isinstance(constantValue4, ()):
outConstRaster4 = CreateConstantRaster(constantValue4, "FLOAT", cellSize, outExtent)
outTimes4 = Raster(inRaster4)* outConstRaster4
outRaster4 = "Wt_" + os.path.basename(inRaster4)
outTimes4.save(outRaster4)
else:
arcpy.SetParameterAsText(21,wks1)
sys.exit()
constantValue5 = arcpy.GetParameterAsText(15) # input weight value
if isinstance(constantValue5, ()):
outConstRaster5 = CreateConstantRaster(constantValue5, "FLOAT", cellSize, outExtent)
outTimes5 = Raster(inRaster5)* outConstRaster5
outRaster5 = "Wt_" + os.path.basename(inRaster5)
outTimes5.save(outRaster5)
else:
arcpy.SetParameterAsText(21,wks1)
sys.exit()
constantValue6 = arcpy.GetParameterAsText(16) # input weight value
if isinstance(constantValue6, ()):
outConstRaster6 = CreateConstantRaster(constantValue6, "FLOAT", cellSize, outExtent)
outTimes6 = Raster(inRaster6)* outConstRaster6
outRaster6 = "Wt_" + os.path.basename(inRaster6)
outTimes6.save(outRaster6)
else:
arcpy.SetParameterAsText(21,wks1)
sys.exit()
constantValue7 = arcpy.GetParameterAsText(17) # input weight value
if isinstance(constantValue7, ()):
outConstRaster7 = CreateConstantRaster(constantValue7, "FLOAT", cellSize, outExtent)
outTimes7 = Raster(inRaster7)* outConstRaster7
outRaster7 = "Wt_" + os.path.basename(inRaster7)
outTimes7.save(outRaster7)
else:
arcpy.SetParameterAsText(21,wks1)
sys.exit()
constantValue8 = arcpy.GetParameterAsText(18) # input weight value
if isinstance(constantValue8, ()):
outConstRaster8 = CreateConstantRaster(constantValue8, "FLOAT", cellSize, outExtent)
outTimes8 = Raster(inRaster8)* outConstRaster8
outRaster8 = "Wt_" + os.path.basename(inRaster8)
outTimes8.save(outRaster8)
else:
arcpy.SetParameterAsText(21,wks1)
sys.exit()
constantValue9 = arcpy.GetParameterAsText(19) # input weight value
if isinstance(constantValue9, ()):
outConstRaster9 = CreateConstantRaster(constantValue9, "FLOAT", cellSize, outExtent)
outTimes9 = Raster(inRaster9)* outConstRaster9
outRaster9 = "Wt_" + os.path.basename(inRaster9)
outTimes9save(outRaster9)
else:
arcpy.SetParameterAsText(21,wks1)
sys.exit()
constantValue10 = arcpy.GetParameterAsText(20) # input weight value
if isinstance(constantValue10, ()):
outConstRaster10 = CreateConstantRaster(constantValue10, "FLOAT", cellSize, outExtent)
outTimes10 = Raster(inRaster10)* outConstRaster10
outRaster10 = "Wt_" + os.path.basename(inRaster10)
outTimes10.save(outRaster10)
else:
arcpy.SetParameterAsText(21,wks1)
sys.exit()
... View more
09-24-2012
10:19 AM
|
0
|
0
|
315
|
POST
|
Thank you, this worked nicely for the single raster. The challenge I am facing is creating the script for up to 10 rasters: #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) I have been toying around with ToolValidator b/c the script has to skip over creating a constant raster & performing times if there is no parameter (after the first 2 raster layers & weight values the parameters are optional). Unfortunately I am stuck again. Help would be greatly appreciated...!
... View more
09-24-2012
06:30 AM
|
0
|
0
|
315
|
POST
|
The script below multiplies two rasters, where the cell value of one raster is a parameter. #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")
This works, but is not optimal and much slower than I would like. 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." This will also need to work for up to 10 different raster layers. Any thoughts on making this more efficient?
... View more
09-21-2012
12:54 PM
|
0
|
5
|
1125
|
POST
|
I currently have this script accomplishing the task: import os
import arcpy
from arcpy import env
from arcpy.sa import *
constantValue = arcpy.GetParameterAsText(0) # input weight value
cellSize = 100
outExtent = Extent(871599.89, 982834.44, 912502.09, 1070920.9)
arcpy.CheckOutExtension("Spatial")
outConstRaster = CreateConstantRaster(constantValue, "FLOAT", cellSize, outExtent)
#Set local variables
wks = arcpy.GetParameterAsText(1) # input workspace
inRaster1 = arcpy.GetParameterAsText(2) # input raster layer
env.workspace = wks
outRaster = "Ct_" + os.path.basename(inRaster1)
outConstRaster.save(outRaster)
outTimes = Raster(inRaster1)* Raster(outRaster)
outRaster1 = "Wt_" + os.path.basename(inRaster1)
outTimes.save(outRaster1)
arcpy.SetParameterAsText(3,outRaster1)
arcpy.Delete_management(outRaster) This works, but is not optimal and much slower than I would like. 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." Any thoughts on making this more efficient?
... View more
09-21-2012
10:58 AM
|
0
|
1
|
419
|
POST
|
I need Weight1 to be a number (I need to multiply a raster layer by a constant where the constant is a parameter), so I set the parameter data type to double. However, I am now getting an error. import os
arcpy.CheckOutExtension("spatial")
from arcpy.sa import *
wks = arcpy.GetParameterAsText(0) # input workspace
Risk1 = arcpy.GetParameterAsText(1) # input raster layer
Weight1 = arcpy.GetParameterAsText(2) # input weight value
arcpy.env.workspace = wks
out1 = Raster(Risk1) * Weight1
outRaster1 = "Wt_" + os.path.basename(Risk1)
out1.save(outRaster1)
arcpy.SetParameterAsText(3,outRaster1) Error: Traceback (most recent call last): File "\\HDQ_FP2\ISD\racheskin\Desktop\MapAlgebra.py", line 9, in out1 = Raster(Risk1) * Weight1 File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\sa\Functions.py", line 4049, in Times in_raster_or_constant2) File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\sa\Utils.py", line 47, in swapper result = wrapper(*args, **kwargs) File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\sa\Functions.py", line 4046, in wrapper return _wrapLocalFunctionRaster(u"Times_sa", ["Times", in_raster_or_constant1, in_raster_or_constant2]) RuntimeError: ERROR 000732: Input Raster: Dataset 2.75 does not exist or is not supported Failed to execute (WeightRisk2).
... View more
09-21-2012
09:39 AM
|
0
|
0
|
419
|
POST
|
Thanks for the reply Curtis. I originally tried with map algebra with an original python script, but failed. This looks great and I will be sure to try it asap. I would prefer not to have the outRaster name as a parameter, but rather would like all the rasters saved as Weight_%Name% and have the output location as a parameter. Does setting the input workspace take care of the location, and how can I save all the rasters like this automatically? Thanks
... View more
09-20-2012
03:32 PM
|
0
|
0
|
419
|
POST
|
Hello Everyone, I am working on a script that multiplies rasters by a given constant using the Times tool. Both the rasters and constants are parameters in the script. However, I am receiving an error that I don't know how to fix:
# -*- utf-8 -*-
# ---------------------------------------------------------------------------
# Times.py
# Created on: 2012-09-20 14:34:40.00000
# (generated by ArcGIS/ModelBuilder)
# Usage: Times <Risk_Layer> <Weight> <Risk_Layer__2_> <Weight__2_> <Risk_Layer__3_> <Weight__3_> <Risk_Layer__5_> <Weight__5_> <Risk_Layer__4_> <Weight__4_> <Risk_Layer__6_> <Weight__6_> <Risk_Layer__7_> <Weight__7_> <Risk_Layer__8_> <Weight__8_> <Risk_Layer__10_> <Weight__10_> <Risk_Layer__9_> <Weight__9_>
# Description:
# ---------------------------------------------------------------------------
# Import arcpy module
import arcpy
# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")
#Set geoprocessing environment
inWorkspace = arcpy.GetParameterAsText(0)
arcpy.env.workspace = inWorkspace
arcpy.env.overwriteOutput = True
# Script arguments
Risk_Layer = arcpy.GetParameterAsText(1)
Weight = arcpy.GetParameterAsText(2)
Risk_Layer__2_ = arcpy.GetParameterAsText(3)
Weight__2_ = arcpy.GetParameterAsText(4)
Risk_Layer__3_ = arcpy.GetParameterAsText(5)
Weight__3_ = arcpy.GetParameterAsText(6)
Risk_Layer__5_ = arcpy.GetParameterAsText(7)
Weight__5_ = arcpy.GetParameterAsText(8)
Risk_Layer__4_ = arcpy.GetParameterAsText(9)
Weight__4_ = arcpy.GetParameterAsText(10)
Risk_Layer__6_ = arcpy.GetParameterAsText(11)
Weight__6_ = arcpy.GetParameterAsText(12)
Risk_Layer__7_ = arcpy.GetParameterAsText(13)
Weight__7_ = arcpy.GetParameterAsText(14)
Risk_Layer__8_ = arcpy.GetParameterAsText(15)
Weight__8_ = arcpy.GetParameterAsText(16)
Risk_Layer__10_ = arcpy.GetParameterAsText(17)
Weight__10_ = arcpy.GetParameterAsText(18)
Risk_Layer__9_ = arcpy.GetParameterAsText(19)
Weight__9_ = arcpy.GetParameterAsText(20)
# Local variables:
Weight__Risk_Layer_ = Risk_Layer
Weight__Risk_Layer__2__ = Risk_Layer__2_
Weight__Risk_Layer__3__ = Risk_Layer__3_
Weight__Risk_Layer__4__ = Risk_Layer__4_
Weight__Risk_Layer__5__ = Risk_Layer__5_
Weight__Risk_Layer__6__ = Risk_Layer__6_
Weight__Risk_Layer__7__ = Risk_Layer__7_
Weight__Risk_Layer__8__ = Risk_Layer__8_
Weight__Risk_Layer__9__ = Risk_Layer__9_
Weight__Risk_Layer__10__ = Risk_Layer__10_
# Process: Times a
rcpy.gp.Times_sa(Risk_Layer, Weight, Weight__Risk_Layer_)
# Process: Times (2)
arcpy.gp.Times_sa(Risk_Layer__2_, Weight__2_, Weight__Risk_Layer__2__)
# Process: Times (3)
arcpy.gp.Times_sa(Risk_Layer__3_, Weight__3_, Weight__Risk_Layer__3__)
# Process: Times (4)
arcpy.gp.Times_sa(Risk_Layer__4_, Weight__4_, Weight__Risk_Layer__4__)
# Process: Times (5)
arcpy.gp.Times_sa(Risk_Layer__5_, Weight__5_, Weight__Risk_Layer__5__)
# Process: Times (6)
arcpy.gp.Times_sa(Risk_Layer__6_, Weight__6_, Weight__Risk_Layer__6__)
# Process: Times (7)
arcpy.gp.Times_sa(Risk_Layer__7_, Weight__7_, Weight__Risk_Layer__7__)
# Process: Times (8)
arcpy.gp.Times_sa(Risk_Layer__8_, Weight__8_, Weight__Risk_Layer__8__)
# Process: Times (9)
arcpy.gp.Times_sa(Risk_Layer__9_, Weight__9_, Weight__Risk_Layer__9__)
# Process: Times (10)
arcpy.gp.Times_sa(Risk_Layer__10_, Weight__10_, Weight__Risk_Layer__1) And receiving the error: Traceback (most recent call last):
File "\\HDQ_FP2\ISD\racheskin\Desktop\Times.py", line 75, in <module>
arcpy.gp.Times_sa(Risk_Layer, Weight, Weight__Risk_Layer_)
File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\geoprocessing\_base.py", line 484, in <lambda>
return lambda *args: val(*gp_fixargs(args, True))
ExecuteError: Failed to execute. Parameters are not valid.
ERROR 000670: output P:\Crime_Analysis\Testing_Training\RiskTerrainModeling\RobinAdrienne\Assault_Factors.gdb\Bin_Rec_AA_JAS_10 is same as input P:\Crime_Analysis\Testing_Training\RiskTerrainModeling\RobinAdrienne\Assault_Factors.gdb\Bin_Rec_AA_JAS_10
Failed to execute (Times). I am confused as to why the output ends up the same as the input since I specified the outRasters be named differently in the script. Help please! Thanks, Robin
... View more
09-20-2012
12:09 PM
|
0
|
6
|
2815
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|