#!/bin/bash
# usage:
#   kal2geotiff map.kal newmap.tif "proj projection info"
# example
#   kal2geotiff de0805ak.kal neu.tif "+proj=utm +zone=32 +datum=WGS84"
# projection info is optional
# uses Kalibration Points as GeoTIFF GCP

if [ $# -ne 2 ]; then
  if [ $# -ne 3 ]; then
    echo "kal2geotiff map.kal newmap.tif \"proj projection info\""
    exit
  fi
  projection=$3
fi

hash gdal_translate

kalfile=$1
outfile=$2

mapfile=`kal2mapname < "$kalfile"`
mapfilebase=${mapfile%.*}

asckal=`mktemp`
kal2asc < "$kalfile" > $asckal
gcpline=""
while read line; do
  gcpentry=`echo $line | awk '{ print " -gcp " $3,$4,$1,$2 }'`
  gcpline=$gcpline$gcpentry
done < $asckal
rm $asckal

if [ $# -eq 2 ]; then
 gdal_translate "$mapfile" $gcpline -co WORLDFILE=YES "$outfile"
else
 gdal_translate "$mapfile" -a_srs "$projection" $gcpline -co WORLDFILE=YES "$outfile"
fi
