# pspath documentation

pspath is part of Antarctic Mapping Tools for Matlab (Greene et al., 2017). Click here for a complete list of functions in AMT.

The pspath function returns coordinates a path with equal spacing in polar stereographic coordinates. This function might be used to find even spacing for common interpolation points along a satellite ground track.

## Syntax

```[lati,loni] = pspath(lat,lon,spacing)
[xi,yi] = pspath(x,y,spacing)
[...] = pspath(...,'method',InterpolationMethod)```

## Description

[lati,loni] = pspath(lat,lon,spacing) connects the geographic points lat,lon by a path whose points lati,loni are separated by spacing meters. If input coordinates are geo coordinates, output coodinates are also geo coordinates.

[xi,yi] = pspath(x,y,spacing) connects the polar stereographic points x,y by a path whose points xi,yi are separated by spacing meters. If input coordinates are polar stereographic coordinates, output coodinates are also polar stereographic coordinates.

[...] = pspath(...,'method',InterpolationMethod) specifies an interpolation method for path creation. Default is 'linear'.

## Example

AMT comes with some sample data. Consider this segment of a sample flight line:

```D = load('samplegrid.mat');
lat = D.lat(4000:10:5000);
lon = D.lon(4000:10:5000);
z = D.z(4000:10:5000);

% And perhaps there's some missing data:
lat([10 20:25 60:65 80:82]) = [];
lon([10 20:25 60:65 80:82]) = [];
z([10 20:25 60:65 80:82]) = [];

plotps(lat,lon,'ko-')
``` That flight line is not spaced very evenly. Perhaps you want equal spacing-- let's get a path with a point every 500 m:

```[lati,loni] = pspath(lat,lon,500);
plotps(lati,loni,'rx-')
``` Maybe you prefer spline interpolation:

```[lati_spline,loni_spline] = pspath(lat,lon,500,'method','spline');
plotps(lati_spline,loni_spline,'b^-')
``` We can zoom in for a closer look:

```axis([-1499557   -1495441    -468396    -465326])
``` With even spacing, it's now possible to interpolate data to a common spacing for easy intercomparison. This is ideal for interpolating to a common spacing for repeat-track analysis. That doesn't really match our sample data, but the point is illustrated nonetheless. For example, we can interpolate the z data from the sample flight. If everything is in terms of path distance as the independent variable, use pathdistps to interpolate to

```d = pathdistps(lat,lon);
di = pathdistps(lati,loni);
zi = interp1(d,z,di);

figure
plot(d,z,'ko')
hold on
plot(di,zi,'b.-')
``` We can even compare that to other datasets:

```plot(di,bedmap2_interp(lati,loni,'surfw'),'r')
plot(di,cryosat2_interp(lati,loni),'g')

legend('original flight data','100 m flight data','bedmap2','cryosat2')
``` Note: The CryoSat-2 elevations seem silly compared to the other data, but there's a good chance they're right. I originally made the sample dataset by adding some noise to Bedmap2.

## Citing AMT

If this function or any other part of Antarctic Mapping Tools is useful for you, please cite the paper that describes AMT.

Greene, C. A., Gwyther, D. E., & Blankenship, D. D. Antarctic Mapping Tools for Matlab. Computers & Geosciences. 104 (2017) pp.151-157. doi:10.1016/j.cageo.2016.08.003.

## Author Info

This function was created by Chad A. Greene of the University of Texas at Austin Institute for Geophysics (UTIG), April 2016.