SPHERE_GRID
Grids on a Sphere


SPHERE_GRID is a MATLAB library which constructs a variety of sets of points over the surface of a sphere in 3D.

A grid on a sphere may mean a set of points, or a set of points and lines that connect them, or a set of points, lines that connect them, and the faces that are bounded by those lines.

A grid may be desired which simply organizes areas. In that case, something like the latitude and longitude lines on a globe may be sufficient, even though "evenly spaced" latitude and longitude lines result in grid cells that are close to rectangular near the equator, but become more asymmetric near the poles.

A grid may also be desired for sampling, that is, for choosing a set of points that are well spread across the sphere. A simple Monte Carlo approach can be used, although this means that the data is only well spread out in the long view; there may be local clusters and gaps.

Other grids are generated by drawing a spiral on the surface of the sphere, and choosing points at regular spacings along that line, or by projecting an icosahedron onto the surface of the sphere, which divides the surface into 20 congruent spherical triangles, and then dealing with the simpler issue of choosing points from the triangles.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

SPHERE_GRID is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

BALL_GRID, a MATLAB library which computes a grid of points over the interior of a ball in 3D.

CIRCLE_ARC_GRID, a MATLAB program which computes points equally spaced along a circular arc;

CUBE_GRID, a MATLAB library which computes a grid of points over the interior of a cube in 3D.

DISK_GRID, a MATLAB library which computes a grid of points over the interior of a disk in 2D.

ELLIPSE_GRID, a MATLAB library which computes a grid of points over the interior of an ellipse in 2D.

ELLIPSOID_GRID, a MATLAB library which computes a grid of points over the interior of an ellipsoid in 3D.

HYPERCUBE_GRID, a MATLAB library which computes a grid of points over the interior of a hypercube in M dimensions.

LINE_GRID, a MATLAB library which computes a grid of points over the interior of a line segment in 1D.

POLYGON_GRID, a MATLAB library which generates a grid of points over the interior of a polygon in 2D.

PYRAMID_GRID, a MATLAB library which computes a grid of points over the interior of the unit pyramid in 3D;

SIMPLEX_GRID, a MATLAB library which generates a grid of points over the interior of a simplex in M dimensions.

SPHERE_CVT, a MATLAB library which creates a mesh of well-separated points using Centroidal Voronoi Tessellations over the surface of the unit sphere in 3D.

SPHERE_DELAUNAY, a MATLAB program which computes the Delaunay triangulation of points on a sphere.

SPHERE_FIBONACCI_GRID, a MATLAB library which computes a grid of points using the Fibonacci spiral over the surface of a sphere in 3D.

SPHERE_GRID, a dataset directory which contains grids of points, lines, triangles or quadrilaterals on a sphere;

SPHERE_LEBEDEV_RULE, a MATLAB library which computes Lebedev quadrature rules over the surface of the unit sphere in 3D.

SPHERE_LLQ_GRID, a MATLAB library which uses longitudes and latitudes to create grids of points, lines, and quadrilaterals on the surface of the unit sphere in 3D.

SPHERE_STEREOGRAPH, a MATLAB library which computes the stereographic mapping between points on the unit sphere and points on the plane Z = 1.

SPHERE_LLQ_GRID, a MATLAB library which computes a grid of quadrilaterals bounded by latitude and longitude lines over the surface of a sphere in 3D.

SPHERE_LLT_GRID, a MATLAB library which computes a grid of triangles bounded by latitude and longitude lines over the surface of a sphere in 3D.

SPHERE_VORONOI, a MATLAB program which computes the Voronoi diagram of points on a sphere.

SPHERE_XYZ_DISPLAY, a MATLAB program which reads XYZ information defining points in 3D, and displays a unit sphere and the points in the MATLAB graphics window.

SPHERE_XYZ_DISPLAY_OPENGL, a C++ program which reads XYZ information defining points in 3D, and displays a unit sphere and the points, using OpenGL.

SPHERE_XYZF_DISPLAY, a MATLAB program which reads XYZF information defining points and faces, and displays a unit sphere, the points, and the faces, in the MATLAB graphics window. This can be used, for instance, to display Voronoi diagrams or Delaunay triangulations on the unit sphere.

SQUARE_GRID, a MATLAB library which computes a grid of points over the interior of a square in 2D.

TETRAHEDRON_GRID, a MATLAB library which computes a grid of points over the interior of a tetrahedron in 3D.

TRIANGLE_GRID, a MATLAB library which computes a grid of points over the interior of a triangle in 2D.

WEDGE_GRID, a MATLAB library which computes a grid of points over the interior of the unit wedge in 3D.

Reference:

  1. Edward Saff, Arno Kuijlaars,
    Distributing Many Points on a Sphere,
    The Mathematical Intelligencer,
    Volume 19, Number 1, 1997, pages 5-11.

Source Code:

Examples and Tests:

Data files and images of the sphere grids were created by the example program.

You can go up one level to the MATLAB source codes.


Last revised on 09 October 2012.