A method of processing 3D sensor data to provide terrain segmentation, the 3D sensor data comprising a respective coordinate set for each of a series of returns detected by a 3D sensor positioned above the terrain by scanning the 3D sensor over the terrain in a known smooth, analytical scan pattern, each coordinate set corresponding to a position vector with respect to the 3D sensor of a point in the terrain giving rise to a respective return and the coordinates defining a horizontal plane, the method comprising processing the 3D data by the steps of: (i) identifying a series of returns having positions in the horizontal plane which would lie on a substantiaily smooth path or scan line in the horizontal plane in the case of returns from an idealised flat terrain and the known analytical scan pattern; (ii) processing the horizontal coordinates of said returns in order to identify returns having positions in the horizontal plane which deviate by more than a pre-determined extent from the corresponding substantially smooth path or scan line and classifying said deviating returns as non-ground returns corresponding to elevated objects in the terrain, thereby differentiating non-ground returns from ground returns; (iii) identifying one or more further series of returns, each series comprising returns which would lie on a respective substantially smooth path or scan line in the horizontal plane in the case of returns from an idealised flat terrain and the known analytical scan pattern, (iv) processing the horizontal coordinates of the returns in each series to identify returns having positions in the horizontal plane which deviate by more than a pre-determined extent from the corresponding substantially smooth path or scan line, and (v) classifying returns found in step (iv) as non-ground returns corresponding to elevated objects in the terrain, thereby providing full terrain segmentation of the 3D sensor data, characterized in that for a given set of returns, the returns are considered sequentially in order of horizontal position for correspondence to a non-ground return corresponding to an elevated object, and wherein, upon detection of a non-ground return in the set, the method further comprises the steps of: (vi) identifying the next return in the set which is subsequent in horizontal position in the set to the non-ground return and which corresponds to a ground return; (vii) for each return in the set intermediate in horizontal position between that of the non-ground return and that of the ground return identified in step (vi), evaluating the distance in the horizontal plane between that return and an adjacent scan line; and (viii) where said distance is less than a pre-determined threshold value, classifying the corresponding return as a non-ground return from an elevated object. (i) identifying a series of returns having positions in the horizontal plane which would lie on a substantiaily smooth path or scan line in the horizontal plane in the case of returns from an idealised flat terrain and the known analytical scan pattern; (ii) processing the horizontal coordinates of said returns in order to identify returns having positions in the horizontal plane which deviate by more than a pre-determined extent from the corresponding substantially smooth path or scan line and classifying said deviating returns as non-ground returns corresponding to elevated objects in the terrain, thereby differentiating non-ground returns from ground returns; (iii) identifying one or more further series of returns, each series comprising returns which would lie on a respective substantially smooth path or scan line in the horizontal plane in the case of returns from an idealised flat terrain and the known analytical scan pattern, (iv) processing the horizontal coordinates of the returns in each series to identify returns having positions in the horizontal plane which deviate by more than a pre-determined extent from the corresponding substantially smooth path or scan line, and (v) classifying returns found in step (iv) as non-ground returns corresponding to elevated objects in the terrain, thereby providing full terrain segmentation of the 3D sensor data, (vi) identifying the next return in the set which is subsequent in horizontal position in the set to the non-ground return and which corresponds to a ground return; (vii) for each return in the set intermediate in horizontal position between that of the non-ground return and that of the ground return identified in step (vi), evaluating the distance in the horizontal plane between that return and an adjacent scan line; and (viii) where said distance is less than a pre-determined threshold value, classifying the corresponding return as a non-ground return from an elevated object.