Самостоятельно разобрался...
Исходил из принципа считать массив, а потом "индексировать" его.
//Индексирование массива
function get_index ($time, $latitude, $longitude)
{
switch ($latitude)
{
case 59.0: $latitude = 2; break;
case 59.5: $latitude = 23; break;
case 60.0: $latitude = 44; break;
case 60.5: $latitude = 65; break;
case 61.0: $latitude = 86; break;
case 61.5: $latitude = 107; break;
case 62.0: $latitude = 128; break;
case 62.5: $latitude = 149; break;
case 63.0: $latitude = 170; break;
case 63.5: $latitude = 191; break;
case 64.0: $latitude = 212; break;
case 64.5: $latitude = 233; break;
case 65.0: $latitude = 254; break;
case 65.5: $latitude = 275; break;
case 66.0: $latitude = 296; break;
case 66.5: $latitude = 317; break;
case 67.0: $latitude = 338; break;
case 67.5: $latitude = 359; break;
case 68.0: $latitude = 380; break;
case 68.5: $latitude = 401; break;
case 69.0: $latitude = 422; break;
case 69.5: $latitude = 443; break;
case 70.0: $latitude = 464; break;
}
switch ($longitude)
{
case 28.0: $longitude = 0; break;
case 28.5: $longitude = 1; break;
case 29.0: $longitude = 2; break;
case 29.5: $longitude = 3; break;
case 30.0: $longitude = 4; break;
case 30.5: $longitude = 5; break;
case 31.0: $longitude = 6; break;
case 31.5: $longitude = 7; break;
case 32.0: $longitude = 8; break;
case 32.5: $longitude = 9; break;
case 33.0: $longitude = 10; break;
case 33.5: $longitude = 11; break;
case 34.0: $longitude = 12; break;
case 34.5: $longitude = 13; break;
case 35.0: $longitude = 14; break;
case 35.5: $longitude = 15; break;
case 36.0: $longitude = 16; break;
case 36.5: $longitude = 17; break;
case 37.0: $longitude = 18; break;
case 37.5: $longitude = 19; break;
case 38.0: $longitude = 20; break;
}
$index = $time*483+$latitude+$longitude;
return $index;
}
//Открываем файл и создаём массив
function create_array ($file)
{
$file = file_get_contents($file);
//Удаляем в файле все знаки [ ] и числа между ними
$file = ereg_replace("\[[0-9]{1,2}]","",$file);
$file = str_replace ("time", "", $file);
$file = str_replace ("lat", "", $file);
//Считываем строку в массив, используя запятую как разделитель
$file_array = explode (",", $file);
return $file_array;
}
$file - строка содержит содержимое ссылки "http://nomads6.ncdc.noaa.gov:9090/dods/gfs_master/gfs20080726/gfs_master_00z.ascii?lftxsfc[0:60][298:320][56:76]"
С работающим примером можно ознакомиться
здесь