#!/bin/bash
# usage:
#   geotiffsplit mapname.tif sizex sizey
#
# split GeoTIFF into tiles of size (sizex,sizey) approx.
# adjusted to even number of tiles

if [ $# -ne 3 ]; then
  echo 'Syntax: geotiffsplit mapname.tif sizex sizey'
  exit
fi

hash gdal_translate

image=$1
base=${image%.*}

sizex=$2
sizey=$3

options=

imagesizex=`gdalinfo "$image" | grep "^Size is " | sed "s/Size is \(.*\), \(.*\)/\1/g"`
imagesizey=`gdalinfo "$image" | grep "^Size is " | sed "s/Size is \(.*\), \(.*\)/\2/g"`

# calculator: bc

# Anzahl der Kacheln x,y (gerundet)

nx=$[$imagesizex / $sizex]
ny=$[$imagesizey / $sizey]

# Kachelgre (aufgeteilt fr ganzzahlige Kachelzahlen)
dx=$[$imagesizex / $nx]
dy=$[$imagesizey / $ny]

# main loop

# c-like for syntax
for ((x=0, ix=0; ix < nx ; ix++, x+=dx)) do
  for ((y=0, iy=0; iy < ny ; iy++, y+=dy)) do
	gdal_translate $options -srcwin $x $y $dx $dy "$image" "$base-$ix-$iy.tif"
  done
done
