Giter Site home page Giter Site logo

scratch's Introduction

Octave/MATLAB implementation of GeographicLib

Contents:

Introduction

This toolbox provides native MATLAB implementations of a subset of the C++ library, GeographicLib. Key components of this toolbox are

  • Geodesics, direct, inverse, area calculations.
  • Projections, transverse Mercator, polar stereographic, etc.
  • Grid systems, UTM, UPS, MGRS.
  • Geoid lookup, egm84, egm96, egm2008 geoids supported.
  • Geometric transformations, geocentric, local cartesian.
  • Great ellipse, direct, inverse, area calculations.

All the functions are vectorized and so offer speeds comparable to compiled C++ code when operating on arrays.

Some common features of these functions:

  • Angles (latitude, longitude, azimuth, meridian convergence) are measured in degrees.
  • Distances are measured in meters, areas in meters^2.
  • Latitudes must lie in [-90, 90]. Latitudes outside this range are treated in NaNs
  • The ellipsoid is specified as [a, e], where a = equatorial radius and e = eccentricity. The eccentricity can be pure imaginary to denote a prolate ellipsoid.
  • Keep |e| < 0.2 (i.e., |f| <= 1/50) for full double precision accuracy.

There is some overlap between this toolbox and MATLAB's Mapping Toolbox. However, this toolbox offers:

  • better accuracy;
  • treatment of oblate and prolate ellipsoid;
  • guaranteed convergence for geoddistance;
  • calculation of area and differential properties of geodesics;
  • ellipsoidal versions of the equidistant azimuthal and gnomonic projections.

Installation

The Octave/MATLAB packages are available on SourceForge and MATLAB Central.

Tha Octave package can be installed with the command

pkg install geographiclib-octave-M.N.tar.gz
pkg load geographiclib

The MATLAB toolbox can be installed with the command

matlab.addons.install geographiclib_toolbox-M.N.mltbx

Function summary

Click on the function name for the definition of the function.

Geodesics

  • geoddistance - Distance between points on an ellipsoid
  • geodreckon - Point at specified azimuth, range on an ellipsoid
  • geodarea - Surface area of polygon on an ellipsoid

Projections

  • tranmerc_fwd - Forward transverse Mercator projection
  • tranmerc_inv - Inverse transverse Mercator projection
  • polarst_fwd - Forward polar stereographic projection
  • polarst_inv - Inverse polar stereographic projection
  • eqdazim_fwd - Forward azimuthal equidistant projection
  • eqdazim_inv - Inverse azimuthal equidistant projection
  • cassini_fwd - Forward Cassini-Soldner projection
  • cassini_inv - Inverse Cassini-Soldner projection
  • gnomonic_fwd - Forward ellipsoidal gnomonic projection
  • gnomonic_inv - Inverse ellipsoidal gnomonic projection

Grid systems

  • utmups_fwd - Convert to UTM/UPS system
  • utmups_inv - Convert from UTM/UPS system
  • mgrs_fwd - Convert UTM/UPS coordinates to MGRS
  • mgrs_inv - Convert MGRS to UTM/UPS coordinates

Geoid lookup

  • geoid_height - Compute the height of the geoid above the ellipsoid
  • geoid_load - Load a geoid model

Geometric transformations

  • geocent_fwd - Conversion from geographic to geocentric coordinates
  • geocent_inv - Conversion from geocentric to geographic coordinates
  • loccart_fwd - Convert geographic to local cartesian coordinates
  • loccart_inv - Convert local cartesian to geographic coordinates

Great ellipses

  • gedistance - Great ellipse distance on an ellipsoid
  • gereckon - Point along great ellipse at given azimuth and range

Utility

  • defaultellipsoid - Return the WGS84 ellipsoid
  • ecc2flat - Convert eccentricity to flattening
  • flat2ecc - Convert flattening to eccentricity
  • geographiclib_test - The test suite for the geographiclib package
  • geographiclib_signtest - Another test suite

Documentation

  • geoddoc - Geodesics on an ellipsoid of revolution
  • projdoc - Projections for an ellipsoid
  • gedoc - Great ellipses on an ellipsoid of revolution

Changes

See the change log.

Other links

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.