Shapely does not support coordinate system transformations. All
operations on two or more features presume that the features exist in
the same Cartesian plane.
shapely completely agnostic in reference to SRS, it's quite obvious that the length attribute is expressed in the same unit of coordinates of your linestring, i.e. degrees.
>>> from shapely.geometry import LineString
>>> line = LineString([(0, 0), (1, 1)])
Instead, if you want to express length in meters, you have to transform your geometries from WGS84 to a projected SRS using pyproj (or, better, execute geodesic distance calculation, see Gene's answer). In detail, since version 1.2.18 (
shapely supports the geometry transform functions ( http://toblerity.org/shapely/shapely.html#module-shapely.ops) that we can use it in conjunction with
pyproj. Here's a quick example:
from shapely.geometry import LineString
from shapely.ops import transform
from functools import partial
line1 = LineString([(15.799406, 40.636069), (15.810173,40.640246)])
print str(line1.length) + " degrees"
# 0.0115488362184 degrees
# Geometry transform function based on pyproj.transform
project = partial(
line2 = transform(project, line1)
print str(line2.length) + " meters"
# 1021.77585965 meters