0

I am trying to create image mosaic out of bunch of .jpg images. These images all have EXIF header and it looks like this:

Driver: JPEG/JPEG JFIF
Files: IMG_3290.JPG
Size is 4000, 3000
Coordinate System is `'
Metadata:
  EXIF_ApertureValue=(3.625)
  EXIF_ColorSpace=1
  EXIF_ComponentsConfiguration=0x1 0x2 0x3 00
  EXIF_CompressedBitsPerPixel=(5)
  EXIF_CustomRendered=0
  EXIF_DateTime=2015:09:09 15:27:28
  EXIF_DateTimeDigitized=2015:09:09 15:27:28
  EXIF_DateTimeOriginal=2015:09:09 15:27:28
  EXIF_DigitalZoomRatio=(1)
  EXIF_ExifVersion=0230
  EXIF_ExposureBiasValue=(0)
  EXIF_ExposureMode=0
  EXIF_ExposureTime=(0.0005)
  EXIF_FileSource=0x3
  EXIF_Flash=16
  EXIF_FlashpixVersion=0100
  EXIF_FNumber=(3.5)
  EXIF_FocalLength=(4.5)
  EXIF_FocalPlaneResolutionUnit=2
  EXIF_FocalPlaneXResolution=(16393.4)
  EXIF_FocalPlaneYResolution=(16393.4)
  EXIF_GPSAltitude=(91.8)
  EXIF_GPSAltitudeRef=00
  EXIF_GPSDateStamp=2015:09:09
  EXIF_GPSLatitude=(45) (18) (3.564)
  EXIF_GPSLatitudeRef=N
  EXIF_GPSLongitude=(19) (48) (19.842)
  EXIF_GPSLongitudeRef=E
  EXIF_GPSMapDatum=WGS-84
  EXIF_GPSStatus=A
  EXIF_GPSTimeStamp=(14) (27) (29)
  EXIF_GPSVersionID=0x2 0x3 00 00
  EXIF_ImageDescription=                               
  EXIF_Interoperability_Index=R98
  EXIF_Interoperability_Version=0x30 0x31 0x30 0x30
  EXIF_ISOSpeedRatings=800
  EXIF_Make=Canon
  EXIF_MakerNote=
  EXIF_MaxApertureValue=(3.625)
  EXIF_MeteringMode=5
  EXIF_Model=Canon PowerShot SX280 HS
  EXIF_Orientation=1
  EXIF_PixelXDimension=4000
  EXIF_PixelYDimension=3000
  EXIF_Related_Image_Length=3000
  EXIF_Related_Image_Width=4000
  EXIF_ResolutionUnit=2
  EXIF_SceneCaptureType=0
  EXIF_SensingMethod=2
  EXIF_ShutterSpeedValue=(10.9688)
  EXIF_UserComment=
  EXIF_WhiteBalance=1
  EXIF_XResolution=(180)
  EXIF_YCbCrPositioning=2
  EXIF_YResolution=(180)
Image Structure Metadata:
  COMPRESSION=JPEG
  INTERLEAVE=PIXEL
  SOURCE_COLOR_SPACE=YCbCr
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0, 3000.0)
Upper Right ( 4000.0,    0.0)
Lower Right ( 4000.0, 3000.0)
Center      ( 2000.0, 1500.0)
Band 1 Block=4000x1 Type=Byte, ColorInterp=Red
  Overviews: 2000x1500, 1000x750, 500x375
  Image Structure Metadata:
    COMPRESSION=JPEG
Band 2 Block=4000x1 Type=Byte, ColorInterp=Green
  Overviews: 2000x1500, 1000x750, 500x375
  Image Structure Metadata:
    COMPRESSION=JPEG
Band 3 Block=4000x1 Type=Byte, ColorInterp=Blue
  Overviews: 2000x1500, 1000x750, 500x375
  Image Structure Metadata:
    COMPRESSION=JPEG

So in geoserver's user manual it says to use either geotiff or jpg accompanied by .jgw(world file). I have been trying to create geotiff image using gdal_translate:

 >gdal_translate -a_srs EPSG:4326 -of GTiff IMG_3290.JPG IMG_3290.tiff

And now as a result of gdalinfo command i get:

 Coordinate System is:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0],
    UNIT["degree",0.0174532925199433],
    AUTHORITY["EPSG","4326"]]

And on geotiff images as a result of gdalinfo i get much more detailed georeference data:

   Coordinate System is:
PROJCS["WGS 84 / UTM zone 35N",
    GEOGCS["WGS 84",
        DATUM["WGS_1984",
            SPHEROID["WGS 84",6378137,298.257223563,
                AUTHORITY["EPSG","7030"]],
            AUTHORITY["EPSG","6326"]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433],
        AUTHORITY["EPSG","4326"]],
    PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",0],
    PARAMETER["central_meridian",27],
    PARAMETER["scale_factor",0.9996],
    PARAMETER["false_easting",500000],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]],
    AUTHORITY["EPSG","32635"]]
Origin = (510729.434746513376012,4362942.855643210932612)
Pixel Size = (1.000000000000000,-1.000000000000000)
Metadata:
  AREA_OR_POINT=Area
Image Structure Metadata:
  COMPRESSION=PACKBITS
  INTERLEAVE=BAND
Corner Coordinates:
Upper Left  (  510729.435, 4362942.856) ( 27d 7'28.71"E, 39d24'57.38"N)
Lower Left  (  510729.435, 4347929.856) ( 27d 7'27.84"E, 39d16'50.38"N)
Upper Right (  527866.435, 4362942.856) ( 27d19'25.38"E, 39d24'56.00"N)
Lower Right (  527866.435, 4347929.856) ( 27d19'23.13"E, 39d16'49.00"N)
Center      (  519297.935, 4355436.356) ( 27d13'26.27"E, 39d20'53.34"N)

So finally is there a way to convert jpg with exif header into geotiff image? And also how can i create .jgw file out of jpg image with exif header like the one i showed here?

Milos Miletic
  • 500
  • 6
  • 19

2 Answers2

0

It seems that info in this exif header isn't enough to create true ortophoto as information about rotation of the image is not present in it.

Milos Miletic
  • 500
  • 6
  • 19
0

The Exif Specification provides for the following Tags

0x0010  16  GPSInfo Exif.GPSInfo.GPSImgDirectionRef Ascii   Indicates the reference for giving the direction of the image when it is captured. "T" denotes true direction and "M" is magnetic direction.
0x0011  17  GPSInfo Exif.GPSInfo.GPSImgDirection    Rational    Indicates the direction of the image when it was captured. The range of values is from 0.00 to 359.99.

If your Drone Software can populate that at the time the image was taken, you will have what you need

Mark Cupitt
  • 180
  • 12