Hot answers tagged scripting
It is much more intuitive, in my opinion, to work with Cursors (rather than trying to emulate the field calculator in a script) for this type of problem. This is how you would port the problem over to an Update Cursor: import arcpy # The input FC fc = "C:/W/Sik.gdb/yourFC" with arcpy.da.UpdateCursor(fc, ["aspect", "aspect_m60"]) as cursor: for row in ...
Your function is not returning anything. I've modified your code to return the value of aspect_m60. # Calculate Field import arcpy # Set environment settings arcpy.env.workspace = "c:/W/Sik" # Set local variables inTable = "Point" fieldName = "aspect_m60" expression = "getCalc(!aspect!)" codeblock = """def getCalc(aspect): if (aspect < 60): ...
You are trying to set the field within the code block, when actually you need the code block to return the value you're looking for. If you just just add return aspect_m60 after the else block, it should work fine. Think of the code block as a place to write functions whose results can be used in your field calculator expression.
Found a solution from this post where I only had to add the following code to the script: from osgeo import gdal gdal.PushErrorHandler('CPLQuietErrorHandler') After adding the above and removing the try statement, the working script ignores the ERROR 1 messages: from osgeo import gdal gdal.PushErrorHandler('CPLQuietErrorHandler') def run(): ...
write 'D:\ne_10m_airports' as 'D:/ne_10m_airports' (change with uri formalism) or 'D:\ne_10m_airports' (escaping) or r'D:\ne_10m_airports' (r means raw string) regards
My advice is that you specify the output location. Something like this: output = "C:\yourfolder\yourgdb.gdb\DEM_park" Because it is not clear to me where is your DEM going, check your environment settings. EDIT: Oh, I see it now. You created a tif. GDB's cannot store tif format rasters, so of course it is not there at the default gdb. Then your output ...
Only top voted, non community-wiki answers of a minimum length are eligible