Search code examples
imagejpeggdalgeoservergeotiff

I can't create image mosaic in GeoServer(JPG image format)


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?


Solution

  • 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.