When I look at the SDE.ST_GEOMETRY_COLUMNS
table of my SDE database I'm seeing mostly recognizable four-digit values, but a number of columns have SRIDs like 300006
, 300008
, and 300047
. I can't find descriptions of these anywhere and they aren't recognized when I use an open-source library like Proj4 to transform geometries. Does anyone know what these signify?
1 Answer
An Esri SRID is not the same thing as a coordinate reference ID. Esri uses an integer compression algorithm to improve geometry performance, and the spatial reference parameters provide the rules for this compression (there's a whole whitepaper on how coordinate references are implemented). The SRIDs are therefore site-specific versions of the metadata associated with as-built geometry layers, and are not to be used as a coordinate system id.
Coordinate system identifiers for the ArcSDE Oracle implementation are stored as both text and well-known ids in the sde.ST_SPATIAL_REFERENCES
table, in the DEFINITION
and CS_ID
columns, respectively. In PostgreSQL, the spatial references are stored in public.sde_spatial_references
, in the columns srtext
and cs_id
, respectively. The SRID
from sde.layers
and sde.st_geometry_columns
is the foreign key into the spatial references table.
-
Thanks Vince, that makes a lot more sense. I'm still a little puzzled that those would be returned by the
SDE.ST_SRID
function rather than the more canonical coordinate system ID. I don't always have permissions to select fromsde
, so I'm not sure how to reliably translate the Esri SRID to an EPSG-style ID. May 13, 2016 at 16:49 -
1SDE.ST_SRID predated the canonical use of CR ids. The spatial references table has PUBLIC access, so you should be able to join to it on srid to return CS_ID.– VinceMay 13, 2016 at 18:00