Summary
Overwrites the coordinate system information (map projection and datum) stored with a dataset. This tool is intended for datasets that have an unknown or incorrect coordinate system defined.
All geographic datasets have a coordinate system that is used throughout ArcGIS to display, measure, and transform geographic data. If the coordinate system for a dataset is unknown or incorrect, you can use this tool to specify the correct coordinate system. You must know the correct coordinate system of the dataset before using this tool.
Usage
This tool only updates the existing coordinate system information—it does not modify any geometry. If you want to transform the geometry to another coordinate system, use the Project tool.
The most common use for this tool is to assign a known coordinate system to a dataset with an unknown coordinate system (that is, the coordinate system is "Unknown" in the dataset properties). Another use is to assign the correct coordinate system for a dataset that has an incorrect coordinate system defined (for example, the coordinates are in UTM meters but the coordinate system is defined as geographic).
When a dataset with a known coordinate system is input to this tool, the tool will issue a warning but will execute successfully.
All feature classes in a geodatabase feature dataset will be in the same coordinate system. The coordinate system for a geodatabase dataset should be determined when it is created. Once it contains feature classes, its coordinate system cannot be changed.
Syntax
arcpy.management.DefineProjection(in_dataset, coor_system)
Parameter | Explanation | Data Type |
in_dataset | The dataset or feature class whose projection is to be defined. | Feature Layer;Geodataset |
coor_system | The coordinate system to be applied to the input. The default value is set based on the Output Coordinate System environment setting. Valid values are a SpatialReference object, a file with a .prj extension, or a string representation of a coordinate system. | Coordinate System |
Derived Output
Name | Explanation | Data Type |
out_dataset | The updated input geodataset. | Geodataset |
Code sample
The following Python Window script demonstrates how to use the DefineProjection function in immediate mode.
import arcpy
infc = r"C:\data\citylim_unk.shp"
sr = arcpy.SpatialReference("NAD 1983 UTM Zone 11N")
arcpy.DefineProjection_management(infc, sr)
The following stand-alone script uses the DefineProjection function to record coordinate system information for the input dataset.
# Name: DefineProjection.py
# Description: Records the coordinate system information for the specified input dataset or feature class
# import system modules
import arcpy
# set workspace environment
arcpy.env.workspace = "C:/data"
try:
# set local variables
in_dataset = "citylim_unk.shp" #"forest.shp"
# get the coordinate system by describing a feature class
dsc = arcpy.Describe("citylim_utm11.shp")
coord_sys = dsc.spatialReference
# run the tool
arcpy.DefineProjection_management(in_dataset, coord_sys)
# print messages when the tool runs successfully
print(arcpy.GetMessages(0))
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
except Exception as ex:
print(ex.args[0])
Environments
Licensing information
- Basic: Yes
- Standard: Yes
- Advanced: Yes