The WTK describes these parameters. Looks they are not exposed in arcpy.SpatialReference, at least as of 10.2.2.
I was trying to get at them with setZFalseOriginAndUnits (false_z, z_units) using values [0, 100] but that doesn't seem to change the WTK text when exported.
PROJCS['NAD_1983_Albers', GEOGCS['GCS_North_American_1983', DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]], PRIMEM['Greenwich',0.0], UNIT['Degree',0.0174532925199433]], PROJECTION['Albers'], PARAMETER['False_Easting',0.0], PARAMETER['False_Northing',0.0], PARAMETER['central_meridian',-96.0], PARAMETER['Standard_Parallel_1',29.5], PARAMETER['Standard_Parallel_2',45.5], PARAMETER['latitude_of_origin',23.0], UNIT['Meter',1.0]], VERTCS['Unknown VCS',VDATUM['Unknown'], PARAMETER['Vertical_Shift',0.0], PARAMETER['Direction',1.0], UNIT['User_Defined_Unit',0.01]]; -16901100 -6972200 266467840.990852;-100000 100;-100000 10000;0.001;0.1;0.001;IsHighPrecision
The spatial reference is now read from the auxiliary file (*.aux.xml) associated to the raster. This file contains information on the raster that cannot be stored in the raster itself (e.g. spatial reference in the SRS section).
The old projection file is overwritten based on the content of the auxiliary file – this is why ArcMap will not recognize the changes to the projection file.
You can modify the spatial reference properties and set the z unit in the Z Coordinate System tab in the Spatial Reference Properties window.
You can select an existing Z Coordinate System or create a custom one by right-clicking and existing one and selecting Copy and Modify.
Christine Dartiguenave
Esri Water Resources Team
Christine,
I am having the same trouble: any modifications in the adf.prj-file are not recognized by ArcHydro. My raster coordinate system is a national reference system without a Z coordinate system. Consequently the Spatial Reference Properties window does only show a XY Coordinate System tab - there are no existing Z-coordinate systems to modify according to your post. How do I add a new one?
Thank you very much in advance!
Axel
Christine, is there a way to do this from Python? This is why I was dismayed it apparently isn't supported in the SpatialReference object even though it seemed like it should be.
Any way to modify the Z-coordinate system values would be ok for me: manually, Python, ArcObjects - we only need the information how to do it...
Cheers,
Axel
I got a question about this today and looked into it again. The Define Projection tool does the trick. That tool exposes the Z coordinate tab so you can set the values. When I set the Z values to NAVD88 and units to centimeters, it runs successfully and it seems to "take" - at least when i describe it I can see it has been set.
Check of results in Python window:
>>> arcpy.Describe("elev_cm.tif").spatialReference.exportToString()
u"PROJCS['USA_Contiguous_Albers_Equal_Area_Conic_USGS_version',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Albers'],PARAMETER['false_easting',0.0],PARAMETER['false_northing',0.0],PARAMETER['central_meridian',-96.0],PARAMETER['standard_parallel_1',29.5],PARAMETER['standard_parallel_2',45.5],PARAMETER['latitude_of_origin',23.0],UNIT['Meter',1.0]],VERTCS['NAVD_1988',VDATUM['North_American_Vertical_Datum_1988'],PARAMETER['Vertical_Shift',0.0],PARAMETER['Direction',1.0],UNIT['Centimeter',0.01]];-16901100 -6972200 266467840.990852;-100000 100;-100000 10000;0.001;0.1;0.001;IsHighPrecision"
I have an update on this, 10.5 has improved Z support on the SpatialReference object, which now has a vcs property.
Still don't see an easy way to change the Z units, but you can define canned xy and z systems with codes:
SR = arcpy.SpatialReference(102039, 5703)