Im trying to learn to make geoprocessing tools.
Making a simple one to clip a raster but getting an error I cant decipher, from googling it looks like some kind of access violation.
heres my code
import arcpy # Set geoprocessing environments arcpy.env.workspace = r"C:\Jim\BathySelect\BSelect.gdb" arcpy.env.overwriteOutput = True #set params inTif = r"C:\Jim\BathySelect\Data\Bathy\Whole UK Mosaic.tif" desc = arcpy.Describe("SelectPoly") outTif = r"C:\Jim\output.tif" extent = desc.extent rectangle = arcpy.Polygon(arcpy.Array([extent.lowerLeft, extent.upperLeft, extent.upperRight, extent.lowerRight, extent.lowerLeft]), desc.spatialReference) arcpy.Clip_management(inTif, rectangle, outTif)
heres my error
Process finished with exit code -1073741819 (0xC0000005)
I eventually want this to fire from a widget in a WAB app and return a zip file of multiple clipped images.
So I have made some progress, I realised I could export a modelbuilder version as a script and compare.
The problem was my extent I was passing in wasnt in correct format.
I now have the extent converted to a string and it runs, but it doesnt clip the right area
import arcpy # Set geoprocessing environments arcpy.env.workspace = r"C:\Jim\BathySelect\BSelect.gdb" arcpy.env.overwriteOutput = True #set params inTif = r"C:\Jim\BathySelect\Data\Bathy\Whole UK Mosaic.tif" poly = r"C:\Jim\BathySelect\SelectPoly.shp" desc = arcpy.Describe(poly) outTif = r"C:\Jim\output.tif" extent = desc.extent arcpy.Clip_management(inTif, str(extent), outTif, poly, "0", "NONE", "NO_MAINTAIN_EXTENT")
when I look at the generated script the values it passes in for the same polygon are :-
"-610219.285476707 6629015.89017292 -581115.060601592 6655474.27642303"
but the figures in my extent are :-
“-5.48169310808 51.2315325764 -5.2202454077 51.3805117862”
this looks like a lat/lng vs metres problem now but not sure, still after a bit of help.
I think whats happening is that when you are grabbing the information for the shapefile VIA
it is giving you the extent for the shapefile and not the polygon information. I could be wrong though.
Within the documentation for Clip_management, it says the rectangle can use a Envelope, Feature Class or Feature Layer. So lets try feeding in the clipping polygon information another way.
Change str(extent) to poly and see if it works. If it doesn't work, import the shapefile into your BSelect.gdb as a featureclass and replace str(extent) with a variable for the path to the new featureclass.
I noticed you are using all of the optional parameters. Try replacing your Clip_management with this:
arcpyClip_managementinTif poly outTif)
so it seems my 2 datasets were in different projections that's why I was getting different values for the extents.
Once I changed my shapefile projectiont match my tiff projection all my numbers looked good and tif was cropped.