nrel-spa/.github/wiki/guides/quickstart.md
2026-05-29 07:15:55 -04:00

77 lines
1.9 KiB
Markdown

# Quick Start
Five minutes from install to solar position.
## Install
```sh
npm install nrel-spa
```
## Basic usage
```js
import { getSpa } from 'nrel-spa';
const result = getSpa(
new Date('2025-06-21T12:00:00Z'),
40.7128, // latitude
-74.0060, // longitude
-4, // UTC offset in hours (EDT)
);
console.log(result.zenith); // solar zenith angle in degrees
console.log(result.azimuth); // solar azimuth in degrees
console.log(result.sunrise); // fractional hours, e.g. 5.42
console.log(result.sunset); // fractional hours, e.g. 20.58
console.log(result.solarNoon); // fractional hours, e.g. 13.00
```
`getSpa` is synchronous. There is no initialization step, no WASM loading, no async overhead.
## Formatted output
```js
import { calcSpa } from 'nrel-spa';
const result = calcSpa(
new Date('2025-06-21T12:00:00Z'),
40.7128,
-74.0060,
-4,
);
console.log(result.sunrise); // "05:25:12"
console.log(result.sunset); // "20:34:47"
console.log(result.solarNoon); // "12:59:58"
```
## Custom zenith angles (twilight)
```js
import { getSpa } from 'nrel-spa';
const civil = getSpa(date, lat, lon, tz, {}, [96]); // civil twilight
const nautical = getSpa(date, lat, lon, tz, {}, [102]); // nautical twilight
const astro = getSpa(date, lat, lon, tz, {}, [108]); // astronomical twilight
console.log(civil.customAngles[0].sunrise); // civil dawn
console.log(nautical.customAngles[0].sunrise); // nautical dawn
```
## Options
```js
const result = getSpa(date, lat, lon, tz, {
elevation: 100, // metres above sea level
pressure: 1013.25, // millibars
temperature: 15, // Celsius
delta_t: 67, // ΔT in seconds
});
```
## Next steps
- [API Reference](../API-Reference) — full function signatures and return types
- [Architecture](../Architecture) — module structure and algorithm notes
- [Advanced Guide](advanced) — twilight, batch calculations, polar scenarios