How to determine if a tiff is georeferenced or not?

Looks like gdalinfo will tell you:

A non-georeferenced figure exported from ArcMap layout:

C:\Temp>gdalinfo figure1.tif
Driver: GTiff/GeoTIFF
Files: figure1.tif
Size is 244, 210
Coordinate System is `'
Metadata:
  TIFFTAG_XRESOLUTION=96
  TIFFTAG_YRESOLUTION=96
  TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0,  210.0)
Upper Right (  244.0,    0.0)
Lower Right (  244.0,  210.0)
Center      (  122.0,  105.0)
Band 1 Block=244x11 Type=Byte, ColorInterp=Red
Band 2 Block=244x11 Type=Byte, ColorInterp=Green
Band 3 Block=244x11 Type=Byte, ColorInterp=Blue

A aerial photo:

C:\Temp>gdalinfo Adona_1.tif
Driver: GTiff/GeoTIFF
Files: Adona_1.tif
       Adona_1.tif.ovr
       Adona_1.tfw
       Adona_1.tif.aux.xml
Size is 5426, 5522
Coordinate System is:
PROJCS["NAD83 / Arkansas North",
    GEOGCS["NAD83",
        DATUM["North_American_Datum_1983",
            SPHEROID["GRS 1980",6378137,298.2572221010002,
                AUTHORITY["EPSG","7019"]],
            AUTHORITY["EPSG","6269"]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433],
        AUTHORITY["EPSG","4269"]],
    PROJECTION["Lambert_Conformal_Conic_2SP"],
    PARAMETER["standard_parallel_1",36.23333333333333],
    PARAMETER["standard_parallel_2",34.93333333333333],
    PARAMETER["latitude_of_origin",34.33333333333334],
    PARAMETER["central_meridian",-92],
    PARAMETER["false_easting",1312333.333333333],
    PARAMETER["false_northing",0],
    UNIT["US survey foot",0.3048006096012192,
        AUTHORITY["EPSG","9003"]],
    AUTHORITY["EPSG","26951"]]
Origin = (1045317.554567784100000,261147.746197238540000)
Pixel Size = (0.500000000000000,-0.500000000000000)
Metadata:
  TIFFTAG_SOFTWARE=Adobe Photoshop CS4 Windows
  TIFFTAG_DATETIME=2010:08:04 07:39:30
  TIFFTAG_XRESOLUTION=1
  TIFFTAG_YRESOLUTION=1
  TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
  AREA_OR_POINT=Area
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  ( 1045317.555,  261147.746) ( 92d53'31.49"W, 35d 2'50.94"N)
Lower Left  ( 1045317.555,  258386.746) ( 92d53'31.19"W, 35d 2'23.64"N)
Upper Right ( 1048030.555,  261147.746) ( 92d52'58.86"W, 35d 2'51.19"N)
Lower Right ( 1048030.555,  258386.746) ( 92d52'58.56"W, 35d 2'23.88"N)
Center      ( 1046674.055,  259767.246) ( 92d53'15.03"W, 35d 2'37.41"N)
Band 1 Block=5426x1 Type=Byte, ColorInterp=Red
  Overviews: 2713x2761, 1357x1381, 679x691, 340x346, 170x173
Band 2 Block=5426x1 Type=Byte, ColorInterp=Green
  Overviews: 2713x2761, 1357x1381, 679x691, 340x346, 170x173
Band 3 Block=5426x1 Type=Byte, ColorInterp=Blue
  Overviews: 2713x2761, 1357x1381, 679x691, 340x346, 170x173

Adding on to Chad's answer: Is there a .TFW file accompanying the TIF? If so, the image has georef info that isn't embedded in the header. I don't know if GDALINFO will catch that or not.

Unfortunately a TFW only gives you coordinates and cell sizes. It doesn't specify which CRS/projection/datum the image is referenced to, nor what units are used for the projection.


In the ESRI world, if the image is georeferenced, but not rectified, gdalinfo won't return the projection information

Driver: GTiff/GeoTIFF
Files: COVE_COGEO.tif
       COVE_COGEO.aux
       Cove_COGEO.rrd
       COVE_COGEO.tif.aux.xml
Size is 6618, 8176
Coordinate System is `'
Metadata:
  TIFFTAG_IMAGEDESCRIPTION=
  TIFFTAG_MAXSAMPLEVALUE=1
  TIFFTAG_MINSAMPLEVALUE=0
  TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
  TIFFTAG_XRESOLUTION=300
  TIFFTAG_YRESOLUTION=300
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0, 8176.0)
Upper Right ( 6618.0,    0.0)
Lower Right ( 6618.0, 8176.0)
Center      ( 3309.0, 4088.0)
Band 1 Block=6618x512 Type=Byte, ColorInterp=Red
  Overviews: 1655x2044, 828x1022, 414x511, 207x256, 104x128, 52x64
Band 2 Block=6618x512 Type=Byte, ColorInterp=Green
  Overviews: 1655x2044, 828x1022, 414x511, 207x256, 104x128, 52x64
Band 3 Block=6618x512 Type=Byte, ColorInterp=Blue
  Overviews: 1655x2044, 828x1022, 414x511, 207x256, 104x128, 52x64

If you look in the tif.aux.xml you will find the projection information:

<?xml version="1.0" encoding="UTF-8"?>-
<GeodataXform xmlns:typens="http://www.esri.com/schemas/ArcGIS/9.2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="typens:PolynomialXform">
<PolynomialOrder>1</PolynomialOrder>-<SpatialReference xsi:type="typens:ProjectedCoordinateSystem">  <WKT>PROJCS["NAD_1983_UTM_Zone_15N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]</WKT>
      <XOrigin>-5682839.5944962</XOrigin>
      <YOrigin>-10997760.6594148</YOrigin>
      <XYScale>409501512.793437</XYScale>
      <ZOrigin>-100000</ZOrigin>
      <ZScale>10000</ZScale>
      <MOrigin>-100000</MOrigin>
      <MScale>10000</MScale>
      <XYTolerance>0.001</XYTolerance>
      <ZTolerance>0.001</ZTolerance>
      <MTolerance>0.001</MTolerance>
      <HighPrecision>true</HighPrecision>
    </SpatialReference>-<SourceGCPs xsi:type="typens:ArrayOfDouble">
    <Double>1.57734892030567</Double>
    <Double>25.8359122977818</Double>
    <Double>20.4046417720032</Double>
    <Double>25.9084153582944</Double>
    <Double>20.4733053142072</Double>
    <Double>3.14623602371285</Double>
    <Double>1.61802731006583</Double>
    <Double>3.1060187781668</Double>
    </SourceGCPs>-<TargetGCPs xsi:type="typens:ArrayOfDouble">
    <Double>362267.039129157</Double>
    <Double>3818630.52804079</Double>
    <Double>373747.691530917</Double>
    <Double>3818468.79669514</Double>
    <Double>373558.508499628</Double>
    <Double>3804605.04409216</Double>
    <Double>362064.5523863</Double>
    <Double>3804768.11127776</Double>
    </TargetGCPs>
    </GeodataXform>

However, once rectified gdalinfo will work and the data will no longer be in the tif.aux.xml so you may have to look in both places.