-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 30/10/12 08:28, Rutger wrote:
> Hey,
Hi Rutger,
> You're spot on! This makes my day. :) I spent some time last night
> reading up on the quaternion rotation, i had never heard of it
> before. But Hrob's comment on the Earth rotation already gave a
> hint that it should be some time related issue. The Earth rotates
> about .3 decimal degrees during the recording of a granule which is
> also about the deviation at the end of the recording.
> Excellent, now the next step on my todo list is validation with the
> GITCO geolocation product. Which should be pretty straightforward.
> Every scanline is 32 pixels high so reading out the 32th and -32th
> pixels at the beginning and the end should be very close to the
> predicted first and last scanline.
Yes, I checked quickly yesterday, the bow-tie effect is clearly seen
when you take in the first and last pixel of each scan... However, I
had a hard time to find precise values on the internet for the
backward and forward fov's... From what I gathered, the width of the
scan along-track is 11.87km, so if the satellite is about 824km above
the earth, we can approximate the along-track fov phi as:
tan(phi) = 11.87/824
which gives about 14.4 mrad...
Did you find any better value for that?
Here are the changes I made to the code to accommodate for wider scans
(more than one scanline):
#taking just borders and middle for now
scan_pixels = 3
#scan_pixels = 32
across_track = (np.arange(6400) - 3199.5) / 3200 * np.deg2rad(-55.84)
# pitch rotation: np.arctan2(11.87/2, 824.0)
y_max_angle = np.arctan2(11.87/2, 824.0)
along_track = np.array([-y_max_angle, 0, y_max_angle])
scan = np.vstack((np.tile(across_track, scan_pixels),
np.repeat(along_track, 6400))).T
npp = np.tile(scan, [scanline_nb, 1])
[...]
offset = np.arange(scanline_nb) * 1.779166667
times = (np.tile(np.arange(6400) * 0.0002779947917, [scanline_nb,
scan_pixels]) + np.expand_dims(offset, 1))
About the validation against GITCO, I would expect discrepancies due to:
- - the vertical axis points to the center of the earth at the moment,
not the subsatellite point
- - the attitude correction is not applied
- - the start time of the granules has to be more precise than the
second... I think the file name provide tenth of seconds, right?
- - no terrain correction is done
But tell me how it goes!
I started validating against HRPT data yesterday, and with all the
shortages mentionned above, I still got "only" 6.5km mean error
compared to the result of AAPP :)
> I have attached the improved map.
Really nice! I'm no basemap expert, so I'd gladly have a look at how
you did this :)
Best regards,
Martin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
Comment: Using GnuPG with Mozilla -
http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJQj5J6AAoJEBdvyODiyJI4aakH/2j4k5Nt86cRKIYQzCjNB8FU
eWfnnJn9F9nrOhAB8aXGKIcYliaNoI3CR8kN4sRnuyY4krfL1yuuhtZU0haV8tPn
0//RMzIILKARo/B5XytSDj0Fddpvgb+gpSQRBotVlqpMCY1SGzL7Lcm48OJ320j1
8lE94o3w6dODmN0CYW60ex1R+jQZ8GcsGMTbyVE8UC6Aj9JbXxrid9t4oQwqCamU
LZZ+ESLmDRsFxdPVryg2EY0IGfzXyRwSLgbhXcg/Y4qR2ZfSFukeL5XGkBXlmZI8
nVub4ErZ8949l5ZxNuv6IE20cRPIuTyMbi9VzS2ohox6nqMSY7nminz1frGvWHk=
=+y3C
-----END PGP SIGNATURE-----