Permalink
Browse files

readme updated and more experiments in libs

  • Loading branch information...
DouglasAllen committed Jun 12, 2014
1 parent 4a6bc96 commit 174fb7247133f5f29d1302e566d3a93a9f93f2c2
View
@@ -1,8 +1,14 @@
sofa_adaptations_in_Ruby
=======================
-Attempts at testing and using SOFA libs in Ruby hopefully within compliance of the software license and usage.
+Attempts at testing and using SOFA libs in Ruby/JRuby FFI hopefully within compliance of the software license and usage.
+
+lib dir has libsofa_c.so Ruby and libsofa_c.a for C. include dir has the headers.
+
+libs dir is a breakdown of src to types of functions and reference. This is a work in progress and experimentation.
+
+You might want to try out celes from https://github.com/tohka/celes
+
+The official source code may be found at http://www.iausofa.org
-lib dir has a working shared object that may be used for all functions. see libs/libCalendars/test_libcalendars.rb
-so far it works with those. more to come.
View
@@ -0,0 +1,22 @@
+// in C, using the SOFA Library
+// put libsofa_c.a in your c lib
+// simple compile: gcc -o example_1 example_1.c -lsofa_c
+
+#include <stdio.h>
+#include "sofa.h"
+#include "sofam.h"
+
+int main() {
+
+ int status;
+ double djm0, djm;
+
+ status = iauCal2jd(2000, 1, 1, &djm0, &djm);
+
+ if(status){
+ printf("error or warning\n");
+ } else{
+ printf("Julian Days start at Noon and is %f\n", djm0 + djm + 0.5);
+ }
+ //=> Julian Day is 2451545.000000
+}

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -0,0 +1,200 @@
+#include "sofa.h"
+
+void iauNut06a(double date1, double date2, double *dpsi, double *deps)
+/*
+** - - - - - - - - - -
+** i a u N u t 0 6 a
+** - - - - - - - - - -
+**
+** IAU 2000A nutation with adjustments to match the IAU 2006
+** precession.
+**
+** Given:
+** date1,date2 double TT as a 2-part Julian Date (Note 1)
+**
+** Returned:
+** dpsi,deps double nutation, luni-solar + planetary (Note 2)
+**
+** Status: canonical model.
+**
+** Notes:
+**
+** 1) The TT date date1+date2 is a Julian Date, apportioned in any
+** convenient way between the two arguments. For example,
+** JD(TT)=2450123.7 could be expressed in any of these ways,
+** among others:
+**
+** date1 date2
+**
+** 2450123.7 0.0 (JD method)
+** 2451545.0 -1421.3 (J2000 method)
+** 2400000.5 50123.2 (MJD method)
+** 2450123.5 0.2 (date & time method)
+**
+** The JD method is the most natural and convenient to use in
+** cases where the loss of several decimal digits of resolution
+** is acceptable. The J2000 method is best matched to the way
+** the argument is handled internally and will deliver the
+** optimum resolution. The MJD method and the date & time methods
+** are both good compromises between resolution and convenience.
+**
+** 2) The nutation components in longitude and obliquity are in radians
+** and with respect to the mean equinox and ecliptic of date,
+** IAU 2006 precession model (Hilton et al. 2006, Capitaine et al.
+** 2005).
+**
+** 3) The function first computes the IAU 2000A nutation, then applies
+** adjustments for (i) the consequences of the change in obliquity
+** from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the
+** secular variation in the Earth's dynamical form factor J2.
+**
+** 4) The present function provides classical nutation, complementing
+** the IAU 2000 frame bias and IAU 2006 precession. It delivers a
+** pole which is at current epochs accurate to a few tens of
+** microarcseconds, apart from the free core nutation.
+**
+** Called:
+** iauNut00a nutation, IAU 2000A
+**
+** References:
+**
+** Chapront, J., Chapront-Touze, M. & Francou, G. 2002,
+** Astron.Astrophys. 387, 700
+**
+** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977,
+** Astron.Astrophys. 58, 1-16
+**
+** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res.
+** 107, B4. The MHB_2000 code itself was obtained on 9th September
+** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A.
+**
+** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
+** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
+**
+** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999,
+** Astron.Astrophys.Supp.Ser. 135, 111
+**
+** Wallace, P.T., "Software for Implementing the IAU 2000
+** Resolutions", in IERS Workshop 5.1 (2002)
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ double t, fj2, dp, de;
+
+
+/* Interval between fundamental date J2000.0 and given date (JC). */
+ t = ((date1 - DJ00) + date2) / DJC;
+
+/* Factor correcting for secular variation of J2. */
+ fj2 = -2.7774e-6 * t;
+
+/* Obtain IAU 2000A nutation. */
+ iauNut00a(date1, date2, &dp, &de);
+
+/* Apply P03 adjustments (Wallace & Capitaine, 2006, Eqs.5). */
+ *dpsi = dp + dp * (0.4697e-6 + fj2);
+ *deps = de + de * fj2;
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
Oops, something went wrong.

0 comments on commit 174fb72

Please sign in to comment.