Assuming your 6 numbers are top left bounds in EPSG:4326 coordinates, and the last two figures are the cell width and height in meters in the EPSG:3416 system then the procedure is as follows.
- Find the top-left corner in EPSG:3416 coordinates.
- Add width * (pixel rows+1) to get the eastern limit
- Subtract height * (pixel columns + 1) to get the southern limit
- We now know the EPSG:3416 coordinates of the grid system.
gdal_translate to create an intermediate VRT with control points mapping pixels to EPSG:3416 coords
gdalwarp to do the transformation.
So you need the
gdal command line tools - you didn't mention any GIS tools so I used them.
I've used a test image which I scaled to 824x648 pixels, called
rose.png. The commands were then:
gdal_translate -of VRT -a_srs EPSG:3416 \
-gcp 0 0 34787.89 738735.2 \
-gcp 824 648 874786.4 78954.57 \
-gcp 0 648 34787.89 78954.57 \
gdalwarp -s_srs EPSG:3416 -t_srs EPSG:3416 rose3416c.vrt rose3416c.tif
This produces a GeoTIFF that seems to sit nicely over Austria, and looks rectangular on an EPSG:3416 base map:
I used R's projection functions to work out the coordinates of the corners, and a bit of maths. Note this may be half a cell out if the coordinates are cell centres and not edges. Or even more than that out if I've messed up. No warranty. Also, I'm surprised this isn't easier.
If you have 1000 of these to do I'd write a command line script to do it.
Here's how to work out the coordinates using Qgis Python code at the Qgis Python Console:
First set up two projections and the transform object:
>>> atproj = QgsCoordinateReferenceSystem(3416, QgsCoordinateReferenceSystem.PostgisCrsId)
>>> llproj = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.PostgisCrsId)
>>> xform = QgsCoordinateTransform(llproj, atproj)
Now you can convert x-y coordinates from lat-long to Austrian:
So I can store this point as
origin, add the offsets, and get the far corner:
>>> w = 1018.18
>>> h = 1018.18
>>> origin = QgsPoint(xform.transform(QgsPoint(8.194,50.437)))
>>> corner = QgsPoint(origin.x() + 824*w, origin.y() - 648*h)
I'm not sure why the X coordinate is slightly off from the one I computed a similar way in R - possibly a slightly different set of projection parameters or I missed something. Bit its less than 20m off in 1km grid squares so hopefully no big deal.