4

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?

bertday
  • 1,305
  • 12
  • 25

1 Answers1

5

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.

Vince
  • 20,017
  • 15
  • 45
  • 64
  • 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 from sde, so I'm not sure how to reliably translate the Esri SRID to an EPSG-style ID. – bertday May 13 '16 at 16:49
  • 1
    SDE.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. – Vince May 13 '16 at 18:00