Документ взят из кэша поисковой машины. Адрес оригинального документа : 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
Кодировка:

Поисковые слова: п п п п п п п п п п п п п п п п п п п п п
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