Greg,
>From looking at your proj parameters string, I don't see anything
denoting it's an inverse projection. Please double check the proj docs
(google for proj4), to make sure you're aren't missing a parameter like
+inv or -I or something like that.
Also, since you're starting from a projected dataset, you may need to do
an inverse to get to "geographic coords" before projecting it into the
resulting image. Maybe you were doing this step before, but I don't see
a proj command for it, nor an image below.
As a last note, maybe Craig DeForest will chime in on this thread. He is
responsible for the general PDL::Transform code, whereas I just added an
interface between that and a more general interface to the Proj4
library. I'll still help as best as I can, however.
-Judd
On Thu, 2007-09-20 at 15:11 -0400, Greg Ederer wrote:
> Hi All:
>
> I am starting to work with the PDL::Transform and Proj4 modules, and am
> running into some things I don't understand.
>
> I have a file containing data in the Sinusoidal projection. The corner
> points are at
> upper left: [-7783653.637667, 5559752.598333] meters
> lower right: [-6671703.118, 4447802.078667] meters
> pixel size: 926.62543305 meters
> image size: 1200x1200
>
> A jpeg image of the original, sinusoidal projection data is attached,
> and named "small_original.jpg" (you can see parts of the Great Lakes,
> especially the lower part of Lake Michigan and western part of Lake
> Superior in black clearly in the image):
>
> I "apply" the inverse sinusoidal transform to the corner points, and get
> upper left: [-108.900667860276, 49.9999999955069] degrees
> lower right: [-78.324437348786, 39.9999999964109] degrees
> pixel size: 0.00833366871395212 degrees
> image size: 3669x1200
>
> These corner points and sizes seem reasonable to me, and match what I
> get when I use an alternative C program to do the reprojection (see below).
>
> However, when I "map" the data points using the inverse sinusoidal
> transform, it looks like the image gets warped the wrong way -- east
> instead of west. The jpeg of the image when I use the Proj4 transform is
> attached and named "small_unexpected.jpg"
>
> The FITS header that I assign to the input data is:
> CDELT1: 926.625433055
> CDELT2: 926.625433055
> COMMENT: SNSOID
> CRPIX1: 601
> CRPIX2: 601
> CRVAL1: -7227678.3778335
> CRVAL2: 5003777.3385
> CTYPE1: Longitude
> CTYPE2: Latitude
> CUNIT1: meters
> CUNIT2: meters
> HISTORY: FITS header created by MapGeometry.pm
> NAXIS: 2
> NAXIS1: 1200
> NAXIS2: 1200
> SIMPLE: T
>
>
> The template (to) FITS header is:
> CDELT1: 0.00833366871395212
> CDELT2: 0.00833333333257998
> COMMENT: GEO
> CRPIX1: 1835.5
> CRPIX2: 601
> CRVAL1: -93.6125526045312
> CRVAL2: 44.9999999959589
> CTYPE1: Longitude
> CTYPE2: Latitude
> CUNIT1: degrees
> CUNIT2: degrees
> HISTORY: FITS header created by MapGeometry.pm
> NAXIS: 2
> NAXIS1: 3669
> NAXIS2: 1200
> SIMPLE: T
>
> the function call looks like:
> $tf = t_proj( proj_params => '+proj=sinu +over +a=6371007.181'
> )->inverse();
> $result = $pdl->map($tf, $to_FITS_hdr, { method=>'s' });
>
>
> For reference, I attached a jpeg (named named "small_expected.jpg".) of
> what I expected to see (as generated from an old C program I have that
> uses the GCTP library).
>
> There are no other transforms applied to the data, and no other data
> manipulation, except to read the data in and write them out. Am I
> generating FITS headers incorrectly, or am I using the map function
> incorrectly, or is there a problem with the map function? I am using the
> most recent CPAN version of PDL.
>
> Thanks for your help,
> --greg
>
> NOTE: The attached jpegs were scaled smaller from the original jpegs
> using a separate jpeg manipulation program. I wanted to be sure I was
> only using one transform when running my test. The smaller sizes are
> easier to see in their entirety and take up less space.
>
> Also, MapGeometry.pm (mentioned in the FITS comments) is the module I am
> writing.
>
>
>
>
> _______________________________________________
> Perldl mailing list
> [email protected]
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
--
____________________________
Judd Taylor
Software Engineer
Orbital Systems, Ltd.
3807 Carbon Rd.
Irving, TX 75038-3415
[EMAIL PROTECTED]
(972) 915-3669 x127
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl