Why is exe path added to workspace path when saving raster?

3613
1
06-09-2015 07:02 AM
JonMorris2
Occasional Contributor II

I'm trying to save a raster to an sde workspace, but get the following error:

ERROR 000875: Output raster: c:\program files (x86)\arcgis\desktop10.2\bin\Database Connections\test.sde\LatNorth's workspace is an invalid output workspace.

Sample code:

INWorkspace = arcpy.GetParameterAsText(0)
InputLatitude = arcpy.Raster(INWorkspace + "\\" + StageAge + "_Latitude")
LatNorth = Con((InputLatitude > 0), InputLatitude)
LatNorth.save("LatNorth")

(StageAge is just a string)

I have also tried:

OUTWorkspace = arcpy.env.workspace
LatNorth.save(os.path.join(OUTWorkspace, "LatNorth"))

What is the correct syntax for saving a raster to sde? This isn't documented, or if it is, it's well hidden.

0 Kudos
1 Reply
JonMorris2
Occasional Contributor II

Update: I tried a few things out in the python window and it looks like this is possible for sde if you ignore the usual 'Database Connections' syntax and give the full path of the sde connection file.

>>> import arcpy
>>> import os
>>> out_gdb = r"Database Connections\test.sde"
>>> from arcpy.sa import Con
>>> from arcpy.sa import Raster
>>> InputLatitude = Raster("GEOLOGY.Maas_Latitude")
>>> LatNorth = Con((InputLatitude > 0), InputLatitude)
>>> arcpy.env.workspace
u'C:\\Users\\jpm\\Documents\\ArcGIS\\Default.gdb'
>>> LatNorth.save("LatNorth")
Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
RuntimeError: ERROR 010240: Could not save raster dataset to C:\Users\jpm\Documents\ArcGIS\Default.gdb\ifthe_ras4 with output format FGDBR.
>>> LatNorth.save()
>>> LatNorth.save(arcpy.env.workspace + "\\LatNorth")
>>> LatNorth.save(os.path.join(arcpy.env.workspace, "LatNorth"))
>>> LatNorth.save(os.path.join(out_gdb, "LatNorth"))
Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
RuntimeError: ERROR 000875: Output raster: C:\Windows\system32\Database Connections\test.sde\LatNorth's workspace is an invalid output workspace.
>>> arcpy.env.workspace = out_gdb
>>> arcpy.env.workspace
u'Database Connections\\test.sde'
>>> LatNorth.save(os.path.join(arcpy.env.workspace, "LatNorth"))
Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
RuntimeError: ERROR 000875: Output raster: C:\Windows\system32\Database Connections\test.sde\LatNorth's workspace is an invalid output workspace.
>>> LatNorth.save("LatNorth")
Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
RuntimeError: ERROR 000875: Output raster: C:\Windows\system32\Database Connections\test.sde\LatNorth's workspace is an invalid output workspace.
>>> LatNorth.save()
>>> LatNorth.save(r"C:\Users\jpm\AppData\Roaming\ESRI\Desktop10.2\ArcCatalog\test.sde\LatNorth")
>>> 

The penultimate line appears to show that it worked, but nothing new appeared in the sde database. Not sure where ArcMap saved it - I suspect it was just overwriting the raster in Default.gdb.

The last line, however, did work.

0 Kudos