PHPackages                             nastasin/swephetest - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. nastasin/swephetest

ActiveLibrary

nastasin/swephetest
===================

Wrapper for Swiss Ephemeris swisseph command - swetest. Can be used to get planetary positions for specified location and time.

7502PHP

Since Feb 17Pushed 4y ago1 watchersCompare

[ Source](https://github.com/nastal/swephe-php)[ Packagist](https://packagist.org/packages/nastasin/swephetest)[ RSS](/packages/nastasin-swephetest/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Simple swiss ephemeris wrapper
==============================

[](#simple-swiss-ephemeris-wrapper)

This package is a simple wrapper around swiss ephemeris test command to gain planetary positions with '-sid1' option by default to apply Siderial (Lahiri Ayanamsha) calculations.

You can find more docs explaining options on [Swiss Ephemeris Test Page ](https://www.astro.com/swisseph/swetest.htm)

This repository includes following ephemeris files for a period 1800 AD – 2399 AD:

- sepl\_18.se1 = Planetary file
- semo\_18.se1 = Moon file
- seas\_18.se1 = Main asteroid file
- swetest = executable file

Requirements
------------

[](#requirements)

This package were tested with builds based on Linux (Ubuntu) and PHP 7.4-fpm and PHP 8.0-fpm Additional packages already included in composer file.

Features
--------

[](#features)

- Build-in step and step size options to get planetary positions for period with one execution.
- Accepts Carbon object with UTC, in result output you
- By default calculates Sun and Moon positions.
- Accepts decimal Latitude and Longitude for geo position.
- Elevation level
- Outputs [Laravel collection](https://laravel.com/docs/master/collections) of mapped data

Usage and code examples
-----------------------

[](#usage-and-code-examples)

Install with `composer require nastasin/swephetest`

```
use Carbon\Carbon;
use Nastasin\SwissEpheWrapper\SwissEpheWrapper;

//Sun and Moon longitude positions by default
$options = [
    SwissEpheWrapper::OPT_DATETIME => Carbon::now()->setTimezone('UTC'), //UTC required
    SwissEpheWrapper::OPT_LNG => 24.105078, //coordinates for city (Riga/Europe in example)
    SwissEpheWrapper::OPT_LAT => 56.946285
];

$planetary = new SwissEpheWrapper($options);

$planetary->get()

```

### outputs:

[](#outputs)

```
Illuminate\Support\Collection {#7 ▼
#items: array:1 [▼
    0 => Illuminate\Support\Collection {#5 ▼
      #items: array:3 [▼
        0 => array:2 [▼
          0 => 303.868487 //Sun longitude at present day
          1 => 1.0092834 //Sun speed longitude decimal (degrees/day)
        ]
        1 => array:2 [▼
          0 => 124.2552189 //Moon longitude at present day
          1 => 12.7868005 //Moon speed longitude decimal (degrees/day)
        ]
        2 => Carbon\Carbon @1645033465 { ▼
          ...
          date: 2022-02-16 17:44:25.800801 UTC (+00:00) //Carbon::now(at a moment of example)
        }
      ]
    }
]
}

```

---

With explained options. Moon longitude for 2 consecutive days, starts from on 1 March 2022 12:00 UTC

```
use Carbon\Carbon;
use Nastasin\SwissEpheWrapper\SwissEpheWrapper;

$time = Carbon::parse('1-03-2022 12:00:00')->setTimezone('UTC');

$options = [
    SwissEpheWrapper::OPT_DATETIME => $time,
    SwissEpheWrapper::OPT_LNG => 24.105078, //for Riga/Europe
    SwissEpheWrapper::OPT_LAT => 56.946285,
    SwissEpheWrapper::OPT_GEOPOS    => 'geopos',
    SwissEpheWrapper::OPT_PARAMS    => 'l', //get only longitude (long. and long speed by default)
    SwissEpheWrapper::OPT_PLIST     => SwissEpheWrapper::MOON, //only Moon
    SwissEpheWrapper::OPT_STEP      => 2, //two consecutive days
    SwissEpheWrapper::OPT_STEPSIZE  => 1,
    SwissEpheWrapper::OPT_ELEVATION => 20 //20m above sea level
];

$planetary = new SwissEpheWrapper($options);

$planetary->get();

```

### outputs:

[](#outputs-1)

```
^ Illuminate\Support\Collection {#8 ▼
  #items: array:2 [▼
    0 => Illuminate\Support\Collection {#7 ▼
      #items: array:2 [▼
        0 => array:1 [▼
          0 => 300.5799517
        ]
        1 => Carbon\Carbon @1646136000 {#15 ▼
          ...
          date: 2022-03-01 12:00:00.0 UTC (+00:00)
        }
      ]
    }
    1 => Illuminate\Support\Collection {#5 ▼
      #items: array:2 [▼
        0 => array:1 [▼
          0 => 314.7017604
        ]
        1 => Carbon\Carbon @1646222400 {#16 ▼
          ...
          date: 2022-03-02 12:00:00.0 UTC (+00:00)
        }
      ]
    }
  ]
}

```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity27

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a27e8970fa049627030c507c39e76d3dc9ce795abbd172a6b7beb8c9226e8495?d=identicon)[nastal](/maintainers/nastal)

---

Top Contributors

[![nastal](https://avatars.githubusercontent.com/u/5666603?v=4)](https://github.com/nastal "nastal (8 commits)")

### Embed Badge

![Health badge](/badges/nastasin-swephetest/health.svg)

```
[![Health](https://phpackages.com/badges/nastasin-swephetest/health.svg)](https://phpackages.com/packages/nastasin-swephetest)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
