arcgis.geometry.functions module
AreaUnits¶

class
arcgis.geometry.functions.
AreaUnits
(value)¶ Represents the Supported Geometry Service Area Units Enumerations. Example: areas_and_lengths(polygons=[geom],area_unit=AreaUnits.ACRES)

ACRES
= {'areaUnit': 'esriAcres'}¶

ARES
= {'areaUnit': 'esriAres'}¶

HECTARES
= {'areaUnit': 'esriHectares'}¶

SQUARECENTIMETERS
= {'areaUnit': 'esriSquareCentimeters'}¶

SQUAREDECIMETERS
= {'areaUnit': 'esriSquareDecimeters'}¶

SQUAREFEET
= {'areaUnit': 'esriSquareFeet'}¶

SQUAREINCHES
= {'areaUnit': 'esriSquareInches'}¶

SQUAREKILOMETERS
= {'areaUnit': 'esriSquareKilometers'}¶

SQUAREMETERS
= {'areaUnit': 'esriSquareMeters'}¶

SQUAREMILES
= {'areaUnit': 'esriSquareMiles'}¶

SQUAREMILLIMETERS
= {'areaUnit': 'esriSquareMillimeters'}¶

SQUAREYARDS
= {'areaUnit': 'esriSquareYards'}¶

UNKNOWNAREAUNITS
= {'areaUnit': 'esriUnknownAreaUnits'}¶

LengthUnits¶

class
arcgis.geometry.functions.
LengthUnits
(value)¶ Represents the Geometry Service Length Units Enumerations Example: areas_and_lengths(polygons=[geom],length_unit=LengthUnits.FOOT)

ARCMINUTE
= 9103¶

ARCMINUTECENTESIMAL
= 9112¶

ARCSECOND
= 9104¶

ARCSECONDCENTESIMAL
= 9113¶

BENOIT1895A_CHAIN
= 9052¶

BENOIT1895A_FOOT
= 9051¶

BENOIT1895A_LINK
= 9053¶

BENOIT1895A_YARD
= 9050¶

BENOIT1895B_CHAIN
= 9062¶

BENOIT1895B_FOOT
= 9061¶

BENOIT1895B_LINK
= 9063¶

BENOIT1895B_YARD
= 9060¶

BRITISH1936FOOT
= 9095¶

CENTIMETER
= 1033¶

CLARKECHAIN
= 9038¶

CLARKEFOOT
= 9005¶

CLARKELINK
= 9039¶

CLARKEYARD
= 9037¶

DECIMETER
= 109005¶

DEGREE
= 9102¶

FATHOM
= 9014¶

FIFTYKMLENGTH
= 109030¶

FOOT
= 9002¶

FOOT1865
= 9070¶

GERMANMETER
= 9031¶

GOLDCOASTFOOT
= 9094¶

GON
= 9106¶

GRAD
= 9105¶

INDIAN1937FOOT
= 9081¶

INDIAN1937YARD
= 9085¶

INDIAN1962FOOT
= 9082¶

INDIAN1962YARD
= 9086¶

INDIAN1975FOOT
= 9083¶

INDIAN1975YARD
= 9087¶

INDIANFOOT
= 9080¶

INDIANYARD
= 9084¶

INTERNATIONALCHAIN
= 9097¶

INTERNATIONALINCH
= 109008¶

INTERNATIONALLINK
= 9098¶

INTERNATIONALROD
= 109010¶

INTERNATIONALYARD
= 9096¶

KILOMETER
= 9036¶

METER
= 9001¶

MICRORADIAN
= 9109¶

MIL6400
= 9114¶

MILLIMETER
= 1025¶

NAUTICALMILE
= 9030¶

ONEFIFTYKMLENGTH
= 109031¶

RADIAN
= 9101¶

SEARSCHAIN
= 9042¶

SEARSFOOT
= 9041¶

SEARSLINK
= 9043¶

SEARSYARD
= 9040¶

STATUTEMILE
= 9093¶

SURVEYCHAIN
= 9033¶

SURVEYFOOT
= 9003¶

SURVEYLINK
= 9034¶

SURVEYMILE
= 9035¶

SURVEYYARD
= 109002¶

UKNAUTICALMILE
= 109013¶

USNAUTICALMILE
= 109012¶

USSURVEYINCH
= 109009¶

USSURVEYROD
= 109011¶

The Functions
module is used to take Geometry
types as parameters and return
Geometry
type results.
areas_and_lengths¶

arcgis.geometry.functions.
areas_and_lengths
(polygons, length_unit, area_unit, calculation_type, spatial_ref=4326, gis=None, future=False)¶ The
areas_and_lengths
function calculates areas and perimeter lengths for eachPolygon
specified in the input array.Keys
Description
polygons
The array of
Polygon
whose areas and lengths are to be computed.length_unit
The length unit in which the perimeters of polygons will be calculated. If
calculation_type
is planar, thenlength_unit
can be any esriUnits constant (string or integer). IfcalculationType
is not planar, thenlength_unit
must be a linear esriUnits constant, such as esriSRUnit_Meter`(i.e. `9001``LengthUnits.METER) or esriSRUnit_SurveyMile`(i.e. `9035``LengthUnits.SURVEYMILE). Iflength_unit
is not specified, the units are derived fromspatial_ref
. Ifspatial_ref
is not specified as well, the units are in meters. For a list of valid units, see esriSRUnitType Constants and esriSRUnit2Type Constants.area_unit
The area unit in which areas of polygons will be calculated. If calculation_type is planar, then area_unit can be any esriAreaUnits constant (dict or enum). If
calculation_type
is not planar, thenarea_unit
must be a esriAreaUnits constant such as AreaUnits.SQUAREMETERS (i.e. {“areaUnit”: “esriSquareMeters”}) or AreaUnits.SQUAREMILES (i.e. {“areaUnit”: “esriSquareMiles”}). Ifarea_unit
is not specified, the units are derived fromspatial_ref
. Ifspatial_ref
is not specified, then the units are in square meters. For a list of valid units, see esriAreaUnits Constants. The list of valid esriAreaUnits constants include, esriSquareInches  esriSquareFeet  esriSquareYards  esriAcres  esriSquareMiles  esriSquareMillimeters  esriSquareCentimeters  esriSquareDecimeters  esriSquareMeters  esriAres  esriHectares  esriSquareKilometers.calculation_type
The type defined for the area and length calculation of the input geometries. The type can be one of the following values:
1. planar  Planar measurements use 2D Euclidean distance to calculate area and length. This should only be used if the area or length needs to be calculated in the given
SpatialReference
. Otherwise, usepreserveShape
.2. geodesic  Use this type if you want to calculate an area or length using only the vertices of the
Polygon
and define the lines between the points as geodesic segments independent of the actual shape of thePolygon
. A geodesic segment is the shortest path between two points on an ellipsoid.3. preserveShape  This type calculates the area or length of the geometry on the surface of the Earth ellipsoid. The shape of the geometry in its coordinate system is preserved.
future
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
A JSON as dictionary, or a GeometryJob object. If
future = True
, then the result is aFuture
object. Callresult()
to get the response.
>>> # Use case 1 >>> areas_and_lengths(polygons =[polygon1, polygon2,...], length_unit = 9001, area_unit = {"areaUnit": "esriSquareMeters"}, calculation_type = "planar") >>> # Use case 2 >>> from arcgis.geometry import LengthUnits, AreaUnits >>> areas_and_lengths(polygons =[polygon1, polygon2,...], length_unit = LengthUnits.METER, area_unit = AreaUnits.SQUAREMETERS, calculation_type = "planar", future = True)
auto_complete¶

arcgis.geometry.functions.
auto_complete
(polygons=None, polylines=None, spatial_ref=None, gis=None, future=False)¶ The
auto_complete
function simplifies the process of constructing newPolygon
objects that are adjacent to other polygons. It constructs polygons that fill in the gaps between existing polygons and a set ofPolyline
objects.Keys
Description
polygons
A List of
Polygon
objectspolylines
A List of
Polyline
objectsspatial_ref
A
SpatialReference
of the input geometries WKIDfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
A
Polygon
object, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
buffer¶

arcgis.geometry.functions.
buffer
(geometries, in_sr, distances, unit, out_sr=None, buffer_sr=None, union_results=None, geodesic=None, gis=None, future=False)¶ The
buffer
function is performed on a geometry service resource The result of this function is a bufferedPolygon
at the specified distances for the inputGeometry
array.Note
The options are available to union buffers and to use geodesic distance.
Keys
Description
geometries
The array of geometries to be buffered
in_sr
The wellknown ID of the
SpatialReference
or a spatial reference JSON object for the input geometries.distances
The distances that each of the input geometries is buffered.
unit
The units for calculating each buffer distance. If unit is not specified, the units are derived from
bufferSR
. IfbufferSR
is not specified, the units are derived fromin_sr
.out_sr
The wellknown ID of the
SpatialReference
or a spatial reference JSON object for the output geometries.buffer_sr
The wellknown ID of the
SpatialReference
or a spatial reference JSON object for the buffer geometries.union_results
A boolean. If True, all geometries buffered at a given distance are unioned into a single (gis,possibly multipart)
Polygon
, and the unioned geometry is placed in the output array. The default is False.geodesic
Set geodesic to true to buffer the input geometries using geodesic distance. Geodesic distance is the shortest path between two points along the ellipsoid of the earth. If geodesic is set to False, the 2D Euclidean distance is used to buffer the input geometries.
Note
The default value depends on the geometry type, unit and bufferSR.
future
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
A list of
Polygon
object, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
>>> buffer(geometries =[geom1, geom2,...], in_sr = "wkid_in", unit = "esriMeters", out_sr = "wkid_out", buffer_sr = "wkid_buffer", union_results =True, geodesic = True, future = True)
convex_hull¶

arcgis.geometry.functions.
convex_hull
(geometries, spatial_ref=None, gis=None, future=False)¶ The convex_hull function is performed on a
Geometry
service resource. It returns the convex hull of the input geometry. The input geometry can be aPoint
,MultiPoint
,Polyline
, orPolygon
.Note
The convex hull is typically a polygon but can also be a polyline or point in degenerate cases.
Keys
Description
geometries
An array of
Point
,MultiPoint
,Polyline
, orPolygon
objects. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
The convex hull of the
Geometry
object, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
cut¶

arcgis.geometry.functions.
cut
(cutter, target, spatial_ref=None, gis=None, future=False)¶ The cut function is performed on a
Geometry
service resource. This function splits the targetPolyline
orPolygon
where it is crossed by the cutter polyline.Note
At 10.1 and later, this function calls simplify on the input cutter and target geometries.
Keys
Description
cutter
The
Polyline
that will be used to divide the target into pieces where it crosses the target.The spatial reference of the polylines is specified byspatial_ref
.Note
The structure of the polyline is the same as the structure of the JSON polyline objects returned by the ArcGIS REST API.
target
The array of
Polyline
orPolygon
to be cut. The structure of the geometry is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API. The spatial reference of the target geometry array is specified by spatial_ref.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or a JSON object for the output geometryfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
A List of
Geometry
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
densify¶

arcgis.geometry.functions.
densify
(geometries, spatial_ref, max_segment_length, length_unit, geodesic=False, gis=None, future=False)¶ The
densify
function is performed using theGIS
geometry engine. This function densifiesGeometry
objects by plottingPoint
objects between existing vertices.Keys
Description
geometries
An array of
Point
,MultiPoint
,Polyline
, orPolygon
objects. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.spatial_ref
The
wellknown ID
or a spatial reference JSON object for the inputPolyline
object.Note
For a list of valid WKID values, see Projected coordinate systems and Geographic coordinate systems.
max_segment_len
All segments longer than
maxSegmentLength
are replaced with sequences of lines no longer thanmax_segment_length
.length_unit
The length unit of
max_segment_length
. Ifgeodesic
is set to false, then the units are derived fromspatial_ref
, andlength_unit
is ignored. Ifgeodesic
is set to true, thenlength_unit
must be a linear unit. In a case wherelength_unit
is not specified andspatial_ref
is a PCS, the units are derived fromspatial_ref
. In a case wherelength_unit
is not specified andspatial_ref
is a GCS, then the units are meters.geodesic
If geodesic is set to true, then geodesic distance is used to calculate max_segment_length. Geodesic distance is the shortest path between two points along the ellipsoid of the earth. If geodesic is set to false, then 2D Euclidean distance is used to calculate max_segment_length. The default is false.
future
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
A list of
Geometry
object, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
>>> densify(geometries =[geom1, geom2,...], spatial_ref = "wkid", max_segment_length = 100.0, length_unit = "esriMeters", geodesic = True, future = False)
difference¶

arcgis.geometry.functions.
difference
(geometries, spatial_ref, geometry, gis=None, future=False)¶ The
difference
function is performed on a geometry service resource. This function constructs the settheoretic difference between each element of an array of geometries and another geometry the socalled difference geometry. In other words, let B be the difference geometry. For each geometry, A, in the input geometry array, it constructs AB.Keys
Description
geometries
An array of
Point
,MultiPoint
,Polyline
, orPolygon
objects. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.geometry
A single geometry of any type and of a dimension equal to or greater than the elements of geometries. The structure of geometry is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API. The use of simple syntax is not supported.
spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
A list of
Geometry
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
distance¶

arcgis.geometry.functions.
distance
(spatial_ref, geometry1, geometry2, distance_unit='', geodesic=False, gis=None, future=False)¶ The
distance
function is performed on a geometry service resource. It reports the 2D Euclidean or geodesic distance between the twoGeometry
objects.Keys
Description
geometry1
The
Geometry
object from which the distance is measured. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.geometry2
The
Geometry
object to which the distance is measured. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.distance_unit
Optional. One of
LengthUnits
enumeration members. See Geometry Service distance for full details.geodesic
If
geodesic
is set to true, then the geodesic distance between thegeometry1
andgeometry2
geometries is returned. Geodesic distance is the shortest path between two points along the ellipsoid of the earth. Ifgeodesic
is set to false or not specified, the planar distance is returned. The default value is false.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
The 2D or geodesic distance between the two
Geometry
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
find_transformation¶

arcgis.geometry.functions.
find_transformation
(in_sr, out_sr, extent_of_interest=None, num_of_results=1, gis=None, future=False)¶ The
find_transformations
function is performed on aGeometry
service resource. This function returns a list of applicable geographic transformations you should use when projecting geometries from the inputSpatialReference
to the outputSpatialReference
. The transformations are in JSON format and are returned in order of most applicable to least applicable. Recall that a geographic transformation is not needed when the input and output spatial references have the same underlying geographic coordinate systems. In this case, findTransformations returns an empty list.Note
Every returned geographic transformation is a forward transformation meaning that it can be used asis to project from the input spatial reference to the output spatial reference. In the case where a predefined transformation needs to be applied in the reverse direction, it is returned as a forward composite transformation containing one transformation and a transformForward element with a value of false.
Keys
Description
in_sr
The wellknown ID of the
SpatialReference
or a spatial reference JSON object for the input geometries.out_sr
The wellknown ID of the
SpatialReference
or a spatial reference JSON object for the output geometries.ext_of_interest
The bounding box of the area of interest specified as a JSON envelope.If provided, the extent of interest is used to return the most applicable geographic transformations for the area.
Note
If a
SpatialReference
is not included in the JSON envelope, thein_sr
is used for the envelope.num_of_results
The number of geographic transformations to return. The default value is 1.
Note
If
num_of_results
has a value of 1, all applicable transformations are returned.future
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
A List of geographic transformations, or a GeometryJob object. If
future = True
, then the result is aFuture
object. Callresult()
to get the response.
from_geo_coordinate_string¶

arcgis.geometry.functions.
from_geo_coordinate_string
(spatial_ref, strings, conversion_type, conversion_mode=None, gis=None, future=False)¶ The
from_geo_coordinate_string
function is performed on aGeometry
service resource. The function converts an array of wellknown strings into xycoordinates based on the conversion type andSpatialReference
supplied by the user. An optional conversion mode parameter is available for some conversion types. Seeto_geo_coordinate_strings
for more information on the opposite conversion.Keys
Description
spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectstrings
An array of strings formatted as specified by conversion_type. Syntax: [<string1>,…,<stringN>]
conversiontype
The conversion type of the input strings.
Note
Valid conversion types are: MGRS  Military Grid Reference System USNG  United States National Grid UTM  Universal Transverse Mercator GeoRef  World Geographic Reference System GARS  Global Area Reference System DMS  Degree Minute Second DDM  Degree Decimal Minute DD  Decimal Degree
conversion_mode
Conversion options for MGRS, UTM and GARS conversion types.
Note
Valid conversion modes for MGRS are: mgrsDefault  Default. Uses the spheroid from the given spatial reference.
mgrsNewStyle  Treats all spheroids as new, like WGS 1984. The 80 degree longitude falls into Zone 60.
mgrsOldStyle  Treats all spheroids as old, like Bessel 1841. The 180 degree longitude falls into Zone 60.
mgrsNewWith180InZone01  Same as mgrsNewStyle except the 180 degree longitude falls into Zone 01
mgrsOldWith180InZone01  Same as mgrsOldStyle except the 180 degree longitude falls into Zone 01
Note
Valid conversion modes for UTM are: utmDefault  Default. No options. utmNorthSouth  Uses north/south latitude indicators instead of zone numbers  Nonstandard. Default is recommended
future
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
An array of (x,y) coordinates, or a GeometryJob object. If
future = True
, then the result is aFuture
object. Callresult()
to get the response.
>>> coords = from_geo_coordinate_string(spatial_ref = "wkid", strings = ["01N AA 66021 00000","11S NT 00000 62155", "31U BT 94071 65288"] conversion_type = "MGRS", conversion_mode = "mgrs_default", future = False) >>> coords [[x1,y1], [x2,y2], [x3,y3]]
generalize¶

arcgis.geometry.functions.
generalize
(spatial_ref, geometries, max_deviation, deviation_unit, gis=None, future=False)¶ The
generalize
function is performed on aGeometry
service resource. The generalize function simplifies the input geometries using the DouglasPeucker algorithm with a specified maximum deviation distance.Note
The output geometries will contain a subset of the original input vertices.
Keys
Description
geometries
The array
Geometry
objects to be generalized.max_deviation
max_deviation
sets the maximum allowable offset, which will determine the degree of simplification. This value limits the distance the output geometry can differ from the input geometry.deviation_unit
If
geodesic
is set to true, then the geodesic distancebetween the
geometry1
andgeometry2
geometries is returned. Geodesic distance is the shortest path between two points along the ellipsoid of the earth. Ifgeodesic
is set to false or not specified, the planar distance is returned. The default value is false.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
An array of the simplified
Geometry
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
intersect¶

arcgis.geometry.functions.
intersect
(spatial_ref, geometries, geometry, gis=None, future=False)¶ The
intersect
function is performed on aGeometry
service resource. This function constructs the settheoretic intersection between an array of geometries and another geometry.Note
The dimension of each resultant geometry is the minimum dimension of the input geometry in the geometries array and the other geometry specified by the geometry parameter.
Keys
Description
geometries
An array of
Point
,MultiPoint
,Polyline
, orPolygon
objects. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.geometry
A single
Geometry
of any type and of a dimension equal to or greater than the elements of geometries. The structure of geometry is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API. The use of simple syntax is not supported.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
The settheoretic dimension between
Geometry
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
label_points¶

arcgis.geometry.functions.
label_points
(spatial_ref, polygons, gis=None, future=False)¶ The
label_points
function is performed on aGeometry
service resource. ThelabelPoints
function calculates an interiorPoint
for eachPolygon
specified in the input array. These interior points can be used by clients for labeling the polygons.Keys
Description
polygons
An array of
Polygon
objects whose labelPoint
objects are to be computed. The spatial reference of the polygons is specified byspatial_ref
.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
An array of
Point
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
lengths¶

arcgis.geometry.functions.
lengths
(spatial_ref, polylines, length_unit, calculation_type, gis=None, future=False)¶ The
lengths
function is performed on aGeometry
service resource. This function calculates the` 2D Euclidean` or geodesic lengths of eachPolyline
specified in the input array.Keys
Description
polylines
The array of
Polyline
whose lengths are to be computed.length_unit
The length unit in which the length of
Polyline
will be calculated. Ifcalculation_type
is planar, thenlength_unit
can be any esriUnits constant. IflengthUnit
is not specified, the units are derived fromspatial_ref
. IfcalculationType
is not planar, then lengthUnit must be a linear esriUnits constant, such as esriSRUnit_Meter or esriSRUnit_SurveyMile. Iflength_unit
is not specified, the units are meters. For a list of valid units, see esriSRUnitType Constants and esriSRUnit2Type Constant.calculation_type
The type defined for the length calculation of the input geometries. The type can be one of the following values:
1. planar  Planar measurements use 2D Euclidean distance to calculate area and length. This should only be used if the area or length needs to be calculated in the given
SpatialReference
. Otherwise, usepreserveShape
.2. geodesic  Use this type if you want to calculate an area or length using only the vertices of the
Polygon
and define the lines between the points as geodesic segments independent of the actual shape of thePolygon
. A geodesic segment is the shortest path between two points on an ellipsoid.3. preserveShape  This type calculates the area or length of the geometry on the surface of the Earth ellipsoid. The shape of the geometry in its coordinate system is preserved.
future
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
A list of floats of 2DEuclidean or Geodesic lengths, or a GeometryJob object. If
future = True
, then the result is aFuture
object. Callresult()
to get the response.
offset¶

arcgis.geometry.functions.
offset
(geometries, offset_distance, offset_unit, offset_how='esriGeometryOffsetRounded', bevel_ratio=10, simplify_result=False, spatial_ref=None, gis=None, future=False)¶ The
offset
function is performed on aGeometry
service resource. This function constructs geometries that are offset from the given input geometries. If the offset parameter is positive, the constructed offset will be on the right side of the geometry. Left side offsets are constructed with negative parameters.Note
Tracing the geometry from its first vertex to the last will give you a direction along the geometry. It is to the right and left perspective of this direction that the positive and negative parameters will dictate where the offset is constructed. In these terms, it is simple to infer where the offset of even horizontal geometries will be constructed.
Keys
Description
geometries
An array of
Point
,MultiPoint
,Polyline
, orPolygon
objects. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.offset_distance
Specifies the distance for constructing an offset based on the input geometries.
Note
If the
offset_distance
parameter is positive, the constructed offset will be on the right side of the curve. Leftside offsets are constructed with negative values.offset_unit
A unit for offset distance. If a unit is not specified, the units are derived from
spatial_ref
.offset_how
The
offset_how
parameter determines how outer corners between segments are handled. The three options are as follows:esriGeometryOffsetRounded
 Rounds the corner between extended offsets.esriGeometryOffsetBevelled
 Squares off the corner after a given ratio distance.
3.
esriGeometryOffsetMitered
 Attempts to allow extended offsets to naturally intersect, but if that intersection occurs too far from the corner, the corner is eventually bevelled off at a fixed distance.bevel_ratio
bevel_ratio
is multiplied by theoffset_distance
, and the result determines how far a mitered offset intersection can be located before it is bevelled. When mitered is specified, bevel_ratio is ignored and 10 is used internally. When bevelled is specified, 1.1 will be used if bevel_ratio is not specified.bevel_ratio
is ignored for rounded offset.simplify_result
if
simplify_result
is set to true, then self intersecting loops will be removed from the result offset geometries. The default is false.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
A list of
Geometry
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
>>> new_job = offset( geometries = [geom1,geom2,...], offset_distance = 100, offset_unit = "esriMeters", offset_how = "esriGeometryOffsetRounded", bevel_ratio = 0, simplify_result = True spatial_ref = "wkid", future = True)
project¶

arcgis.geometry.functions.
project
(geometries, in_sr, out_sr, transformation='', transform_forward=False, gis=None, future=False)¶ The
project
function is performed on aGeometry
service resource. This function projects an array of input geometries from the inputSpatialReference
to the outputSpatialReference
Keys
Description
geometries
An array of
Point
,MultiPoint
,Polyline
, orPolygon
objects. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.in_sr
The wellknown ID of the
SpatialReference
or a spatial reference JSON object for the input geometries.out_sr
The wellknown ID of the
SpatialReference
or a spatial reference JSON object for the output geometries.transformations
The WKID or a JSON object specifying the geographic transformation (gis,also known as datum transformation) to be applied to the projected geometries.
Note
A transformation is needed only if the output
SpatialReference
contains a different geographic coordinate system than the input spatial reference.transformforward
A Boolean value indicating whether or not to transform forward. The forward or reverse direction of transformation is implied in the name of the transformation. If transformation is specified, a value for the
transform_Forward
parameter must also be specified. The default value is false.future
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
A list of
Geometry
objects in theout_sr
coordinate system, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
#Usage Example >>> result = project(geometries = [{"x": 17568824.55, "y": 2428377.35}, {"x": 17568456.88, "y": 2428431.352}], in_sr = 3857, out_sr = 4326) [{"x": 157.82343617279275, "y": 21.305781607280093}, {"x": 157.8201333369876, "y": 21.306233559873714}]
relation¶

arcgis.geometry.functions.
relation
(geometries1, geometries2, spatial_ref, spatial_relation='esriGeometryRelationIntersection', relation_param='', gis=None, future=False)¶ The
relation
function is performed on aGeometry
service resource. This function determines the pairs of geometries from the input geometry arrays that participate in the specified spatial relation. Both arrays are assumed to be in the spatial reference specified byspatial_ref
, which is a required parameter. Geometry types cannot be mixed within an array.Note
The relations are evaluated in 2D. In other words, z coordinates are not used.
Keys
Description
geometry1
The first array of
Geometry
objects to compute relations.geometry2
The second array of
Geometry
objects to compute relations.relation_param
The Shape Comparison Language string to be evaluated.
spatial_relation
The spatial relationship to be tested between the two input geometry arrays. Values: esriGeometryRelationCross  esriGeometryRelationDisjoint  esriGeometryRelationIn  esriGeometryRelationInteriorIntersection  esriGeometryRelationIntersection  esriGeometryRelationLineCoincidence  esriGeometryRelationLineTouch  esriGeometryRelationOverlap  esriGeometryRelationPointTouch  esriGeometryRelationTouch  esriGeometryRelationWithin  esriGeometryRelationRelation
spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
A JSON dict of geometryNIndex between two lists of geometries, or a GeometryJob object. If
future = True
, then the result is aFuture
object. Callresult()
to get the response.>>> new_res = relation(geometry1 = [geom1,geom2,...], geometry2 = [geom21,geom22,..], relation_param = "relationParameter", spatial_relation = "esriGeometryRelationPointTouch" spatial_ref = "wkid", future = False) >>> new_res {'relations': [{'geometry1Index': 0, 'geometry2Index': 0}]}
reshape¶

arcgis.geometry.functions.
reshape
(spatial_ref, target, reshaper, gis=None, future=False)¶ The
reshape
function is performed on aGeometry
service resource. It reshapes aPolyline
orPolygon
feature by constructing a polyline over the feature. The feature takes the shape of the reshaper polyline from the first place the reshaper intersects the feature to the last.Keys
Description
target
reshaper
The singlepart
Polyline
that does the reshaping.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or a JSON object for the input geometryfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
simplify¶

arcgis.geometry.functions.
simplify
(spatial_ref, geometries, gis=None, future=False)¶ The
simplify
function is performed on aGeometry
service resource.simplify
permanently alters the input geometry so that the geometry becomes topologically consistent. This resource applies the ArcGISsimplify
function to each geometry in the input array.Keys
Description
geometries
An array of
Point
,MultiPoint
,Polyline
, orPolygon
objects. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
An array of
Geometry
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
to_geo_coordinate_string¶

arcgis.geometry.functions.
to_geo_coordinate_string
(spatial_ref, coordinates, conversion_type, conversion_mode='mgrsDefault', num_of_digits=None, rounding=True, add_spaces=True, gis=None, future=False)¶ The
to_geo_coordinate_string
function is performed on aGeometry
service resource. The function converts an array of xycoordinates into wellknown strings based on the conversion type andSpatialReference
supplied by theUser
. Optional parameters are available for some conversion types. Seefrom_geo_coordinate_strings
for more information on the opposite conversion.Note
If an optional parameter is not applicable for a particular conversion type, but a value is supplied for that parameter, the value will be ignored.
Keys
Description
spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectcoordinates
An array of xycoordinates in JSON format to be converted. Syntax: [[x1,y2],…[xN,yN]]
conversiontype
The conversion type of the input strings.
Note
Valid conversion types are: MGRS  Military Grid Reference System USNG  United States National Grid UTM  Universal Transverse Mercator GeoRef  World Geographic Reference System GARS  Global Area Reference System DMS  Degree Minute Second DDM  Degree Decimal Minute DD  Decimal Degree
conversion_mode
Conversion options for MGRS, UTM and GARS conversion types.
Note
Valid conversion modes for MGRS are: mgrsDefault  Default. Uses the spheroid from the given spatial reference.
mgrsNewStyle  Treats all spheroids as new, like WGS 1984. The 80 degree longitude falls into Zone 60.
mgrsOldStyle  Treats all spheroids as old, like Bessel 1841. The 180 degree longitude falls into Zone 60.
mgrsNewWith180InZone01  Same as mgrsNewStyle except the 180 degree longitude falls into Zone 01
mgrsOldWith180InZone01  Same as mgrsOldStyle except the 180 degree longitude falls into Zone 01
Note
Valid conversion modes for UTM are: utmDefault  Default. No options. utmNorthSouth  Uses north/south latitude indicators instead of zone numbers  Nonstandard. Default is recommended
num_of_digits
The number of digits to output for each of the numerical portions in the string. The default value for
num_of_digits
varies depending onconversion_type
.rounding
If
True
, then numeric portions of the string are rounded to the nearest whole magnitude as specified by num_of_digits. Otherwise, numeric portions of the string are truncated. The rounding parameter applies only to conversion types MGRS, USNG and GeoRef. The default value isTrue
.addSpaces
If
True
, then spaces are added between components of the string. TheaddSpaces
parameter applies only to conversion types MGRS, USNG and UTM. The default value for MGRS isFalse
, while the default value for both USNG and UTM isTrue
.future
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
An array of Strings, or a GeometryJob object. If
future = True
, then the result is aFuture
object. Callresult()
to get the response.>>> strings = from_geo_coordinate_string(spatial_ref = "wkid", coordinates = [[x1,y1], [x2,y2], [x3,y3]] conversion_type = "MGRS", conversion_mode = "mgrs_default", future = False) >>> strings ["01N AA 66021 00000","11S NT 00000 62155", "31U BT 94071 65288"]
trim_extend¶

arcgis.geometry.functions.
trim_extend
(spatial_ref, polylines, trim_extend_to, extend_how=0, gis=None, future=False)¶ The
trim_extend
function is performed on aGeometry
service resource. This function trims or extends eachPolyline
specified in the input array, using the userspecified guide polylines.Note
When trimming features, the part to the left of the oriented cutting line is preserved in the output, and the other part is discarded. An empty
Polyline
is added to the output array if the corresponding input polyline is neither cut nor extended.Keys
Description
polylines
An array of
Polyline
objects to trim or extendtrim_extend_to
A
Polyline
that is used as a guide for trimming or extending input polylines.extend_how
A flag that is used along with the trimExtend function.
0
 By default, an extension considers both ends of a path. The old ends remain, and new points are added to the extended ends. The new points have attributes that are extrapolated from adjacent existing segments.1
 If an extension is performed at an end, relocate the end point to the new position instead of leaving the old point and adding a new point at the new position.2
 If an extension is performed at an end, do not extrapolate the endsegment’s attributes for the new point. Instead, make its attributes the same as the current end. Incompatible with esriNoAttributes.4
 If an extension is performed at an end, do not extrapolate the endsegment’s attributes for the new point. Instead, make its attributes empty. Incompatible with esriKeepAttributes.8
 Do not extend the ‘from’ end of any path.16
 Do not extend the ‘to’ end of any path.spatial_ref
A
SpatialReference
of the input geometries WellKnown ID or JSON objectfuture
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results.
 Returns
An array of
Polyline
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.
>>> polylines_arr = trim_extends(polylines = [polyline1,polyline2, ...], trim_extend_to = polyline_trimmer extend_how = 2, spatial_ref = "wkid", future = False) >>> polyline_arr [polyline1, polyline2,...]
union¶

arcgis.geometry.functions.
union
(geometries, spatial_ref=None, gis=None, future=False)¶ The
union
function is performed on aGeometry
service resource. This function constructs the settheoretic union of the geometries in the input array.Note
All inputs must be of the same type.
Keys
Description
geometries
Required. An array of
Point
,MultiPoint
,Polyline
, orPolygon
objects. The structure of each geometry in the array is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.spatial_ref
An optional String or JSON Dict representing the wkid to be used. The default is the spatial reference found in the geometry or, if None found, then “4326”.
Example: “4326” or {“wkid”:”4326”}
future
Optional boolean. If True, a future object will be returned and the process will not wait for the task to complete. The default is False, which means wait for results. If setting future to True there is a limitation of 6500 geometries that can be processed in one call.
 Returns
The settheoretic union of the
Geometry
objects, or a GeometryJob object. Iffuture = True
, then the result is aFuture
object. Callresult()
to get the response.