Re: interpolation of angular data (interpolation in a circle) [message #79802] |
Tue, 10 April 2012 18:41  |
Russell[1]
Messages: 101 Registered: August 2011
|
Senior Member |
|
|
On Apr 10, 6:48 pm, Ed Hyer <ejh...@gmail.com> wrote:
> IDL geniuses,
>
> In my specific case, it is not interpolation across the international dateline, but instead interpolation across midnight, but it's the same problem. Can anyone point me to a resource on how this is done properly?
>
> Relatedly, I have found myself using a call that looks like:
> interpolated_data = INTERPOLATE(DATA,INTERPOL(OUTPUT_INDEX, OUTPUT_LOCATION, DATA_LOCATION))
> Is it actually necessary to use both INTERPOLATE() and INTERPOL(), or am I doing this wrong?
>
> Thanks,
>
> --Edward H.
I'm still not 100% sure what you're trying to do with the
interpolation across midnight issue, but if you're working with times,
then why not convert everything to Julian date, do your operations,
then convert back? Okay, you'll need to keep a few double precision
numbers around, but that seems like a simple request.
The second answer, Yes that's how you do it.
Russell
|
|
|
Re: interpolation of angular data (interpolation in a circle) [message #79951 is a reply to message #79802] |
Tue, 10 April 2012 22:09  |
MarioIncandenza
Messages: 231 Registered: February 2005
|
Senior Member |
|
|
On Tuesday, April 10, 2012 6:41:38 PM UTC-7, Russell wrote:
Russell,
Yes, everything starts as Julian dates. To describe the problem better: I have data at irregular intervals from T to T+24 hours. I wish to generate from these data an interpolated 24-hour curve, that describes a diurnal cycle. I can do this at face value, but then my curve has a discontinuity. For instance, if the first observation is at T=2 hours and the last is at T=22, I want the interpolation to use both of these observations to generate the curve for T=0,1,23, and 24 hours.
This is directly analogous to trying to interpolate observations to make a continuous transect of longitude around the equator.
The answer just hit me, it's something like this:
OBS_TO_INTERPOLATE = [OBS, OBS, OBS]
T_TO_INTERPOLATE = [T_OBS-1,T_OBS,T_OBS+1]
Then I can take the middle of the curve interpolated from these values and it will be continuous.
Thanks for the answer re: INTERPOL/INTERPOLATE.
--Edward H.
|
|
|