# Length of Feature

I have a shapefile which renders a map.

I want to calculate and preferably store length of each feature in the shapefile either using QGis or through programmatic means.

What is the best way to get this task done?

-

Create a Real Number field in the shapefile. From Attribute table, open 'Field Calculator'. From the functions list, expand 'Geometry' section. selection length.

The expression would look

 $length  Check update existing field at the top of field calculator and select the newly created double field name. - What is the unit of length I get there? I want it to be in km. – Sibi Nov 20 '12 at 6:21 it will be in the units of the coordinate system of your layer. It could be meter/feet/degrees depending on it. you could do a conversion depending on your coordinate system.If the coordinate system is Geogrpahic, it would be best to convert to a projected coordinate system for linear measurement. – vinayan Nov 20 '12 at 8:19 So to get km from metres, multiply$length x 1000 in the calculator and that will be the output into the shapefile field. A projected coordinate system may be referred to as UTM or GRID. – Willy Nov 20 '12 at 11:20
@Willy The map is in the Geographic coordinate system. So i don't exactly know what is the unit in which geographic coordinate system renders it. It's in EPSG:4326. – Sibi Nov 20 '12 at 11:25
@Sibi spatialreference.org/ref/epsg/4326/html - says that it is in Degrees – vinayan Nov 20 '12 at 12:01

Using the arc python module (arcpy) is an alternative. To run the code it is necessary with an ArcInfo license.

Fairly straight forward. The script establishes a new field and populates it with a field value in meters:

import arcpy

my_coastline = "coastal_Segments.shp"

#Add field to support lengt calculation
arcpy.AddField_management(my_coastline, "length",  "FLOAT", "12", "", "", "i_perim",   "NULLABLE", "REQUIRED")

#Calculate the length of all segment in the shapefile
arcpy.CalculateField_management(my_coastline, 'length', '!shape.length@meters!', 'PYTHON')


Not sure but I assume the Shapely open source initiative could be an alternative.

-