How to get absolute path to asset file?
You can get the rest of the path from your asset's source and folder, I think something like this should do it:

$source = $asset-&gt;getSource();

if ($source-&gt;type != 'Local')
{
    throw new Exception(Craft::t('Paths not available for non-local asset sources'));
}

$sourcePath = $source-&gt;settings['path'];
$folderPath = $asset-&gt;getFolder()-&gt;path;

$assetFilePath = $sourcePath.$folderPath.$asset-&gt;filename;