以下では、フォルダ内のすべてのJPEGの名前を地理的な場所と日付で変更できます。
exiftool '-filename<${gpslatitude;} ${gpslongitude} ${datetimeoriginal}' -d "%Y-%m-%d %H.%M.%S%%-c.%%e" *.JPG
これにより、次のようにファイル名が非常に長くなります。
53 33 36.95000000 N 9 58 29.37000000 E 2015-11-04 19.22.49.JPG
ショートポジションをどのように使用できますか?だから、これは次のような結果をもたらすでしょう
53.560308 9.975458 2015-11-04 19.22.49.JPG
それとも、より良い点は、地理的な場所の都市を取得し、名前に追加することは可能ですか?
ベストアンサー1
これにより、より短いバージョンが生成されます。
exiftool -coordFormat '%.4f' '-filename<${gpslatitude;} ${gpslongitude} ${datetimeoriginal}_$filename' -d "%Y-%m-%d_%H.%M.%S%%-c.%%e" *.JPG
しかし、まだコンパスポイントN、E、S、またはWを追加します。
都市を追加するには、ループを使用して追加できます。API指名:
#!/bin/bash
#exiftool '-filename<${datetimeoriginal}_$filename' -d "%Y-%m-%d_%H.%M.%S%%-c.%%e" *.JPG
for f in *.JPG; do
echo "$f"
LAT="$(exiftool -coordFormat '%.4f' "$f"|egrep 'Latitude\s+:'|cut -d\ -f 23)"
if [ "$LAT" == "" ]; then
echo 'no geo coordinates';
else
LON="$(exiftool -coordFormat '%.4f' "$f"|egrep 'Longitude\s+:'|cut -d\ -f 22)"
URL='http://nominatim.openstreetmap.org/reverse?format=xml&lat='$LAT'&lon='$LON'&zoom=18&addressdetails=1'
RES="$(curl -s "$URL"|egrep "<(city|village|town|ruins|state_district|country)")"
LOC="$(echo "$RES"|grep '<city>'|sed 's/^.*<city>//g'|sed 's/<\/city>.*$//g')"
if [ "$LOC" == "" ]; then
LOC="$(echo "$RES"|grep '<city_district>'|sed 's/^.*<city_district>//g'|sed 's/<\/city_district>.*$//g')"
fi
if [ "$LOC" == "" ]; then
LOC="$(echo "$RES"|grep '<village>'|sed 's/^.*<village>//g'|sed 's/<\/village>.*$//g')"
fi
if [ "$LOC" == "" ]; then
LOC="$(echo "$RES"|grep '<town>'|sed 's/^.*<town>//g'|sed 's/<\/town>.*$//g')"
fi
if [ "$LOC" == "" ]; then
LOC="$(echo "$RES"|grep '<ruins>'|sed 's/^.*<ruins>//g'|sed 's/<\/ruins>.*$//g')"
fi
if [ "$LOC" == "" ]; then
LOC="$(echo "$RES"|grep '<state_district>'|sed 's/^.*<state_district>//g'|sed 's/<\/state_district>.*$//g')"
fi
if [ "$LOC" == "" ]; then
LOC="$(echo "$RES"|grep '<country>'|sed 's/^.*<country>//g'|sed 's/<\/country>.*$//g')"
fi
if [ "$LOC" == "" ]; then
echo "no city found at $URL";
else
BASE="${f%.*}"
mv -v "$f" "$BASE-$LOC.JPG"
fi
fi
done
完了すると、位置別に画像を計算できます
ls -1|cut -d- -f 4|sort|uniq -c|sort -n