Project

swe4r

0.01
No commit activity in last 3 years
No release in over 3 years
A C extension for the Swiss Ephemeris library (http://www.astro.com/swisseph/)
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Swe4r (Swiss Ephemeris 2.0 for Ruby)¶ ↑

The Swe4r rubygem provides a C extension for the standard functions of the Swiss Ephemeris API.

This version has been updated to use the latest (fev/2014) Swiss Ephemeris API.

Installation¶ ↑

Install the gem as usual:

[sudo] gem install swe4r

Methods¶ ↑

The following functions of the Swiss Ephemeris API are supported…

swe_calc_ut

Calculation of planets, moon, asteroids, lunar nodes, apogees, fictitious bodies

swe_houses

This function computes house cusps, ascendant, midheaven, etc

swe_set_ephe_path

Set directory path of ephemeris files (not required for Moshier Ephemeris)

swe_julday

Get the Julian day number from year, month, day, hour

swe_set_topo

Set the geographic location for topocentric planet computation

swe_set_sid_mode

This function can be used to specify the mode for sidereal computations

swe_get_ayanamsa

This function computes the ayanamsha, the distance of the tropical vernal point from the sidereal zero point of the zodiac

Examples¶ ↑

The following example demonstrates how to calculate the position of a celestial body such as a planet using the swe_calc_ut function

require 'swe4r'

# Date Information
year = 2012
month = 5
day = 14
hour = 10.15

# Geographic Location
longitude = -112.183333
latitidue = 45.45
altitude = 1468

# Get the Julian day number
jd = Swe4r::swe_julday(year, month, day, hour)

# Set the geographic location for topocentric positions
Swe4r::swe_set_topo(longitude, latitidue, altitude)

# Set the sidereal mode for sidereal positions
Swe4r::swe_set_sid_mode(Swe4r::SE_SIDM_LAHIRI, 0, 0)

# Get the ayanamsha (the distance of the tropical vernal point from the sidereal zero point of the zodiac)
ayanamsha = Swe4r::swe_get_ayanamsa_ut(jd)

# Calculate the position of the Sun
# Use the Moshier Ephemeris (does not require ephemeris files)
# Get high precision speed and sidereal/topocentric positions
body = Swe4r::swe_calc_ut(jd, Swe4r::SE_SUN, Swe4r::SEFLG_MOSEPH|Swe4r::SEFLG_SPEED|Swe4r::SEFLG_TOPOCTR|Swe4r::SEFLG_SIDEREAL)

# Print the results
puts "Longitude: #{body[0]}"
puts "Latitude: #{body[1]}"
puts "Distance in AU: #{body[2]}"
puts "Speed in longitude (deg/day): #{body[3]}"
puts "Speed in latitude (deg/day): #{body[4]}"
puts "Speed in distance (AU/day): #{body[5]}"
puts "Ayanamsha: #{ayanamsha}"

The following example demonstrates how to calculate house cusps, the ascendant, midheaven, and other points on the zodiac using the swe_houses function

require 'swe4r'

# Date Information
year = 2012
month = 5
day = 14
hour = 10.15

# Geographic Location
longitude = -112.183333
latitidue = 45.45
altitude = 1468

# Get the Julian day number
jd = Swe4r::swe_julday(year, month, day, hour)

# Get house details using the Placidus house system
houses = Swe4r::swe_houses(jd, latitidue, longitude, 'P')

# Print the house cusps
(1..12).each do |i|
  puts "House ##{i} Cusp: #{houses[i]}"
end

# Print ascendant, midheaven, etc
puts "Ascendant: #{houses[13]}"
puts "Midheaven (MC): #{houses[14]}"
puts "ARMC: #{houses[15]}"
puts "Equatorial Ascendant: #{houses[16]}"
puts "Co-Ascendant (Walter Koch): #{houses[17]}"
puts "Co-Ascendant (Michael Munkasey): #{houses[18]}"
puts "Polar Ascendant (M. Munkasey) : #{houses[19]}"

License¶ ↑

Swe4r is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Swe4r is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Swe4r. If not, see www.gnu.org/licenses/.