Быстрое решение для преобразования файла, разделенного пробелом, содержащего «lon lat» в WGS84, в UTM33N, но вы не получите никаких других данных:
#!/bin/bash
#
for i in $( ls *.csv ); do
gdaltransform -s_srs EPSG:4326 -t_srs EPSG:32633 < ${i} > utm${i}
done
Это работает, и это сохраняет порядок данных, так что, может быть, другой цикл, используя, например, awk, чтобы объединить описательные данные с координатами?
Редактировать. Из-за грязных комментариев, которые я сделал ниже, я вместо этого отредактирую ответ.
Следующий скрипт должен выполнять чтение нескольких файлов CSV, добавляя новые столбцы координат в каждый файл.
#!/bin/bash
#
for i in $( ls *.csv ); do
paste -d',' ${i} <(awk -v OFS="," -F " " 'NR>1 {print $1 " " $2}' ${i} | gdaltransform -s_srs EPSG:4326 -t_srs EPSG:32633 | awk '{gsub(" ",",",$0); print $0}' | /usr/local/bin/sed "1i\X,Y,Z") > utm${i}
#
#paste -d',' ${i} <(awk -v OFS="," -F " " 'NR>1 {print $1 " " $2}' ${i} | gdaltransform -s_srs EPSG:4326 -t_srs EPSG:32633 | awk '{gsub(" ",",",$0); print $0}' |sed "1i\X,Y,Z") > utm${i}
#
done
В OSX вам нужно будет установить последнюю версию sed (2009) и использовать первую некомментированную строку в цикле. Для Linux закомментируйте первое и используйте второе. Отрегулируйте в -F " "
соответствии с форматом разделителя в ваших CSV-файлах, например, через -F ","
запятую. Также обратите внимание, что преобразование высот относится к эллипсоиду, а не к геоиду, поэтому обязательно измените высоту соответствующим образом.