Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.ipa.nw.ru/conference/wpltn2012/docs/25/1400%20pavlov.pdf
Дата изменения: Mon Oct 1 12:19:00 2012
Дата индексирования: Sun Feb 3 17:48:48 2013
Кодировка:

Поисковые слова: http www.astronomy.ru forum index.php topic 4644.0.html
The ERA Software System
Current State and Future Evolution

Alexander Fishkov, Dmitry Pavlov, Vladimir Skripnichenko Institute of Applied Astronomy RAS, St. Petersburg, Russia September 25, 2012


ERA: Ephemeris Research in Astronomy

· ·

Domain-specific language for astronomy research (SLON) Integrated research environment: editor and interpreter for SLON programs, graphic facilities, table editor

2


Purpose of ERA

· · · · · ·

Building high-precision numerical theories for the Solar system bodies Integrating motion of artificial satellites Planning of observations Handling observations of various types: position, differential, eclipses, occultations, radar ranging, LLR, SLR, pseudorange, VLBI Determining Solar system bodies' parameters Checking fundamental laws and properties of the Solar system (GRT, dark matter, change of Sun's GM)

3


SLON Language

· · · · · ·

High-level domain-specific language Syntax is based on tabular data representation and operations on tables Built-in functions specific for astronomical tasks, including transition between various systems of units COMPUTE: processing of observations INTEGRATOR: integration of equations of celestial bodies' motion, including artificial satellites LSM_PROCESSOR: adjustment of parameters (positions, velocities, GM, H2, L2, J2, ...) according to observations

4


Example SLON Program Calculating O-C for LLR Data
CE RGA _O BS := // MJ D(d at e), hum idi ty / 48 01 4. 916 34 338 35 , 48 01 4. 926 26 193 39 , 48 01 4. 938 00 463 22 , 48 01 4. 947 07 817 90 , 48 01 5. 838 22 636 97 , 48 01 5. 849 45 552 86 , 48 01 5. 937 08 895 14 , 48 01 5. 949 17 385 46 , 48 01 5. 960 73 395 85 , 48 01 5. 970 41 060 84 , 48 01 6. 771 27 957 96 , 48 01 6. 904 68 544 00 , 48 01 6. 929 52 930 76 , 48 01 6. 947 62 168 52 , 48 01 6. 971 93 186 88 , ; la nde rs := // m (x _c rat e) , 15 91 95 5.0 09 , 16 52 69 7.4 50 , 15 54 67 5.2 51 , 13 39 34 9.1 19 , st ati on s: = // m( px) , 54 92 41 4.2 17 , 54 92 03 7.5 04 , 46 15 32 8.5 12 , 59 71 47 0.7 71 , 54 91 88 8.2 25 , m(p y) , 3 23 569 7. 6 34, 3 23 614 6. 7 10, 4 38 935 4. 7 57, 2 24 219 7. 4 61, 3 23 648 1. 7 22, dm s( lon gi tud e) 25 55 840 .8 11, 25 55 902 .8 37, 65 517 .6 43, 20 34 438 .7 47, 25 55 905 .2 94, , n am e [1] "Mc Do n ald " "ML RS " "Ce rg a " / / / / m( y_c ra t e), 69 072 4. 7 83, - 52 097 1. 3 03, 9 812 0. 1 56, 80 189 3. 1 16, m (z _cr at e), n am e / 2 58 6 420 840 .9 , 2 58 8 145 757 .7 , 2 58 9 568 201 .7 , 2 59 1 502 684 .0 , 2 60 6 847 473 .3 , 2 60 7 316 228 .0 , 2 61 5 764 309 .2 , 2 61 7 778 243 .2 , 2 61 9 156 036 .7 , 2 62 0 949 375 .6 , 2 63 4 963 306 .3 , 2 63 4 692 546 .1 , 2 63 6 854 822 .2 , 2 63 8 837 702 .1 , 2 64 2 004 647 .4 , 3, 2, 1, 3, 3, 3, 3, 2, 1, 3, 3, 3, 3, 3, 3, 9 .6 , 9 .6 , 9 .3 , 9 .3 , 9 .8 , 9 .7 , 8 .1 , 6 .8 , 6 .4 , 6 .7 , 8 .0 , 8 .1 , 7 .3 , 6 .9 , 7 .0 , 8 78. 8, 8 78. 8, 8 78. 6, 8 78. 9, 8 77. 4, 8 77. 7, 8 77. 8, 8 77. 8, 8 77. 8, 8 77. 8, 8 76. 4, 8 77. 2, 8 76. 9, 8 76. 9, 8 76. 8, 51 / 50 / 50 / 50 / 56 / 57 / 57 / 62 / 62 / 61 / 81 / 69 / 74 / 76 / 75 // n s (ox ), n, t emp er at ure , p res sur e,

:= ( //x_crate, y_crate, z_crate, observation, o_cx, ranging_info,

px, py, longitude, object, object_info/

-, - , - , - , - , -, ranging, *, emitting, Moon, rectangular // * //date, ox, -, -, -, n, j, k, l , name[0:1] / *

-, - , - , - //

//wave_length, temperature, pressure, humidity/ m(0.532e-06), begin writeln("Lunar ranging, residuals, writeln("Calendar Date ":16, " l=table_size("CERGA_OBS") k=0 repeat k=k+1 station CERGA") Reflector") -, -, -// )

O-C (nsec)", "

read_table("CERGA_OBS",k,date,o_x,n,temperature,pressure,humidity) read_table("landers" ,n, x_crate,y_crate,z_crate,name) read_table("stations",3,px, py, longitude ,name[1]) o_cx=* compute writeln(date:calend:16:6, o_cx:ns:7:2, name:17) until k=l end.

21 005 .5 65, " Ap oll o 1 1" / -1 09 728 .5 67, " Ap oll o 1 4" / 7 65 006 .6 73, " Ap oll o 1 5" / 7 56 359 .8 83, " Lu nok ho d " //;

"Ha le a kal a" / "ML RS 1" // ;

5


Recent Improvements of ERA

· ·

Unified access to all major ephemeris: EPM (IAA), DE (JPL), and INPOP (IMCCE) Numerical integrator floating-point precision extended from 64-bit to 80-bit

6


Forward-Backward Integration (Moon, old integrator)

7


Forward-Backward Integration (Moon, new integrator)

8


Forward-Backward Integration (Mercury, old integrator)

9


Forward-Backward Integration (Mercury, new integrator)

10


New Version of ERA (ERA 8)

· · · · · ·

Completely rewritten from Delphi to: C for intensive calculations, Racket for logic and SLON language parser/compiler Portable across Windows/Linux, 32- and 64bit Better diagnostics and debugging facilities Delivered with detailed mathematical description of the calculations Has support for international PCK/SPK ephemeris file format Under active development for one year now

11


Long-term Plan for ERA Development

· · · ·

Automatic cross-compilation to bring ERA knowledge base to web applications, mobile devices, and high-performance clusters Web access to ERA + EPM ephemeris Improvement of SLON language to easier processing of observations, particularly LLR, ranging, and VLBI Allow easy extensibility for users
12