SpatialReference (arcpy)
Summary
Each part of the spatial reference has a number of properties (especially the coordinate system) that defines what map projection options are used to define horizontal coordinates.
Discussion
A SpatialReference object can also be accessed from existing datasets using the Describe spatialReference property.
dataset = "c:/data/landbase.gdb/Wetlands"
spatial_ref = arcpy.Describe(dataset).spatialReference
Which spatial reference properties are available depends on the coordinate system used. In the properties list below, those properties only available with a Projected Coordinate system are denoted with a 1; properties available only with a Geographic Coordinate system are denoted with a 2.
Syntax
Parameter | Explanation | Data Type |
item |
The spatial reference can be created in three ways:
For more information on coordinate system names and factory codes, see geographic_coordinate_systems.pdf and projected_coordinate_systems.pdf files in the ArcGIS Documentation folder. For more information, see Using the spatial reference class. | String |
Properties
Property | Explanation | Data Type |
GCS (Read Only) |
If a projected coordinate system, returns a SpatialReference object for the geographic coordinate system it is based on. If a geographic coordinate system, returns the same SpatialReference. | SpatialReference |
MDomain (Read Only) |
The extent of the measure domain. | String |
MFalseOriginAndUnits (Read Only) |
The measure false origin and units. | String |
MResolution (Read and Write) |
The measure resolution. | Double |
MTolerance (Read and Write) |
The measure tolerance. | Double |
XYResolution (Read and Write) |
The xy resolution. | Double |
XYTolerance (Read and Write) |
The xy tolerance. | Double |
ZDomain (Read Only) |
The extent of the Z domain. | String |
ZFalseOriginAndUnits (Read Only) |
The Z false origin and units. | String |
ZResolution (Read and Write) |
The Z resolution property. | Double |
ZTolerance (Read and Write) |
The Z tolerance property. | Double |
abbreviation (Read and Write) |
The abbreviated name of the spatial reference. | String |
alias (Read and Write) |
The alias of the spatial reference. | String |
domain (Read Only) |
The extent of the xy domain. | String |
factoryCode (Read and Write) |
The factory code of the spatial reference. | Integer |
falseOriginAndUnits (Read Only) |
The false origin and units. | String |
hasMPrecision (Read Only) |
Indicates whether or not m-value precision information has been defined. | Boolean |
hasXYPrecision (Read Only) |
Indicates whether or not xy precision information has been defined. | Boolean |
hasZPrecision (Read Only) |
Indicates whether or not z-value precision information has been defined. | Boolean |
isHighPrecision (Read and Write) |
Indicates whether or not the spatial reference has high precision set. | Boolean |
name (Read and Write) |
The name of the spatial reference. | String |
remarks (Read and Write) |
The comment string of the spatial reference. | String |
type (Read and Write) |
The type of the spatial reference. | String |
usage (Read Only) |
The usage notes. | String |
PCSCode (Read and Write) |
The projected coordinate system code.1 | Integer |
PCSName (Read and Write) |
The projected coordinate system name.1 | String |
azimuth (Read and Write) |
The azimuth of a projected coordinate system.1 | Double |
centralMeridian (Read and Write) |
The central meridian of a projected coordinate system.1 | Double |
centralMeridianInDegrees (Read and Write) |
The central meridian (Lambda0) of a projected coordinate system in degrees.1 | Double |
centralParallel (Read and Write) |
The central parallel of a projected coordinate system.1 | Double |
classification (Read Only) |
The classification of a map projection.1 | String |
falseEasting (Read and Write) |
The false easting of a projected coordinate system.1 | Double |
falseNorthing (Read and Write) |
The false northing of a projected coordinate system.1 | Double |
latitudeOf1st (Read and Write) |
The latitude of the first point of a projected coordinate system.1 | Double |
latitudeOf2nd (Read and Write) |
The latitude of the second point of a projected coordinate system.1 | Double |
linearUnitCode (Read and Write) |
The linear unit code.1 | Integer |
linearUnitName (Read and Write) |
The linear unit name.1 | String |
longitude (Read and Write) | The longitude value of this prime meridian.1 | Double |
longitudeOf1st (Read and Write) |
The longitude of the first point of a projected coordinate system.1 | Double |
longitudeOf2nd (Read and Write) |
The longitude of the second point of a projected coordinate system.1 | Double |
longitudeOfOrigin (Read and Write) |
The longitude of origin of a projected coordinate system.1 | Double |
metersPerUnit (Read Only) | The meters per linear unit.1 | Double |
projectionCode (Read and Write) |
The projection code.1 | Integer |
projectionName (Read and Write) |
The projection name.1 | String |
scaleFactor (Read and Write) |
The scale factor of a projected coordinate system.1 | Double |
standardParallel1 (Read and Write) |
The first parallel of a projected coordinate system.1 | Double |
standardParallel2 (Read and Write) |
The second parallel of a projected coordinate system.1 | Double |
GCSCode (Read and Write) |
The geographic coordinate system code.2 | Integer |
GCSName (Read and Write) |
The geographic coordinate system name.2 | String |
angularUnitCode (Read and Write) |
The angular unit code.2 | Integer |
angularUnitName (Read and Write) |
The angular unit name.2 | String |
datumCode (Read and Write) |
The datum code.2 | Integer |
datumName (Read and Write) |
The datum name.2 | String |
flattening (Read and Write) |
The flattening ratio of this spheroid.2 | Double |
longitude (Read and Write) |
The longitude value of this prime meridian.2 | Double |
primeMeridianCode (Read and Write) |
The prime meridian code.2 | Integer |
primeMeridianName (Read and Write) |
The prime meridian name.2 | String |
radiansPerUnit (Read Only) |
The radians per angular unit.2 | Double |
semiMajorAxis (Read and Write) |
The semi-major axis length of this spheroid.2 | Double |
semiMinorAxis (Read and Write) |
The semi-minor axis length of this spheroid.2 | Double |
spheroidCode (Read and Write) |
The spheroid code.2 | Integer |
spheroidName (Read and Write) |
The spheroid name.2 | String |
Method Overview
Method | Explanation |
create () |
Creates the spatial reference object using properties. |
createFromFile (prj_file) |
Creates the spatial reference object from a projection file. |
exportToString () |
Exports the object to its string representation. |
loadFromString (string) |
Restore the object using its string representation. The exportToString method can be used to create a string representation. |
setDomain (x_min, x_max, y_min, y_max) |
Sets the XY domain. |
setFalseOriginAndUnits (false_x, false_y, xy_units) |
Sets the XY false origin and units. |
setMDomain (m_min, m_max) |
Sets the M domain. |
setMFalseOriginAndUnits (false_m, m_units) |
Sets the M false origin and units. |
setZDomain (z_min, z_max) |
Sets the Z domain. |
setZFalseOriginAndUnits (false_z, z_units) |
Sets the Z false origin and units. |
Methods
Parameter | Explanation | Data Type |
prj_file |
The projection file used to populate the spatial reference object. | String |
Data Type | Explanation |
String |
The string representation of the object. |
Parameter | Explanation | Data Type |
string |
The string representation of the object. | String |
Parameter | Explanation | Data Type |
x_min |
The minimum x-value. | Double |
x_max |
The maximum x-value. | Double |
y_min |
The minimum y-value. | Double |
y_max |
The maximum y-value. | Double |
Parameter | Explanation | Data Type |
false_x |
The false x value. | Double |
false_y |
The false y value. | Double |
xy_units |
The xy units. | String |
Parameter | Explanation | Data Type |
m_min |
The minimum m-value. | Double |
m_max |
The maximum m-value. | Double |
Parameter | Explanation | Data Type |
false_m |
The false m-value. | Double |
m_units |
The m units. | Double |
Parameter | Explanation | Data Type |
z_min |
The minimum z-value. | Double |
z_max |
The maximum z-value. | Double |
Parameter | Explanation | Data Type |
false_z |
The false z-value. | Double |
z_units |
The false z units. | Double |
Code Sample
For each feature class in a workspace, print the name of its spatial reference.
import arcpy
# Set the workspace environment
arcpy.env.workspace = "c:/base/base.gdb"
# Get a list of the feature classes in the input folder
feature_classes = arcpy.ListFeatureClasses()
# Loop through the list
for fc in feature_classes:
# Create the spatial reference object
spatial_ref = arcpy.Describe(fc).spatialReference
# If the spatial reference is unknown
if spatial_ref.name == "Unknown":
print("{0} has an unknown spatial reference".format(fc))
# Otherwise, print out the feature class name and
# spatial reference
else:
print("{0} : {1}".format(fc, spatial_ref.name))