[gdal-dev] map info and projections from GeoTIFF file to create ENVI header

Even Rouault even.rouault at spatialys.com
Mon Jan 18 08:24:51 PST 2016


Le lundi 18 janvier 2016 17:13:14, nguler at jlab.org a écrit :
> Dmitry and All,
> I just downloaded the set of tiff files from earthexplorer and run gdalinfo
> on it. Please see below. I am missing some fields in the output
> information. It is different from what you got. I don't know what can
> cause this? My gdalinfo.exe is not good? Any idea?

Have a look at the FAQ entries about GDAL_DATA :
https://trac.osgeo.org/gdal/wiki/FAQInstallationAndBuilding#WhatisGDAL_DATAenvironmentvariable

> 
> C:\Cubes\LC80080472013174LGN00.tar>gdalinfo LC80080472013174LGN00_B1.TIF
> Driver: GTiff/GeoTIFF
> Files: LC80080472013174LGN00_B1.TIF
>        .\LC80080472013174LGN00_MTL.txt
> Size is 7571, 7411
> Coordinate System is:
> PROJCS["unnamed",
>     PROJECTION["Transverse_Mercator"],
>     PARAMETER["latitude_of_origin",0],
>     PARAMETER["central_meridian",-69],
>     PARAMETER["scale_factor",0.9996],
>     PARAMETER["false_easting",500000],
>     PARAMETER["false_northing",0],
>     UNIT["metre",1,
>         AUTHORITY["EPSG","9001"]]]
> Origin = (145185.000000000000000,2189715.000000000000000)
> Pixel Size = (30.000000000000000,-30.000000000000000)
> Metadata:
>   AREA_OR_POINT=Point
>   METADATATYPE=ODL
> Image Structure Metadata:
>   INTERLEAVE=BAND
> Corner Coordinates:
> Upper Left  (  145185.000, 2189715.000)
> Lower Left  (  145185.000, 1967385.000)
> Upper Right (  372315.000, 2189715.000)
> Lower Right (  372315.000, 1967385.000)
> Center      (  258750.000, 2078550.000)
> Band 1 Block=7571x1 Type=UInt16, ColorInterp=Gray
> 
> C:\Cubes\LC80080472013174LGN00.tar>gdalinfo --version
> GDAL 2.0.1, released 2015/09/15
> 
> C:\Cubes\LC80080472013174LGN00.tar>
> 
> > I have the 2.0.1 version:
> > C:\warmerda\bld\bin>gdalinfo --version
> > GDAL 2.0.1, released 2015/09/15
> > 
> > I will check the history of the file I have. Maybe it is modified. I will
> > also download the same file from earthexplorer and try my routines on
> > it. Thanks for the suggestions. I appreciate.
> > - Nevzat
> > 
> > -----Original Message-----
> > From: Dmitry Baryshnikov [mailto:bishop.dev at gmail.com]
> > Sent: Sunday, January 17, 2016 12:57 PM
> > To: Nevzat Guler <nguler at jlab.org>; gdal-dev at lists.osgeo.org
> > Subject: Re: [gdal-dev] map info and projections from GeoTIFF file to
> > create ENVI header
> > 
> > I downloaded this scene from earthexplorer, and everything is fine:
> > 
> > $ gdalinfo LC80080472013174LGN00_B1.TIF
> > Driver: GTiff/GeoTIFF
> > Files: LC80080472013174LGN00_B1.TIF
> > 
> >         ./LC80080472013174LGN00_MTL.txt
> > 
> > Size is 7571, 7411
> > Coordinate System is:
> > PROJCS["WGS 84 / UTM zone 19N",
> > 
> >      GEOGCS["WGS 84",
> >      
> >          DATUM["WGS_1984",
> >          
> >              SPHEROID["WGS 84",6378137,298.257223563,
> >              
> >                  AUTHORITY["EPSG","7030"]],
> >              
> >              AUTHORITY["EPSG","6326"]],
> >          
> >          PRIMEM["Greenwich",0,
> >          
> >              AUTHORITY["EPSG","8901"]],
> >          
> >          UNIT["degree",0.0174532925199433,
> >          
> >              AUTHORITY["EPSG","9122"]],
> >          
> >          AUTHORITY["EPSG","4326"]],
> >      
> >      PROJECTION["Transverse_Mercator"],
> >      PARAMETER["latitude_of_origin",0],
> >      PARAMETER["central_meridian",-69],
> >      PARAMETER["scale_factor",0.9996],
> >      PARAMETER["false_easting",500000],
> >      PARAMETER["false_northing",0],
> >      UNIT["metre",1,
> >      
> >          AUTHORITY["EPSG","9001"]],
> >      
> >      AXIS["Easting",EAST],
> >      AXIS["Northing",NORTH],
> >      AUTHORITY["EPSG","32619"]]
> > 
> > Origin = (145185.000000000000000,2189715.000000000000000)
> > Pixel Size = (30.000000000000000,-30.000000000000000)
> > 
> > Metadata:
> >    AREA_OR_POINT=Point
> >    METADATATYPE=ODL
> > 
> > Image Structure Metadata:
> >    INTERLEAVE=BAND
> > 
> > Corner Coordinates:
> > Upper Left  (  145185.000, 2189715.000) ( 72d23' 7.97"W, 19d46'16.43"N)
> > Lower Left  (  145185.000, 1967385.000) ( 72d20'44.51"W, 17d45'55.15"N)
> > Upper Right (  372315.000, 2189715.000) ( 70d13' 8.50"W, 19d47'56.92"N)
> > Lower Right ( 372315.000, 1967385.000) ( 70d12'16.74"W, 17d47'24.74"N)
> > Center      (  258750.000, 2078550.000) ( 71d17'19.50"W, 18d47' 4.68"N)
> > Band 1 Block=7571x1 Type=UInt16, ColorInterp=Gray
> > 
> > $ gdalinfo --version
> > GDAL 2.1.0dev, released 2015/99/99
> > 
> > What is your gdal version? Maybe the Landsat geotiff was modified from
> > some software?
> > 
> > Best regards,
> > 
> >      Dmitry
> > 
> > 17.01.2016 20:15, Nevzat Guler пишет:
> >> Thank you Dmitry,
> >> What is the best way to extract the information we got using
> >> gdalinfo.exe by using GDAL classes, within a C++ code? As I mentioned,
> >> I am using GetGeoTransform and GetProjectionRef() but the results miss
> >> many of the information (specifically the map info elements as I
> >> explained in the previous email).
> >> 
> >> On another note, I actually get a different output from gdalinfo.exe
> >> using my file (please see the printed result below). I got the geotiff
> >> file from my colleague. When I open the file with ENVI, I get all the
> >> information, including GEOGCS information.
> >> 
> >> Can it be that my file is just corrupted and that's why I don't get all
> >> the information from GetGeoTransform and GetProjectionRef()? But then
> >> how would ENVI is able to extract this information if it were not in
> >> the file?
> >> 
> >> Thanks again, - Nevzat
> >> 
> >> C:\Cubes\Landsat\LC80080472013174LGN00>gdalinfo
> >> LC80080472013174LGN00_B1.TIF
> >> Driver: GTiff/GeoTIFF
> >> Files: LC80080472013174LGN00_B1.TIF
> >> 
> >>         .\LC80080472013174LGN00_MTL.txt Size is 7571, 7411 Coordinate
> >> 
> >> System is:
> >> PROJCS["unnamed",
> >> 
> >>      PROJECTION["Transverse_Mercator"],
> >>      PARAMETER["latitude_of_origin",0],
> >>      PARAMETER["central_meridian",-69],
> >>      PARAMETER["scale_factor",0.9996],
> >>      PARAMETER["false_easting",500000],
> >>      PARAMETER["false_northing",0],
> >>      UNIT["metre",1,
> >>      
> >>          AUTHORITY["EPSG","9001"]]]
> >> 
> >> Origin = (145185.000000000000000,2189715.000000000000000)
> >> Pixel Size = (30.000000000000000,-30.000000000000000)
> >> 
> >> Metadata:
> >>    AREA_OR_POINT=Point
> >>    METADATATYPE=ODL
> >> 
> >> Image Structure Metadata:
> >>    INTERLEAVE=BAND
> >> 
> >> Corner Coordinates:
> >> Upper Left  (  145185.000, 2189715.000) Lower Left  (  145185.000,
> >> 1967385.000) Upper Right (  372315.000, 2189715.000) Lower Right (
> >> 372315.000, 1967385.000)
> >> Center      (  258750.000, 2078550.000)
> >> Band 1 Block=7571x1 Type=UInt16, ColorInterp=Gray
> >> 
> >> -----Original Message-----
> >> From: gdal-dev [mailto:gdal-dev-bounces at lists.osgeo.org] On Behalf Of
> >> Dmitry Baryshnikov
> >> Sent: Sunday, January 17, 2016 6:57 AM
> >> To: gdal-dev at lists.osgeo.org
> >> Subject: Re: [gdal-dev] map info and projections from GeoTIFF file to
> >> create ENVI header
> >> 
> >> Hi Nevzat,
> >> 
> >> The landsat geotiff already have CRS embeded in file
> >> 
> >> $ gdalinfo LC80150362013097LGN03_B1.TIF
> >> Driver: GTiff/GeoTIFF
> >> Files: LC80150362013097LGN03_B1.TIF
> >> 
> >>          ./LC80150362013097LGN03_MTL.txt Size is 7281, 7261 Coordinate
> >> 
> >> System is:
> >> PROJCS["WGS 84 / UTM zone 17N",
> >> 
> >>       GEOGCS["WGS 84",
> >>       
> >>           DATUM["WGS_1984",
> >>           
> >>               SPHEROID["WGS 84",6378137,298.257223563,
> >>               
> >>                   AUTHORITY["EPSG","7030"]],
> >>               
> >>               AUTHORITY["EPSG","6326"]],
> >>           
> >>           PRIMEM["Greenwich",0,
> >>           
> >>               AUTHORITY["EPSG","8901"]],
> >>           
> >>           UNIT["degree",0.0174532925199433,
> >>           
> >>               AUTHORITY["EPSG","9122"]],
> >>           
> >>           AUTHORITY["EPSG","4326"]],
> >>       
> >>       PROJECTION["Transverse_Mercator"],
> >>       PARAMETER["latitude_of_origin",0],
> >>       PARAMETER["central_meridian",-81],
> >>       PARAMETER["scale_factor",0.9996],
> >>       PARAMETER["false_easting",500000],
> >>       PARAMETER["false_northing",0],
> >>       UNIT["metre",1,
> >>       
> >>           AUTHORITY["EPSG","9001"]],
> >>       
> >>       AXIS["Easting",EAST],
> >>       AXIS["Northing",NORTH],
> >>       AUTHORITY["EPSG","32617"]]
> >> 
> >> Origin = (706185.000000000000000,3943515.000000000000000)
> >> Pixel Size = (30.000000000000000,-30.000000000000000)
> >> 
> >> Metadata:
> >>     AREA_OR_POINT=Point
> >>     METADATATYPE=ODL
> >> 
> >> Image Structure Metadata:
> >>     INTERLEAVE=BAND
> >> 
> >> Corner Coordinates:
> >> Upper Left  (  706185.000, 3943515.000) ( 78d43'24.74"W, 35d36'50.15"N)
> >> Lower Left  (  706185.000, 3725685.000) ( 78d46'35.65"W, 33d39' 3.82"N)
> >> Upper Right (  924615.000, 3943515.000) ( 76d19' 2.05"W, 35d32'39.74"N)
> >> Lower Right (  924615.000, 3725685.000) ( 76d25'33.46"W, 33d35'10.99"N)
> >> Center      (  815400.000, 3834600.000) ( 77d33'38.95"W, 34d36'17.35"N)
> >> Band 1 Block=7281x1 Type=UInt16, ColorInterp=Gray
> >> 
> >> And this is right CRS.
> >> Where do you get you geotiff?
> >> 
> >> Best regards,
> >> 
> >>       Dmitry
> >> 
> >> 17.01.2016 03:41, Nevzat Guler пишет:
> >>> Dear experts,
> >>> 
> >>> I am reading LANDSAT GeoTIFF files and combining bands to create and
> >>> ENVI cube.
> >>> I am using GDAL to read the GeoTIFF file, and my own custom cube
> >>> writer to write the ENVI style cube. Transferring the map information
> >>> proved to be a bit convoluted. I seek your help to figure out this.
> >>> 
> >>> My first problem is to access map info from GeoTIFF file. The map
> >>> info
> >>> includes:
> >>> 
> >>> map info = {UTM, 1.000, 1.000, 145185.000, 2189715.000,
> >>> 3.0000000000e+001, 3.0000000000e+001, 19, North, WGS-84,
> >>> units=Meters}
> >>> 
> >>> I am able to get the location (x,y), and pixel size (x,y) from :
> >>> double adfGeoTransform[6];
> >>> srcDS->GetGeoTransform(adfGeoTransform);
> >>> 
> >>> But, I could not find any way to get the other variables in the
> >>> string: UTM, pixel tie points, Unit and DATUM. Is there any way to get
> >>> them?
> >>> 
> >>> Finally, for the Coordinate System String, GDAL gives me:
> >>> 
> >>> PROJCS["unnamed",PROJECTION["Transverse_Mercator"],PARAMETER["latitud
> >>> e
> >>> _of_or
> >>> igin
> >>> ",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.999
> >>> 6
> >>> ],PARA
> >>> METE
> >>> R["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",
> >>> 1
> >>> ]]
> >>> 
> >>> But I should actually get
> >>> 
> >>> PROJCS["UTM_Zone_19N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS
> >>> 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0
> >>> ,
> >>> 0,0],A
> >>> UTHO
> >>> RITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],U
> >>> N
> >>> IT["de
> >>> gree
> >>> ",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"
> >>> ]],PRO
> >>> JECT
> >>> ION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETE
> >>> R
> >>> ["cent
> >>> ral_
> >>> meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_east
> >>> i
> >>> ng",50
> >>> 0000
> >>> ],PARAMETER["false_northing",0],UNIT["Meter",1]]
> >>> 
> >>> GDAL gives me PROJCS, "unnamed". And no GEOGCS information is given.
> >>> I am able to get the coordinate system properties by using the
> >>> following commands but I first need to set few things to use
> >>> exportToWTK.
> >>> 
> >>>>>         OGRSpatialReference oSRS;
> >>>>>         char *pszWKT = NULL;
> >>>>>         oSRS.SetProjCS("UTM_Zone_19N");
> >>>>>         oSRS.SetWellKnownGeogCS("WGS84");
> >>>>>         oSRS.SetUTM(19, TRUE);
> >>>>>         oSRS.SetWellKnownGeogCS("WGS84");
> >>>>>         oSRS.exportToWkt(&pszWKT);
> >>>>>         printf("%s\n", pszWKT);
> >>> 
> >>> However, this requires me to set SetProjCS, SetWellKnownGeogCS and
> >>> SetUTM first. I don't know these before I read the file. Is there any
> >>> way to get them from the file so that I don't need prior knowledge to
> >>> create the header. When I pull the GeoTIFF file into ENVI, all these
> >>> information is already there. If this list is only or development
> >>> purposes, please let me know if there is any other email list that
> >>> can give me guidance on this quest.
> >>> 
> >>> I appreciate your help and suggestions.
> >>> Best regards,
> >>> - Nevzat
> >>> 
> >>> _______________________________________________
> >>> gdal-dev mailing list
> >>> gdal-dev at lists.osgeo.org
> >>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
> >> 
> >> _______________________________________________
> >> gdal-dev mailing list
> >> gdal-dev at lists.osgeo.org
> >> http://lists.osgeo.org/mailman/listinfo/gdal-dev
> > 
> > _______________________________________________
> > gdal-dev mailing list
> > gdal-dev at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/gdal-dev
> 
> Nevzat Guler
> Senior Scientist
> Spectral Sciences
> Phone: 781-273-4770
> http://www.spectral.com/index.shtml
> http://www.linkedin.com/in/nevzatguler
> 
> 
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the gdal-dev mailing list