# distance calculations in s.surf.idw

Chris Skelly chris at mqatmos.cic.mq.edu.au
Wed Feb 12 10:20:11 EST 1992

```Hi out there,
I have two questions today...

1. Is there a FAQ (frequently asked questions) or FEP (frequently encountered
problems) list for grassp?

2. The following segment of code is from s.surf.idw main() and is used to
calculate the distance between points so that weights for interpolation
can be calculated based on the distance between them...

/* fill list with first nsearch points */
for (i = 0; i < nsearch ; i++)
{
dy = points[i].north - north;
dx = points[i].east  - east;
list[i].dist = dy*dy + dx*dx;
list[i].z = points[i].z;
}
/* find the maximum distance */
maxdist = list[max=0].dist;
for (n = 1; n < nsearch; n++)
{
if (maxdist < list[n].dist)
maxdist = list[max=n].dist;
}
/* go thru rest of the points now */
for ( ; i < npoints; i++)
{
dy = points[i].north - north;
dx = points[i].east  - east;
dist = dy*dy + dx*dx;

if (dist < maxdist)
{
/* replace the largest dist */
list[max].z = points[i].z;
list[max].dist = dist;
maxdist = list[max=0].dist;
for (n = 1; n < nsearch; n++)
{
if (maxdist < list[n].dist)
maxdist = list[max=n].dist;
}
}
}

My question here:  how does this work in the latitude longitude
system, where you really need some spherical geometry to calculate
distance?

thinking i've missed something (as usual) in Oz

chris

--
|\/\/\/|                             Chris Skelly
|      |                             School of Earth Sciences
|      |   High expolsives and       Macquarie University
|  (o)(o)   school do NOT mix.       North Ryde, 2109, NSW, OZ
C       _)                           Tel: 612-805-8433
|  ,___|                            Fax: 612-805-8428
|    /  chris at mqclimat.cic.mq.edu.au

```