Skip to main content

Construction of Fibonacci grid

Project description

https://github.com/TUW-GEO/fibgrid/actions/workflows/ci.yml/badge.svg https://coveralls.io/repos/github/TUW-GEO/fibgrid/badge.svg?branch=master https://badge.fury.io/py/fibgrid.svg https://readthedocs.org/projects/fibgrid/badge/?version=latest

Fibonacci grid

The Fibonacci Grid is a method for distributing points uniformly across the surface of a sphere. It is inspired by the Fibonacci sequence and the golden angle to ensure a near-equal area distribution of points, making it ideal for applications that require unbiased global sampling. Points are systematically spaced in latitude and longitude, avoiding clustering at the poles, which is a common issue with traditional latitude-longitude grids.

Constructing the grid involves distributing points along the vertical axis of the sphere (latitude) and rotating them around the sphere’s horizontal axis (longitude) based on the golden angle. This deterministic approach is computationally efficient and scales easily by adjusting the number of points. The resulting grid is particularly suitable for representing global data with uniform coverage, making it useful for tasks like climate modeling, ocean simulation, and satellite data representation.

The Fibonacci Grid is valued for its simplicity and uniformity, offering an effective balance between computational efficiency and spatial accuracy. While it does not achieve exact equal-area partitioning or hierarchical refinement like some specialized grids, its versatility and ease of implementation make it a popular choice for applications requiring discrete global grids.

In the context of transforming Fibonacci grid points to an ellipsoid, the coordinates are first calculated on a sphere and then each point is projected onto the ellipsoidal surface. This two-step process ensures that the initial uniform distribution of points across the sphere is preserved while adapting the grid to the Earth’s ellipsoidal shape. Once transformed to the ellipsoid, the grid becomes compatible with real-world geodetic Coordinate Reference Systems (CRS) like WGS84, allowing seamless integration with e.g. satellite data. However, a disadvantage is that the transformation may introduce slight non-uniformities, as the ellipsoid’s curvature differs from that of the sphere. These distortions are typically minor and acceptable for most applications but could be a limitation in scenarios requiring exact equal-area distributions.

Grid construction

Creating a Fibonacci grid based on a given number of points.

from fibgrid.construction import compute_fib_grid

n = 6600000
points, gpi, lon, lat = compute_fib_grid(n)

Grid realization

Three different Fibonacci grids can be directly loaded with different sampling distances (6.25 km, 12.5 km and 25 km). Each grid is given in spherical and WGS84 latitude and longitude coordinates.

  • approx. 6.25 km (N=6,600,000)

  • approx. 12.5 km (N=1,650,000)

  • approx. 25 km (N=430,000)

from fibgrid.realization import FibGrid

sampling = 12.5
sphere_fb = FibGrid(sampling, geodatum="sphere")
wgs84_fb = FibGrid(sampling, geodatum="WGS84")

Citation

https://zenodo.org/badge/DOI/10.5281/zenodo.14187001.svg

If you use the software in a publication then please cite it using the Zenodo DOI. Be aware that this badge links to the latest package version.

Please select your specific version at https://doi.org/10.5281/zenodo.14187001 to get the DOI of that version. You should normally always use the DOI for the specific version of your record in citations. This is to ensure that other researchers can access the exact research artefact you used for reproducibility.

You can find additional information regarding DOI versioning at http://help.zenodo.org/#versioning

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fibgrid-0.0.9.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fibgrid-0.0.9-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file fibgrid-0.0.9.tar.gz.

File metadata

  • Download URL: fibgrid-0.0.9.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for fibgrid-0.0.9.tar.gz
Algorithm Hash digest
SHA256 6b804712c7aa098090df87cf09a8ea21d35fa2ecb4c39a584645ecba11f97b36
MD5 45da143bbf467eb4bf494452e621012d
BLAKE2b-256 a0dd24938c8693d1bd95aec8ae50a6e0c81136959acb923e94833c4ed0cdc2c9

See more details on using hashes here.

File details

Details for the file fibgrid-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: fibgrid-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for fibgrid-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 a5bf7b40af3a761931ed29a0bb493710d7ebe7eaa34650b53725834eb696c3bc
MD5 1caddaa689dc3c079614642ff28d1196
BLAKE2b-256 149af0919b3dc4a2adbce16ed1e1bb0464ae981cae454ee8538de67d9c280e05

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page