[gdal-dev] geotiff projection not showing up

Norman Goldstein normvcr at telus.net
Sat Nov 9 13:07:55 PST 2013


Frank,

Things are better, now, but not quite there for me.
Still not able to transform pixel/line to PCS space.
(the listgeo dump is, below)

I think the problem is that there is no definition of the

ModelPixelScaleTag

It seems that this tag, together with the ModelTiepointTag,
is how an affine transformation is inferred.  Or by directly
setting

ModelTransformationTag

which I could do with GDALDataset's SetGeoTransform()
method (for defining 2D affine transformations).

The GTiffDataset class is hidden from users of GDAL,
being defined in the cpp file frmts/gtiff/geotiff.cpp .
Is there a way to directly set the tags of a GeoTIFF
GDAL Dataset?  Or, would this break GDAL's useful
ability of uniformly dealing with the many different
dataset formats?


------------------------

I changed the call to SetGCPs, as you suggested:

dataset->SetGCPs( 3,
                       gcps,
                       wkt )

where wkt is the equirectangular projection defined
below, in an earlier email.  Here is the listgeo dump:

////////////////////// listgeo dump /////////////////////////
Geotiff_Information:
    Version: 1
    Key_Revision: 1.0
    Tagged_Information:
       ModelTiepointTag (6,3):
          0                249              0
          0                0                0
          399              249              0
          1000             0                0
          0                0                0
          0                2000             0
       End_Of_Tags.
    Keyed_Information:
       GTModelTypeGeoKey (Short,1): ModelTypeProjected
       GTRasterTypeGeoKey (Short,1): RasterPixelIsPoint
       GTCitationGeoKey (Ascii,8): "NoWhere"
       GeographicTypeGeoKey (Short,1): GCS_WGS_84
       GeogCitationGeoKey (Ascii,7): "WGS 84"
       GeogAngularUnitsGeoKey (Short,1): Angular_Degree
       GeogSemiMajorAxisGeoKey (Double,1): 6378137
       GeogInvFlatteningGeoKey (Double,1): 298.257224
       ProjectedCSTypeGeoKey (Short,1): User-Defined
       ProjectionGeoKey (Short,1): User-Defined
       ProjCoordTransGeoKey (Short,1): CT_Equirectangular
       ProjLinearUnitsGeoKey (Short,1): Linear_Meter
       ProjStdParallel1GeoKey (Double,1): 0
       ProjFalseEastingGeoKey (Double,1): 0
       ProjFalseNorthingGeoKey (Double,1): 0
       ProjCenterLongGeoKey (Double,1): 0
       ProjCenterLatGeoKey (Double,1): 0
       End_Of_Keys.
    End_Of_Geotiff.

Projection Method: CT_Equirectangular
    ProjCenterLatGeoKey: 0.000000 (  0d 0' 0.00"N)
    ProjCenterLongGeoKey: 0.000000 (  0d 0' 0.00"E)
    ProjFalseEastingGeoKey: 0.000000 m
    ProjFalseNorthingGeoKey: 0.000000 m
GCS: 4326/WGS 84
Datum: 6326/World Geodetic System 1984
Ellipsoid: 7030/WGS 84 (6378137.00,6356752.31)
Prime Meridian: 8901/Greenwich (0.000000/  0d 0' 0.00"E)
Projection Linear Units: 9001/metre (1.000000m)

Corner Coordinates:
  ... unable to transform points between pixel/line and PCS space
////////////////////////////////////////////////////////////

This is much better, but, still missing the pixel/line <--> PCS
transformation (as noted, above).


On 11/07/2013 07:32 AM, Frank Warmerdam wrote:
> Norman,
>
> My apologies.  The GCP projection is actually supposed to be passed as 
> the third value in the SetGCPs call - where you have passed the string 
> "Richmond".  Instead pass the whole WKT strings for the coordinate system.
>
> Best regards,
> Frank
>
>
> On Wed, Nov 6, 2013 at 4:00 PM, Norman Goldstein <normvcr at telus.net 
> <mailto:normvcr at telus.net>> wrote:
>
>     Frank,
>
>     I am using GDAL
>     Version     : 1.9.2
>
>     so maybe that is why I do not see the method SetGCPProjection().
>
>     I think you have convinced me, though, to calculate the 6
>     coefficients directly,
>     and then call SetGeoTransform().  Will let you guys know how this
>     works out
>     for me.
>
>     Thank you,
>     Norm
>
>
>
>     On 11/06/2013 01:51 PM, Frank Warmerdam wrote:
>>     Norman,
>>
>>     I believe you want to call SetGCPProjection() instead of
>>     SetProjection() when using GCPs instead of an affine transform.
>>
>>     Best regards,
>>     Frank
>>
>>
>>
>>     On Wed, Nov 6, 2013 at 1:23 PM, Norman Goldstein
>>     <normvcr at telus.net <mailto:normvcr at telus.net>> wrote:
>>
>>         I have created a geotiff file using the "GTiff" driver, and
>>         have successfully set options for it to be a strips file with
>>         no compression.  Also, successfully called the functions
>>
>>         dataset->SetMetadataItem( "AREA_OR_POINT",
>>         "Point",
>>          nullptr ) )
>>
>>         and
>>
>>         dataset->SetGCPs( 3,
>>                                        gcps,
>>                                        "Richmond" )
>>
>>         Here is the listgeo dump:
>>
>>         ############# listgeo dump ##############
>>         Geotiff_Information:
>>            Version: 1
>>            Key_Revision: 1.0
>>            Tagged_Information:
>>               ModelTiepointTag (6,3):
>>                  0                249              0
>>                  0                0                0
>>                  399              249              0
>>                  1000             0                0
>>                  0                0                0
>>                  0                2000             0
>>               End_Of_Tags.
>>            Keyed_Information:
>>               GTRasterTypeGeoKey (Short,1): RasterPixelIsPoint
>>               End_Of_Keys.
>>            End_Of_Geotiff.
>>
>>
>>         Corner Coordinates:
>>          ... unable to transform points between pixel/line and PCS space
>>         #####################################
>>
>>         I also set the reference system using the following code:
>>
>>         /////////////////////// c++ code ////////////////////////////
>>           OGRSpatialReference oSRS;
>>           oSRS.SetProjCS( "NoWhere" );
>>           oSRS.SetWellKnownGeogCS( "WGS84" );
>>           oSRS.SetEquirectangular( 0.0,        // Centre lat
>>                        0.0,        // Centre lon
>>                        0.0,   // False Easting
>>                        0.0 ); // False Northing
>>
>>           char* wkt = nullptr;
>>
>>           if( OGRERR_NONE != oSRS.exportToPrettyWkt( &wkt ) )
>>           {
>>              error...
>>           }
>>
>>           if( CE_Failure == dataset->SetProjection( wkt ) )
>>           {
>>            error...
>>           }
>>         ///////////////////////////////////////////////////////////////
>>
>>         So, why is listgeo not able to transform points between
>>         pixel/line and PCS space?
>>
>>         I am happy to upload a full working example if needed.
>>
>>         Thank you.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>         _______________________________________________
>>         gdal-dev mailing list
>>         gdal-dev at lists.osgeo.org <mailto:gdal-dev at lists.osgeo.org>
>>         http://lists.osgeo.org/mailman/listinfo/gdal-dev
>>
>>
>>
>>
>>     -- 
>>     ---------------------------------------+--------------------------------------
>>     I set the clouds in motion - turn up   | Frank Warmerdam,
>>     warmerdam at pobox.com <mailto:warmerdam at pobox.com>
>>     light and sound - activate the windows |
>>     http://pobox.com/~warmerdam <http://pobox.com/%7Ewarmerdam>
>>     and watch the world go round - Rush    | Geospatial Software
>>     Developer
>
>
>     _______________________________________________
>     gdal-dev mailing list
>     gdal-dev at lists.osgeo.org <mailto:gdal-dev at lists.osgeo.org>
>     http://lists.osgeo.org/mailman/listinfo/gdal-dev
>
>
>
>
> -- 
> ---------------------------------------+--------------------------------------
> I set the clouds in motion - turn up   | Frank Warmerdam, 
> warmerdam at pobox.com <mailto:warmerdam at pobox.com>
> light and sound - activate the windows | http://pobox.com/~warmerdam 
> <http://pobox.com/%7Ewarmerdam>
> and watch the world go round - Rush    | Geospatial Software Developer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20131109/9f4b81e7/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4243 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20131109/9f4b81e7/attachment-0001.bin>


More information about the gdal-dev mailing list