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 <[email protected] <mailto:[email protected]>> 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
    <[email protected] <mailto:[email protected]>> 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
        [email protected] <mailto:[email protected]>
        http://lists.osgeo.org/mailman/listinfo/gdal-dev




-- ---------------------------------------+--------------------------------------
    I set the clouds in motion - turn up   | Frank Warmerdam,
    [email protected] <mailto:[email protected]>
    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
    [email protected] <mailto:[email protected]>
    http://lists.osgeo.org/mailman/listinfo/gdal-dev




--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam, [email protected] <mailto:[email protected]> light and sound - activate the windows | http://pobox.com/~warmerdam <http://pobox.com/%7Ewarmerdam>
and watch the world go round - Rush    | Geospatial Software Developer

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to