GNU Octave is a (mostly Matlab® compatible) high-level language, primarily intended for numerical computations. It provides a convenient command-line interface for solving linear and nonlinear problems numerically.
Octave uses some of the best and most respected numerical libraries as balgen, dassl, eispack, fftpack, lapack, linpack, minpack, odepack, ranlib, slatec-fn and villad. Octave can be dynamically extended with user-supplied C++ files.
The mapping toolbox includes functions for computing angular distances and displacements between points on a sphere, as well as the great circle azimuth. This Octave add-on package is part of the Octave-Forge project.
Homepage
http://www.gnu.org/software/octave/
License
GNU General Public License (GPL) version 3
* "Bringing GIS to Octave" (PDF)
* Mapping toolbox function reference
Open a terminal and start the program by typing "octave".
• Which way to Barcelona from Sydney?
sydney = [-33.8750 151.2005]
barcelona = [41+23/60 2+11/60]
dirn = azimuth(sydney, barcelona)
deg_symb = 176;
disp(['Heading: ' num2str(dirn) deg_symb])
• How far's the trip? (roughly)
system('proj -le')
wgs84_a = 6378137.0 % major radius of the Earth, in meters
dist_deg = distance(sydney, barcelona)
dist_meters = pi * wgs84_a * (dist_deg / 360.0)
disp(['Distance: ' num2str(dist_meters / 1000) ' km'])
Type "exit" to leave.