Hi All!!
So I'm currently writing a script that will allow end users to create a map, and the only hiccup I'm having is the spatial reference.
When I run the below code I receive the below error. But since its the generic error I'm not too sure what's going wrong.
arcpy.env.outputCoordinateSystem = arcpy.SpatialReference(arcpy.GetParameterAsText(3))
RuntimeError: ERROR 999999: Something unexpected caused the tool to fail. Contact Esri Technical Support (http://esriurl.com/support) to Report a Bug, and refer to the error help for potential solutions or workarounds.
In the toolbox I have the data type set as 'Coordinate System'.
Any help would be appreciated.
Thank you.
It could be something else in your script, if there is more to it so step through it with the debugger.
If the error is on this part, what is getting past as in the GetParameterAsText? SpatialReference accepts the projection (.prj), the name of the projection as text ("Hawaii Albers Equal Area Conic") or the spatial reference's factory code (32145) but not '32145'. Does it work if the inputs are hardcoded?
arcpy.env.outputCoordinateSystem = arcpy.SpatialReference(32145)
See my comment below on what happens when i try and hard code a coordinate system
Use the SpatialReference or CoordinateSystem objects directly (i.e. use arcpy.GetParameter instead of GetParameterAsText)
import arcpy
#This works
sr = arcpy.GetParameter(0)
arcpy.env.outputCoordinateSystem = sr
#So does this
crs = arcpy.GetParameter(1)
arcpy.env.outputCoordinateSystem = crs
I have tried both the above methods and its still not working for me.
So i have tried running a hard coded test in the python window:
crs = 'WGS 1984'
arcpy.env.outputCoordinateSystem = crs
RuntimeError: Object: Error in accessing environment <outputCoordinateSystem>
utm = 'WGS 1984 UTM Zone 56S'
arcpy.env.outputCoordinateSystem = utm
RuntimeError: Object: Error in accessing environment <outputCoordinateSystem>
Would this be because of a part earlier in my script?
@MichaelFowler1 wrote:I have tried both the above methods and its still not working for me.
Weird, works fine for me.
@MichaelFowler1 wrote:
crs = 'WGS 1984'
arcpy.env.outputCoordinateSystem = crs
RuntimeError: Object: Error in accessing environment <outputCoordinateSystem>
utm = 'WGS 1984 UTM Zone 56S'
arcpy.env.outputCoordinateSystem = utm
RuntimeError: Object: Error in accessing environment <outputCoordinateSystem>
If you want to hardcode a spatial reference:
crs = arcpy.SpatialReference(4326) # 'WGS 1984' https://epsg.io/4326
arcpy.env.outputCoordinateSystem = crs
utm = arcpy.SpatialReference(32756) # 'WGS 1984 UTM Zone 56S' https://epsg.io/32756
arcpy.env.outputCoordinateSystem = utm