Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
enjikaka committed Jan 20, 2024
1 parent 8f977bc commit 5a79ae8
Showing 1 changed file with 20 additions and 80 deletions.
100 changes: 20 additions & 80 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
Beaivi
=======

[![Build Status](https://travis-ci.org/mourner/suncalc.svg?branch=master)](https://travis-ci.org/mourner/suncalc)
[![Node.js CI](https://github.com/Glatek/beaivi/actions/workflows/nodejs.yml/badge.svg)](https://github.com/Glatek/beaivi/actions/workflows/nodejs.yml)

SunCalc is a tiny BSD-licensed JavaScript library for calculating sun position,
Beaivi is a tiny BSD-licensed JavaScript library for calculating sun position,
sunlight phases (times for sunrise, sunset, dusk, etc.),
moon position and lunar phase for the given location and time,
created by [Vladimir Agafonkin](http://agafonkin.com/en) ([@mourner](https://github.com/mourner))
as a part of the [SunCalc.net project](http://suncalc.net).
moon position and lunar phase for the given location and time.

The original code is from [SunCalc](https://github.com/mourner/suncalc) created by [Vladimir Agafonkin](http://agafonkin.com/en) ([@mourner](https://github.com/mourner)) as a part of the [SunCalc.net project](http://suncalc.net). This repo has updated to code to add types and ES modules.

Most calculations are based on the formulas given in the excellent Astronomy Answers articles
about [position of the sun](http://aa.quae.nl/en/reken/zonpositie.html)
Expand All @@ -20,36 +20,27 @@ in the [Twilight article on Wikipedia](http://en.wikipedia.org/wiki/Twilight).
## Usage example

```javascript
// get today's sunlight times for London
var times = SunCalc.getTimes(new Date(), 51.5, -0.1);

// format sunrise time from the Date object
var sunriseStr = times.sunrise.getHours() + ':' + times.sunrise.getMinutes();
import * as Beaivi from 'beaivi';

// get position of the sun (azimuth and altitude) at today's sunrise
var sunrisePos = SunCalc.getPosition(times.sunrise, 51.5, -0.1);
// Get today's sunlight times for London
const times = Beaivi.getTimes(new Date(), 51.5, -0.1);

// get sunrise azimuth in degrees
var sunriseAzimuth = sunrisePos.azimuth * 180 / Math.PI;
```
// Format sunrise time from the Date object
const sunriseStr = times.sunrise.getHours() + ':' + times.sunrise.getMinutes();

SunCalc is also available as an NPM package:
// Get position of the sun (azimuth and altitude) at today's sunrise
const sunrisePos = Beaivi.getPosition(times.sunrise, 51.5, -0.1);

```bash
$ npm install suncalc
// Get sunrise azimuth in degrees
const sunriseAzimuth = sunrisePos.azimuth * 180 / Math.PI;
```

```js
var SunCalc = require('suncalc');
```


## Reference

### Sunlight times

```javascript
SunCalc.getTimes(/*Date*/ date, /*Number*/ latitude, /*Number*/ longitude, /*Number (default=0)*/ height)
Beaivi.getTimes(/*Date*/ date, /*Number*/ latitude, /*Number*/ longitude, /*Number (default=0)*/ height)
```

Returns an object with the following properties (each is a `Date` object):
Expand All @@ -72,7 +63,7 @@ Returns an object with the following properties (each is a `Date` object):
| `dawn` | dawn (morning nautical twilight ends, morning civil twilight starts) |

```javascript
SunCalc.addTime(/*Number*/ angleInDegrees, /*String*/ morningName, /*String*/ eveningName)
Beaivi.addTime(/*Number*/ angleInDegrees, /*String*/ morningName, /*String*/ eveningName)
```

Adds a custom time when the sun reaches the given angle to results returned by `SunCalc.getTimes`.
Expand All @@ -83,7 +74,7 @@ Adds a custom time when the sun reaches the given angle to results returned by `
### Sun position

```javascript
SunCalc.getPosition(/*Date*/ timeAndDate, /*Number*/ latitude, /*Number*/ longitude)
Beaivi.getPosition(/*Date*/ timeAndDate, /*Number*/ latitude, /*Number*/ longitude)
```

Returns an object with the following properties:
Expand All @@ -97,7 +88,7 @@ Returns an object with the following properties:
### Moon position

```javascript
SunCalc.getMoonPosition(/*Date*/ timeAndDate, /*Number*/ latitude, /*Number*/ longitude)
Beaivi.getMoonPosition(/*Date*/ timeAndDate, /*Number*/ latitude, /*Number*/ longitude)
```

Returns an object with the following properties:
Expand All @@ -111,7 +102,7 @@ Returns an object with the following properties:
### Moon illumination

```javascript
SunCalc.getMoonIllumination(/*Date*/ timeAndDate)
Beaivi.getMoonIllumination(/*Date*/ timeAndDate)
```

Returns an object with the following properties:
Expand Down Expand Up @@ -140,7 +131,7 @@ The zenith angle can be used do draw the moon shape from the observers perspecti
### Moon rise and set times

```js
SunCalc.getMoonTimes(/*Date*/ date, /*Number*/ latitude, /*Number*/ longitude[, inUTC])
Beaivi.getMoonTimes(/*Date*/ date, /*Number*/ latitude, /*Number*/ longitude[, inUTC])
```

Returns an object with the following properties:
Expand All @@ -152,54 +143,3 @@ Returns an object with the following properties:

By default, it will search for moon rise and set during local user's day (frou 0 to 24 hours).
If `inUTC` is set to true, it will instead search the specified date from 0 to 24 UTC hours.

## Changelog

#### 1.8.0 — Dec 22, 2016

- Improved precision of moonrise/moonset calculations.
- Added `parallacticAngle` calculation to `getMoonPosition`.
- Default to today's date in `getMoonIllumination`.
- Fixed incompatibility when using Browserify/Webpack together with a global AMD loader.

#### 1.7.0 — Nov 11, 2015

- Added `inUTC` argument to `getMoonTimes`.

#### 1.6.0 — Oct 27, 2014

- Added `SunCalc.getMoonTimes` for calculating moon rise and set times.

#### 1.5.1 — May 16, 2014

- Exposed `SunCalc.times` property with defined daylight times.
- Slightly improved `SunCalc.getTimes` performance.

#### 1.4.0 — Apr 10, 2014

- Added `phase` to `SunCalc.getMoonIllumination` results (moon phase).
- Switched from mocha to tape for tests.

#### 1.3.0 — Feb 21, 2014

- Added `SunCalc.getMoonIllumination` (in place of `getMoonFraction`) that returns an object with `fraction` and `angle`
(angle of illuminated limb of the moon).

#### 1.2.0 — Mar 07, 2013

- Added `SunCalc.getMoonFraction` function that returns illuminated fraction of the moon.

#### 1.1.0 — Mar 06, 2013

- Added `SunCalc.getMoonPosition` function.
- Added nadir (darkest time of the day, middle of the night).
- Added tests.

#### 1.0.0 — Dec 07, 2011

- Published to NPM.
- Added `SunCalc.addTime` function.

#### 0.0.0 — Aug 25, 2011

- First commit.

0 comments on commit 5a79ae8

Please sign in to comment.