Oh, I'm confused MapInfo and ENVI map info.In your case you need to form this string by yourself using values from OGRSpatialReference methods. Also take a look to https://github.com/OSGeo/gdal/blob/trunk/gdal/frmts/raw/envidataset.cpp
Best regards, Dmitry 19.01.2016 00:33, ngu...@jlab.org пишет:
Dmitry, After doing this, I following your suggested steps, I get the string: Earth Projection 8, 104, "m", -69, 0, 0.9996, 500000, 0 Bit, the map info string I need to use looks like this: map info = {UTM, 1, 1, 145185, 2189715, 30, 30, 19, North} I tried other ExportTo functions but none gives me the specific map info string I want. This is ENVI map info string. I guess I will just have to stitch it together once I understand what the second and third elements are used for.. I really appreciated your help. Best regards, - NevzatHi Nevzat, you need to get spatial reference from GDALDataset (via GetProjectionRef http://gdal.org/classGDALDataset.html#aa42537e1062ce254d124b29ff3ebe857) and convert it to OGRSpatialReference. Than use exportToMICoordSys to get MI CRS string. http://gdal.org/classOGRSpatialReference.html#a1f2908cd5ca33609844ef0c0ff2186ea Best regards, Dmitry 18.01.2016 20:27, ngu...@jlab.org пишет:It is solved. Thank you very much Even and Dmitry for your helps. I have missed the GDAL_DATA variable and it caused me all that trouble. Now I need to get the map info string: map info = {UTM, 1, 1, 145185, 2189715, 30, 30, 19, North,WGS-84} Using hDS->GetGeoTransform(adfGeoTransform) does not give me all the information in the map info string. It only gives me elements [4-7], how to get the others? Best regards, - NevzatYes, Thank you Even, I was missing the GDAL_DATA environmental variable. Now I get the same gdalinfo output. Do I need to set this variable while using the C++ classes you suggested before: GetGeoTransform and GetProjectionRef()..? Because, there also I had the same problem. Best regards, - NevzatLe lundi 18 janvier 2016 17:13:14, ngu...@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_DATAenvironmentvariableC:\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....@gmail.com] Sent: Sunday, January 17, 2016 12:57 PM To: Nevzat Guler <ngu...@jlab.org>; gdal-dev@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-boun...@lists.osgeo.org] On Behalf Of Dmitry Baryshnikov Sent: Sunday, January 17, 2016 6:57 AM To: gdal-dev@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@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-devNevzat 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@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev-- Spatialys - Geospatial professional services http://www.spatialys.comNevzat Guler Senior Scientist Spectral Sciences Phone: 781-273-4770 http://www.spectral.com/index.shtml http://www.linkedin.com/in/nevzatgulerNevzat 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@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-devNevzat 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@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev