Сценарий оболочки для добавления разных данных GPS в серии фотографий

У меня есть гул, который я использовал для создания фильма о полетах, и я собираюсь использовать этот материал для создания DEM (цифровой модели рельефа) топографии, которую я снимал. Я могу извлечь кадры из фильма достаточно легко, но метод (ffmpeg) не дает этим кадрам информацию lat-lon-elev-etc, необходимую для надежной сборки DEM. Все эти данные доступны в файле .csv, хранящемся в приложении управления летным полетом, которое я загрузил.

Я хочу извлечь из этого CSV-файла все столбцы навигационных данных. Я могу сделать это с помощью awk. Затем я хочу написать сценарий, который привяжет навигационные данные с определенной метки времени на траектории полета к соответствующему кадру, извлеченному из фильма (на той же отметке времени). Я могу использовать exiftool для привязки данных GPS к изображению, но, будучи совершенно новым для сценариев оболочки, я не могу заставить мой текущий вложенный цикл работать.

В настоящее время мой сценарий записывает все строки из CSV-файла в каждое изображение в папке. Вместо этого я хочу написать line1 (lat-lon-elev-etc) на photos1, line2 на photo2 и т. Д. Я чувствую, что могу исправить это, но не могу взломать его: любая помощь очень приветствуется!

# Using awk, extract the relevant columns from the flightpath dataset awk -F, '{print $1,$2,$3,$7,$15,$22,$23 }' test.csv > test2.csv # Read through .csv file line-by-line # Make variables that can be commanded while IFS=" " read -r latitude longitude altitude time compHeading gimbHeading gimbPitch do # exiftool can now command these variables # write longitude and latitude to some photograph for photo in *.png; do exiftool -GPSLongitude="$longitude" -GPSLatitude="$latitude" *.png done # Following line tells bash which textfile to draw data from done < test2.csv 

Если у вас столько же фотографий, сколько строк в CSV-файле, вы можете использовать простой цикл:

 for photo in *.png; do IFS=" " read -r latitude longitude altitude time compHeading gimbHeading gimbPitch exiftool -GPSLongitude="$longitude" -GPSLatitude="$latitude" "$photo" done < test2.csv