Spatial Reference#
The SpatialReference object has a number of properties that define the map projection. It can be easily retrieved from a layer with Describe() and manipulated.
Getting Spatial Reference#
How to get spatial reference name and codes from a layer:
dataset = r"C:\Data\Landbase.shp"
sr_name = arcpy.Describe(dataset).spatialReference.name
sr_code = arcpy.Describe(dataset).spatialReference.factoryCode
sr_wkt = arcpy.Describe(dataset).spatialReference.exportToString()
Setting and Reprojecting#
import arcpy
# Layer with unknown reference
mylyr = r"C:\Data\waterbasin"
# Create the spatial reference object in LAEA
sr = arcpy.SpatialReference(3035)
# Define the projection
arcpy.DefineProjection_management(mylyr, sr)
# Reproject to WGS84 creating a new spatial reference
del sr
newsr = arcpy.SpatialReference(4326)
newlyr = r"C:\Data\waterbasin_WGS"
# Vector file
arcpy.Project_management(mylyr, newlyr, newsr, "ETRS_1989_To_WGS_1984")
# Raster file
resampling_type = "CUBIC"
cell_size = 1000
arcpy.ProjectRaster_management(mylyr, newlyr, newsr, resampling_type, cell_size, "ETRS_1989_To_WGS_1984")
Common Spatial References#
Spatial Reference Name |
EPSG Code |
|---|---|
ETRS_1989_LAEA |
3035 |
GCS_WGS_1984 |
4326 |
Note
Use arcpy.SpatialReference(EPSG_code) to create a spatial reference object from an EPSG code. This is the simplest and most portable way to define coordinate systems in ArcPy scripts.