[gdal-dev] map info and projections from GeoTIFF file to create ENVI header
Nevzat Guler
nguler at jlab.org
Sun Jan 17 10:32:48 PST 2016
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
>
>
More information about the gdal-dev
mailing list