ATan2 (Spatial Analyst)

Available with Spatial Analyst license.

Available with Image Analyst license.

Summary

Calculates the inverse tangent (based on x,y) of cells in a raster.

Illustration

ATan2 illustration
OutRas = ATan2(InRas1, InRas2)

Usage

  • ATan2 converts rectangular coordinates (x,y) to polar (r,θ), where r is the distance from the origin and θ is the angle from the x-axis.

    ATan2 conversion
    Conversion of rectangular to polar coordinates

    The equation for determining ATan2 is: tanθ = y / x (where θ is the angle).

    The ATan2 operation represents all quadrants in a Cartesian matrix (based on sign).

  • The values of the first specified input are used as the numerator in the calculation of the tangent angle (y). The values of the second specified input are used as the denominator in the calculation of the angle (x).

  • In mathematics, all trigonometric functions have a defined range of valid input values called the domain. The output values from each function also have a defined range. For this tool, the following are true:

    • The Domain is: -∞ < [in_value] < ∞

      This domain applies to both inputs.

    • The Range is: -pi < [out_value] ≤ pi

    Note that -∞ and ∞ represent the smallest negative and largest positive values supported by the particular raster format, respectively.

  • If both input values are 0, the output will be NoData.

    If first input value is 0, the output will be 0.

  • The input values to ATan2 are interpreted as being in linear units, and to give meaningful results, they should both be in the same unit.

  • Output values are always floating point, regardless of the input data type.

  • The output values from this tool are in radians. To use degrees instead, the resulting raster must be multiplied by the radians-to-degrees conversion factor of 180/pi, or approximately 57.296.

    For further assistance, a procedure to follow and examples of converting output in radians to degrees are available.

  • If both inputs are single-band rasters or one of the inputs is a constant, the output will be a single-band raster.

  • If both inputs are multiband rasters, the tool will perform the operation on each band from one input, and the output will be a multiband raster. The number of bands in each multiband input must be the same.

  • If one of the inputs is a multiband raster and the other input is a constant, the tool will perform the operation using the constant value for each band in the multiband input, and the output will be a multiband raster.

  • If both inputs are multidimensional raster data with the same number of variables, the tool will perform the operation for all slices with the same dimension value. The output will be a multidimensional raster in CRF format. The variables in the inputs must have at least one common dimension and one common dimensional value for this tool to process; otherwise, an error will occur.

    If both inputs have one variable but different names, uncheck the Match Multidimensional Variable geoprocessing environment (set arcpy.env.matchMultidimensionalVariable = False in Python) before running the tool.

    If one of the inputs is a multidimensional raster and the other input is a constant, the tool will perform the operation for all slices for all variables using the constant value, and the output will be a multidimensional raster.

  • See Analysis environments and Spatial Analyst for additional details on the geoprocessing environments that apply to this tool.

Parameters

LabelExplanationData Type
Input raster or constant value 1

The input that specifies the numerator, or y value, to use when calculating the inverse tangent.

A number can be used as an input for this parameter, provided a raster is specified for the other parameter. To specify a number for both inputs, the cell size and extent must first be set in the environment.

Raster Layer; Constant
Input raster or constant value 2

The input that specifies the denominator, or x value, to use when calculating the inverse tangent.

A number can be used as an input for this parameter, provided a raster is specified for the other parameter. To specify a number for both inputs, the cell size and extent must first be set in the environment.

Raster Layer; Constant

Return Value

LabelExplanationData Type
Output raster

The output raster.

The values are the inverse tangent angle of the input values.

Raster

ATan2(in_raster_or_constant1, in_raster_or_constant2)
NameExplanationData Type
in_raster_or_constant1

The input that specifies the numerator, or y value, to use when calculating the inverse tangent.

A number can be used as an input for this parameter, provided a raster is specified for the other parameter. To specify a number for both inputs, the cell size and extent must first be set in the environment.

Raster Layer; Constant
in_raster_or_constant2

The input that specifies the denominator, or x value, to use when calculating the inverse tangent.

A number can be used as an input for this parameter, provided a raster is specified for the other parameter. To specify a number for both inputs, the cell size and extent must first be set in the environment.

Raster Layer; Constant

Return Value

NameExplanationData Type
out_raster

The output raster.

The values are the inverse tangent angle of the input values.

Raster

Code sample

ATan2 example 1 (Python window)

This example calculates the inverse tangent for two input Grid rasters.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outATan2 = ATan2("degs", "negs")
outATan2.save("C:/sapyexamples/output/outatan2")
ATan2 example 2 (stand-alone script)

This example calculates the inverse tangent for two input Grid rasters.

# Name: ATan2_Ex_02.py
# Description: Calculates the inverse tangent of cells based
#              on (y, x) values from two rasters
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster1 = "degs"
inRaster2 = "negs"

# Execute ATan2
outATan2 = ATan2(inRaster1, inRaster2)

# Save the output 
outATan2.save("C:/sapyexamples/output/outatan2.tif")

Related topics