88 DAFTAR PUSTAKA Admiranto, A.G. 2000. Tata Surya dan Alam
Transcription
88 DAFTAR PUSTAKA Admiranto, A.G. 2000. Tata Surya dan Alam
DAFTAR PUSTAKA Admiranto, A.G. 2000. Tata Surya dan Alam Semesta. Penerbit Kanisius, Yogyakarta. Alvarez, W. dan R. A. Muller 1984. Evidence from crater ages for periodic impacts on the earth. Nature 308, 718-720. Alvarez, L.W. 1983. Experimental evidence that an asteroid impact led to the extinction of many species 65 million years ago. PNAS 80, 627-642. Atkinson, H., C. Tickell, dan D. Williams 2000. Report of the Task Force on potentially hazardous near earth objects. British National Space Center, London (http://www.nearearthobjects.co.uk). Becker, L., R.J. Poreda, A.R, Basu, K.O. Pope, T. M. Harrison, C. Nicholson dan R. Lasky 2004. Bedout: A possible end-Permian impact crater offshore of northwestern Australia. Science 304, 1469-1476. (www.sciencemag.org). Binzel, R.P., D.F. Lupishko, M. Di Martino, R.J. Whiteley, G.J. Hahn 2002. Physical properties of Near-Earth Object. Dalam Asteroids III, W.F. Bottke Jr. A. Cellino, P. Paolicchi, dan R.P. Binzel, ed., University of Arizona Press, Tucson, hlm. 255-271. Binzel, R.P., M.S. Hanner, dan D.I. Steel 2000. Solar system small bodies. Dalam Allen’s astrophysical quantities fourth edition, A. N. Cox., ed., AIP PRESS SpringerVerlag Inc, New York, hlm. 315-337. Bowell, E., B. Hapke, D. Domingue, K. Lumme, J. Peltoniemi dan A.W. Harris 1989. Application of photometric models to asteroids. Dalam Asteroids II, R.P. Binzel, T. Gehrels, dan M.S. Matthews, ed., The University of Arizona Press, Tucson, hlm. 524-556. Britt, D.T., D.K. Yeomans, K. Housen, dan G. Consolmagno 2002. Asteroid density, porosity, and structure. Dalam Asteroids III, W.F. Bottke Jr. A. Cellino, P. Paolicchi, dan R.P. Binzel, ed., University of Arizona Press, Tucson, hlm. 485-500. Chapman, C.R. 2004. The hazard of near-Earth asteroid impacts on earth. Earth and Planetary Science Letters 222, 1-15. Chapman, C.R., dan D. Morrison 1994. Impacts on the earth by asteroids and comets: assessing the hazard. Nature 367, 33-40. Chesley, S.R., P.W. Chodas, A. Milani, G. B. Valsecchi, dan D. K. Yeomans 2002. Quantifying the risk posed by potential Earth impacts. Icarus 159, 423-432. 88 Cox, A.N. 2000. General constants and units. Dalam Allen’s astrophysical quantities fourth edition, A. N. Cox., ed., AIP PRESS Springer-Verlag Inc, New York, hlm. 7-25. Corliss, W.R. 1996. Target: south america. Science Frontiers Online No. 103: Jan – Feb 1996 . (http://www.science-frontiers.com/sf103/sf103g08.htm). Cunningham, C.J. 1988. Introduction to Asteroids. Willmann-Bell Inc, USA. De Pater, I. dan J.J. Lissauer 2005. Planetary Sciences. Cambridge University Press, United Kingdom. Dermawan, B. 2004. Impact hazard of asteroids in this century. 13th Indonesian scientific conference in Japan proceedings, hlm 1-7. Earle, S. 2004. Double jeopardy at the end of the Permian - new evidence for a large impact. (http://www.mala.bc.ca/~earles/bedout-jun04.htm). Farinella, P., L. Foschini, Ch. Froesché, R. Gonczi, T.J. Jopek, G. Longo, dan P. Michel 2001. Probable asteroidal origin of the Tunguska Cosmic Body. Astronomy and Astrophysics 377, 1081-1097. Harris, A.W. 2004. Scientific requirements for understanding the near-Earth asteroid population. Dalam Mitigation of hazardous comets and asteroids, M.J.S. Belton, T.H. Morgan, N. Samarasinha, D.K. Yeomans, ed., Cambridge University Press, United Kingdom, hlm. 141-152. Hilton, J.L. 2002. Asteroid masses and densities. Dalam Asteroids III, W.F. Bottke Jr. A. Cellino, P. Paolicchi, dan R.P. Binzel, ed., University of Arizona Press, Tucson, hlm. 103-112. McFarland, J. 2001. The Day the Earth Trembled. (http://www.arm.ac.uk/another Tunguska/Brazil.html). Morrison, D., C.R. Chapman, D. Steel, dan R.P. Binzel 2004. Impact and the public: communicating the nature of the impact hazard. Dalam Mitigation of hazardous comets and asteroids, M.J.S. Belton, T.H. Morgan, N. Samarasinha, D.K. Yeomans, ed., Cambridge University Press, United Kingdom, hlm. 353-390. Morrison, D., C.R. Chapman, dan P. Slovic 1994. The impact hazard. Dalam Hazards due to comets and asteroids, T. Gehrels, ed., University of Arizona Press, Tucson, hlm. 59-91. Near-Earth Object Science Definition Team 2003. Study to determine the feasibility of extending the search for Near-Earth Objects to smaller limiting diameters. Report of the Near-Earth Object science definition team. NASA Office of Space Science Solar System Exploration Div., Washington DC (http://neo.jpl.nasa.gov/neo/ neoreport030825.pdf) 89 Norton, O.R. 2002. The Cambridge Encyclopedia of Meteorites. Cambridge University Press, United Kingdom. Paine, M.P. 1999. Asteroid Impacts: The extra hazard due to tsunami. Science of Tsunami Hazards. 17, No. 3, 155-166. Philip’s Astronomy Encyclopedia, 2002, Sir Patrick Moore, ed., Philip’s, London, hlm. 318. Raup, D.M. dan J.J. Sepkosky 1986. Periodic extinction of families and genera. Science 231, 833-836. Roy, A.E., dan D Clarke. 1977. Astronomy: Principles and Practise. Adam Hilger ltd, Bristol. Schubert, G. dan R.L. Walterscheid 2000. Earth. Dalam Allen’s astrophysical quantities fourth edition, A. N. Cox., ed., AIP PRESS Springer-Verlag Inc, New York, hlm. 239-292. Tholen, D.J., V.G. Tejfel, dan A.N. Cox 2000. Planets and satellites. Dalam Allen’s astrophysical quantities fourth edition, A. N. Cox., ed., AIP PRESS SpringerVerlag Inc, New York, hlm. 293-313. Post Report. April, 1999. Post Report 126: Near Earth Objects - NEOs. Parliamentary Office of Science and Technology, London. Steel, D. 1996. A "Tunguska" Event in British Guyana in 1935?. (http://homepages. ihug.co.nz/~afs/A Tunguska Event in British Guyana in 1935.htm). http://earn.dlr.de/nea/J98S27T.htm. http://en.wikipedia.org/wiki/Tunguska_event.htm. http://en.wikipedia.org/wiki/Atomic_bombings_of_Hiroshima_and_Nagasaki.htm. http://en.wikipedia.org/wiki/Ground_zero.htm. http://en.wikipedia.org/wiki/Potentially_hazardous_asteroid. http://neo.jpl.nasa.gov/neo.html. http://neo.jpl.nasa.gov/elements. http://neo.jpl.nasa.gov/palermo_scale.html. http://neo.jpl.nasa.gov/pha.html http://solarsystem.nasa.gov/kuiper/profile.cfm.htm. http://spaceguard.esa.int/NScience/com-kuiper.htm. http://spaceguard.esa.int/NScience/com-oort.htm. 90 http://ssd.jpl.nasa.gov/ horizons.cgi#top http://www.anomalist.com/reports/tunguska.html. http://www.citymayors.com/statistics/largest-cities-area-125.html http://www.nasm.edu/ceps/etp/asteroids/AST_near.html http://www.scn.org/~bh162/Iridium Layer.html 91 Lampiran A Contoh bentuk data NEA dan PHA yang didapatkan dari http://neo.jpl.nasa.gov/elements Epoch (TDB) a (AU) 433 Eros 719 Albert 54000 54000 1.45814310 2.62924159 887 Alinda 1036 Ganymed 1221 Amor 1566 Icarus 1580 Betulia 1620 Geographos 1627 Ivar 1685 Toro 1862 Apollo 1863 Antinous 1864 Daedalus 1865 Cerberus 54000 54000 54000 54000 54000 54000 54000 54000 54000 54000 54000 54000 1866 Sisyphus 1915 Quetzalcoatl 1916 Boreas 1917 Cuyo 1943 Anteros 1980 Tezcatlipoca 1981 Midas 2059 Baboquivari 2061 Anza 54000 54000 54000 54000 54000 54000 54000 54000 54000 Object Q (AU) P (yr) H (mag) MOID (AU) ref class 0.222725172 10.8288323 178.6500472 304.3859173 352.0850200 1.1334 0.551935846 11.5478230 155.7635776 184.0885077 66.5600972 1.1781 1.78 4.08 1.76 4.26 11.16 15.80 0.147716 0.185659 219 27 AMO AMO 2.48575138 2.66569071 1.91979422 1.07791679 2.19687595 1.24539113 1.86339064 1.36698407 1.47063291 2.25941313 1.46105660 1.08004004 0.563638701 0.533709556 0.434535506 0.826811100 0.487911221 0.335484419 0.396838450 0.436070583 0.559881884 0.606782317 0.614477305 0.466892630 9.3166094 26.6751805 11.8779853 22.8525805 52.0971049 13.3412477 8.4467523 9.3798139 6.3551384 18.4001032 22.1931716 16.0924321 350.1604552 132.4393933 26.4862263 31.2947374 159.5066769 276.8024208 167.6103216 127.0378358 285.7810299 267.9783961 325.5264913 325.1812123 110.6190054 215.6219555 171.4098601 88.0792429 62.3287896 337.2888803 133.1975881 274.3532248 35.7693156 346.6023480 6.7182497 212.9955741 112.1333958 310.9923683 345.7254486 108.9936970 121.4545625 289.6617201 118.9377207 88.0378588 204.1396061 58.3295883 310.4177041 292.6408719 1.0847 1.2430 1.0856 0.1867 1.1250 0.8276 1.1239 0.7709 0.6473 0.8884 0.5633 0.5758 3.89 4.09 2.75 1.97 3.27 1.66 2.60 1.96 2.29 3.63 2.36 1.58 3.92 4.35 2.66 1.12 3.26 1.39 2.54 1.60 1.78 3.40 1.77 1.12 13.76 9.45 17.70 16.90 14.52 15.60 13.20 14.23 16.25 15.54 14.85 16.84 0.102693 0.342828 0.107373 0.034878 0.133662 0.030305 0.111269 0.051157 0.025557 0.181572 0.268138 0.156045 60 AMO 171 AMO 23 AMO 54 APO* 73 AMO 138 APO* 149 AMO 110 APO 115 APO* 19 APO 116 APO 27 APO 1.89369327 2.54092596 2.27300483 2.14973693 1.43031833 1.70968103 1.77607136 2.64595563 2.26364732 0.538445706 0.571840563 0.449027176 0.504827740 0.255901121 0.364873515 0.650154677 0.529262610 0.537733443 41.1870414 20.4219508 12.8748973 23.9572910 8.7046792 26.8610874 39.8382715 11.0303357 3.7733392 293.0501445 347.9053059 335.8084298 194.3472798 338.2573800 115.3986102 267.7352410 191.2620854 156.4712357 63.5963755 162.9923690 340.7548912 188.4085965 246.4048316 246.6603085 357.0359673 201.0145520 207.6739101 12.8999613 120.2213279 181.4254650 131.6906127 187.4409011 4.8847399 30.7465058 341.5153880 175.5510557 0.8740 1.0879 1.2524 1.0645 1.0643 1.0859 0.6214 1.2456 1.0464 2.91 3.99 3.29 3.23 1.80 2.33 2.93 4.05 3.48 2.61 4.05 3.43 3.15 1.71 2.24 2.37 4.30 3.41 13.00 18.97 14.93 13.90 15.75 13.92 15.50 15.80 16.56 0.103279 0.102246 0.253559 0.073615 0.061309 0.244992 0.002004 0.252444 0.051214 100 APO 5 AMO 31 AMO 54 AMO 47 AMO 53 AMO 39 APO* 22 AMO 10 AMO e i (deg) w (deg) Node (deg) 92 M (deg) q (AU) Keterangan judul-judul kolom (elemen-elemen orbit dalam referensi frame J2000 heliosentris-ekliptik): Epoch (TDB): Epoch osilasi dari elemen-elemen asteroid dalam modified Julian date (Julian date - 2400000.5) TDB a (AU): Sumbu setengah panjang orbit asteroid dalam AU e: Eksentrisitas orbit i (deg): Inklinasi orbit terhadap bidang ekliptika dan ekuinok J2000 (J2000-Ekliptik) dalam derajat w (deg): Argumen perihelion (J2000-Ekliptik) dalam derajat Node (deg): Longitude dari ascending node (J2000-Ekliptik) dalam derajat M (deg): Mean anomali asteroid pada epoch, dalam derajat q (AU): Jarak perihelion orbit dalam AU Q (AU): Jarak aphelion orbit dalam AU P (yr): Periode orbit dalam tahun Julian H (mag): Magnitudo mutlak V asteroid MOID (AU): Minimum orbit intersection distance (jarak minimum antara orbit-orbit yang berosilasi dari NEO dan Bumi) Ref: Referensi solusi orbit Class: Klasifikasi asteroid: NEA = "Near-Earth Asteroid", AMO = "Amor", APO = "Apollo", ATE = "Aten", atau IEO = "Interior Earth Object". Tanda "*" menandakan kalau asteroid tersebut juga merupakan potentially hazardous asteroid. 93 LAMPIRAN B Data-data fisis (1998 ST27 ) Discovery Circumstances: LINEAR - Lincoln Laboratory ETS, New Mexico 24 Sep 1998 (1) Orbital Type: AT (*) Taxonomic Type: - - Albedo: m;0.05 ( 2)( 3) Diameter: 0.4;0.8 km ( 4)( 5) H: 19.50 (#) G: 0.15 (#) U-B: - - B-V: - - Rotation Period: ~3.1+~100 hr ( 6) Quality: BR ( 6) Lightcurve Amplitude: low mag ( 6) Spin Vector: - - Radar Observations: Y ( 7)( 8) ( 9) Spectral Observations: - - IR Observations: - - Keterangan: * - tipe orbit diturunkan dari elemen orbit yang berosilasi 94 # - magnitudo mutlak H diturunkan dari observasi astrometri melalui penentuan orbit, dengan nilai G di asumsikan sebesar 0.15 B - binary asteroid R - observasi radar Kolom paling kanan merupakan referensi data, dimana: (1) M.P.E.C. 1998-S34 (2) Binzel, R.P. et al. 2002. Physical Properties of NEOs. Dalam Asteroids III, W.F.Bottke et al, ed., Univ.Ariz.Press, Tucson, USA, hlm. 255-271. (3) Benner, L. et al. .2003. Radar imaging of binary near-Earth asteroid 1998 ST27. DPS 35, 24.01. (4) Binzel, R.P. et al. 2002. Physical Properties of NEOs. Dalam Asteroids III, W.F.Bottke et al, ed., Univ.Ariz.Press, Tucson, USA, hlm. 255-271. (5) Benner, L. et al. .2003. Radar imaging of binary near-Earth asteroid 1998 ST27. DPS 35, 24.01. (6) Petr Pravec's Ondrejov NEO Photometric Program Webpage (7) JPL's NEO Radar Detection Program Webpage (8) Benner, L.A.M. et al. 2001. 1998 ST27 Binary asteroid detection. I.A.U. Circ 7730. (9) Benner, L. et al. .2003. Radar imaging of binary near-Earth asteroid 1998 ST27. DPS 35, 24.01. 95 Lampiran C I. Elemen-elemen Keplerian dan laju perubahannya, terhadap ekliptik rata-rata dan ekuinok J2000, berlaku untuk selang waktu 1800-2050 M. 96 II. Elemen-elemen Keplerian dan laju perubahannya, terhadap ekliptik rata-rata dan ekuinok J2000, berlaku untuk selang waktu 3000 SM-3000 M. Perhitungan M untuk Yupiter sampai Pluto harus ditambahkan dengan suku tambahan seperti pada persamaan (3.27) yang nilai-nilainya diberikan pada tabel C III. III. Suku-suku tambahan yang harus ditambahkan pada perhitungan M untuk planet Yupiter sampai Pluto, pada selang waktu 3000 SM-3000 M. 97 LAMPIRAN D PROGRAM AsCaO I. Source Code Program AsCaO /* AsCaO: A Program of (Simple) Asteroid Close-approach Orbit Computation*/ /* Ver. 7.3; B. Dermawan */ /* This program runs interactively. Before employing this program the user should prepare the asteroids and planetary (Earth) data with the following orders (notice that MJD = JD 2400000.5). The asteroid data file (*.???) must have 8 columns, i.e. Column 1 -> Calculation epoch of asteroid's data (t0 --MJD), Column 2 -> Asteroid's semimajor axes (a --AU), Column 3 -> Asteroid's eccentricities (e), Column 4 -> Asteroid's inclinations (inc --deg), Column 5 -> Longitude of asteroid's ascending nodes (node --deg), Column 6 -> Argument of asteroid's perihelions (w --deg), Column 7 -> Asteroid's mean anomalies (m0 --deg), and Column 8 -> Asteroid's orbital periods (per --year). Assumption: the above asteroids orbital elements are at the epoch of calculation, instead of their osculating elements. The planetary (Earth) data file (*.???) must have 7 columns, i.e. Column 1 -> Calculation epoch of planetary data (pt0 --MJD), Column 2 -> Planetary's semimajor axis (pa --AU), Column 3 -> Planetary's eccentricity (pe), Column 4 -> Planetary's inclination (pinc --deg), Column 5 -> Longitude of planetary's ascending node (pnode --deg), Column 6 -> Argument of the planetary's perihelion (pw --deg), Column 7 -> Planetary's true anomaly (pta --deg). The asteroids and planetary data are available and can be extracted from the JPL-NASA. The output files: *.pos: Coordinate position (cartesian) of the Earth and asteroids, including the asteroid's distances from the Earth (Delta). Number of asteroids whose distances shorter than the close-approach criteria (crit) will be provided. This program computes asteroid's positions at the same MJD as that of the planetary data, which can be propagated within about +/- two years from the data epoch. *.orb: Orbital paths of the asteroids. An asteroid orbital path consists of 100 points. Each of the output files consists of maximum 60 asteroids. */ /*This code is free and no warranty, freely improved and distributed.*/ #include <stdio.h> #include <stdlib.h> #include <stddef.h> #include <math.h> 98 #include <string.h> #include <ctype.h> #define NR_END 1 /*Constants*/ #define FREE_ARG char* #define ORBP 100 #define TWOPID 6.2831853071795865 #define EPS 1.0e-6 #define SWAP(a,b) {swap=(a);(a)=(b);(b)=swap;} int *ivector(long nl, long nh); /*Subroutine Names*/ double *dvector(long nl, long nh); double **dmatrix(long nrl, long nrh, long ncl, long nch); void free_ivector(int *v, long nl, long nh); void free_dvector(double *v, long nl, long nh); void free_dmatrix(double **m, long nrl, long nrh, long ncl, long nch); float SQR(float); void Sort(int *varb, int n); main() /* ### MAIN PROGRAM ### */ { char *forb, *fpos, b, c, buf[80], fas[80], fpla[80], fout[80], orbf[]=".orb", posf[]=".pos"; int ca=1, *caob, ic, nas=1, npla=1, OBJ, nfile, point, i, j=0, k=0, l; double aa, bb ,cc, dd, ee, ff, gg, hh, eao, ea, xa, ya, za, delta, t1, tini, tend, tstep, crit; double *t0, *a, *e, *inc, *node, *w, *m0, *per, *pt0, *pa, *pe, *pinc, *pnode, *pw, *pta; double *t, *xe, *ye, *ze, **m1, **d, **xob, **yob, **zob, **x, **y, **z; FILE *asPtr, *plaPtr, *orbPtr, *posPtr; printf("\nAsCaO: A Program of (Simple) Asteroid Close-approach Orbit Computation\n"); printf("\nAsteroids data file (*.\?\?\?): "); /*Filename Assemblages*/ while((c=getchar()) != '\n') fas[j++]=c; fas[j]='\0'; for (i=0;i<=j-5;i++) fout[i]=fas[i]; fout[i]='\0'; if ((asPtr = fopen(fas,"r")) == NULL) { printf("Asteroid data file could not be opened\n"); return 0; } else { /*Checking number of asteroids data*/ fscanf(asPtr,"%lf %lf %lf %lf %lf %lf %lf %lf", &aa, &bb, &cc, &dd, &ee, &ff, &gg, &hh); while (!feof(asPtr)) { fscanf(asPtr,"%lf %lf %lf %lf %lf %lf %lf %lf", &aa, &bb, &cc, &dd, &ee, &ff, &gg, &hh); nas++; } } printf("Planetary data file (*.\?\?\?): "); /*Filename Assemblages*/ while((b=getchar()) != '\n') fpla[k++]=b; fpla[k]='\0'; if ((plaPtr = fopen(fpla,"r")) == NULL) { printf("Planetary data file could not be opened\n"); return 0; } 99 else { /*Checking number of planetary data*/ fscanf(plaPtr,"%lf %lf %lf %lf %lf %lf %lf", &aa, &bb, &cc, &dd, &ee, &ff, &gg); while (!feof(plaPtr)) { fscanf(plaPtr,"%lf %lf %lf %lf %lf %lf %lf", &aa, &bb, &cc, &dd, &ee, &ff, &gg); npla++; } } printf("\nNumber of asteroids data = %4d\n",nas-=1); printf("Number of asteroids [max 60] stored in a file: "); scanf("%d",&OBJ); if ((OBJ > 60) || (OBJ < 1)) OBJ = 60; if ((nas-(nas/OBJ)*OBJ) != 0) {nfile = 1+ nas/OBJ;} else nfile = nas/OBJ; /* forb = (char *)malloc(1+nas/OBJ); fpos = (char *)malloc(1+nas/OBJ);*/ /*Allocation of number of file*/ forb = (char *)malloc((size_t) (nfile*sizeof(char))); fpos = (char *)malloc((size_t) (nfile*sizeof(char))); x=dmatrix(1,nas,1,ORBP); y=dmatrix(1,nas,1,ORBP); z=dmatrix(1,nas,1,ORBP); t0=dvector(1,nas); a=dvector(1,nas); e=dvector(1,nas); inc=dvector(1,nas); node=dvector(1,nas); w=dvector(1,nas); m0=dvector(1,nas); per=dvector(1,nas); asPtr = fopen(fas,"r"); for (i=1;i<=nas;i++) { fscanf(asPtr, "%lf %lf %lf %lf %lf %lf %lf %lf", &t0[i], &a[i], &e[i], &inc[i], &node[i], &w[i], &m0[i], &per[i]); /*Reading the asteroid data file*/ inc[i] = inc[i]*TWOPID/360.0; node[i] = node[i]*TWOPID/360.0; w[i] = w[i]*TWOPID/360.0; m0[i] = m0[i]*TWOPID/360.0; } /* fprintf(stdout, "\nPlanetary data file (*.\?\?\?): "); strncpy(fpla, fgets(buf, 79, stdin), 79);*/ printf("Number of planetary data: %4d\n",npla-=1); pt0=dvector(1,npla); pa=dvector(1,npla); pe=dvector(1,npla); pinc=dvector(1,npla); pnode=dvector(1,npla); pw=dvector(1,npla); pta=dvector(1,npla); plaPtr = fopen(fpla,"r"); for (i=1;i<=npla;i++) { fscanf(plaPtr, "%lf %lf %lf %lf %lf %lf %lf", &pt0[i], &pa[i], &pe[i], &pinc[i], &pnode[i], &pw[i], &pta[i]); /*Reading the planetary data file*/ pinc[i] = pinc[i]*TWOPID/360.0; pnode[i] = pnode[i]*TWOPID/360.0; pw[i] = pw[i]*TWOPID/360.0; pta[i] = pta[i]*TWOPID/360.0; } tini = pt0[1]; tend = pt0[npla]; tstep = pt0[2] - pt0[1]; printf("\n The start MJD = %11.5f\n",tini); printf(" stop MJD = %11.5f\n",tend); printf(" Time-step = %4.2f%s",tstep," day(s)\n"); 100 point = 1 + (tend - tini)/tstep; t=dvector(1,point); xe=dvector(1,point); ye=dvector(1,point); ze=dvector(1,point); m1=dmatrix(1,nas,1,point); d=dmatrix(1,nas,1,point); xob=dmatrix(1,nas,1,point); yob=dmatrix(1,nas,1,point); zob=dmatrix(1,nas,1,point); printf("\nClose-approach distance (AU): "); scanf("%lf",&crit); /*user-defined closeapproach distance*/ /* printf("Asteroid's time-span/-step are same as that of the planetary data\n");*/ for (i=1;i<=nas;i++) { for (l=1;l<=point;l++) { t[l] = tini + (l-1)*tstep; if (l == point) t[l] = tend; ea = m1[i][l] = xob[i][l] = yob[i][l] = zob[i][l] = 0.0; m1[i][l] = m0[i] + TWOPID*(t[l]-t0[i])/(per[i]*365.25); ea = m1[i][l] + e[i]*sin(m1[i][l]); delta = 10.0; while (delta > EPS) { /*Iteration step to solve Kepler equation;*/ eao = ea; ea = ea + (m1[i][l] - (ea-e[i]*sin(ea)))/(1.0-e[i]*cos(ea)); delta = fabs((ea-eao)/ea); } xa = a[i]*(cos(ea)-e[i]); ya = a[i]*sqrt(1-e[i]*e[i])*sin(ea); xob[i][l] = (cos(w[i])*cos(node[i])-sin(w[i])*sin(node[i])*cos(inc[i]))*xa - (sin(w[i])*cos(node[i])-cos(w[i])*sin(node[i])*cos(inc[i]))*ya; yob[i][l] = (cos(w[i])*sin(node[i])+sin(w[i])*cos(node[i])*cos(inc[i]))*xa - (sin(w[i])*sin(node[i])+cos(w[i])*cos(node[i])*cos(inc[i]))*ya; zob[i][l] = (sin(w[i])*sin(inc[i]))*xa + (cos(w[i])*sin(inc[i]))*ya; if (i == 1) { xe[l] = (cos(pw[l]+pta[l])*cos(pnode[l])sin(pw[l]+pta[l])*sin(pnode[l])*cos(pinc[l]))* (pa[l]*(1.0-pe[l]*pe[l]))/(1.0+pe[l]*cos(pta[l])); ye[l] = (cos(pw[l]+pta[l])*sin(pnode[l])+sin(pw[l]+pta[l])*cos(pnode[l])*cos(pinc[l]))* (pa[l]*(1.0-pe[l]*pe[l]))/(1.0+pe[l]*cos(pta[l])); ze[l] = (sin(pw[l]+pta[l])*sin(pinc[l]))*(pa[l]*(1.0pe[l]*pe[l]))/(1.0+pe[l]*cos(pta[l])); } } ea = xa = ya = za = 0.0; for (j=1;j<=ORBP;j++) { xa = a[i]*(cos(ea)-e[i]); ya = a[i]*sqrt(1-e[i]*e[i])*sin(ea); x[i][j] = (cos(w[i])*cos(node[i])-sin(w[i])*sin(node[i])*cos(inc[i]))*xa - (sin(w[i])*cos(node[i])-cos(w[i])*sin(node[i])*cos(inc[i]))*ya; y[i][j] = (cos(w[i])*sin(node[i])+sin(w[i])*cos(node[i])*cos(inc[i]))*xa - (sin(w[i])*sin(node[i])+cos(w[i])*cos(node[i])*cos(inc[i]))*ya; z[i][j] = (sin(w[i])*sin(inc[i]))*xa + (cos(w[i])*sin(inc[i]))*ya; ea = ea + TWOPID/ORBP; } 101 } caob=ivector(1,nas); fclose(asPtr); free_dvector(t,1,point); free_dvector(t0,1,nas); free_dvector(a,1,nas); free_dvector(e,1,nas); free_dvector(inc,1,nas); free_dvector(node,1,nas); free_dvector(w,1,nas); free_dvector(m0,1,nas); free_dvector(per,1,nas); for (k=1;k<=nfile;k++) { sprintf(forb,"%s_%02d%s",fout,k,orbf); orbPtr=fopen(forb,"w"); for (j=0;j<=ORBP;j++) { if (k < nfile) { ic = k*OBJ; } else ic = nas; for (i=(k-1)*OBJ+1;i<=ic;i++) { if (j == 0) { fprintf(orbPtr,"%s%04d%s", "#", i, "--X Y Z "); } else fprintf(orbPtr,"%11.7f %11.7f %11.7f ", x[i][j], y[i][j], z[i][j]); if (i == ic) fprintf(orbPtr,"\n"); } } fclose(orbPtr); } for (k=1;k<=nfile;k++) { sprintf(fpos,"%s_%02d%s",fout,k,posf); posPtr=fopen(fpos,"w"); for (l=0;l<=point;l++) { if (k < nfile) { ic = k*OBJ; } else ic = nas; for (i=(k-1)*OBJ+1;i<=ic;i++) { if (l == 0) { if (i == (k-1)*OBJ+1) fprintf(posPtr,"%s","#---MJD XEarth YEarth ZEarth "); fprintf(posPtr,"%s%04d%s","#", i, "-X Y Z D "); } else { d[i][l] = sqrt(SQR(xob[i][l]-xe[l]) + SQR(yob[i][l]-ye[l]) + SQR(zob[i][l]ze[l])); if (i == (k-1)*OBJ+1) fprintf(posPtr,"%11.5f %11.7f %11.7f %11.7f", pt0[l], xe[l], ye[l], ze[l]); fprintf(posPtr," %11.7f %11.7f %11.7f %11.7f", xob[i][l], yob[i][l], zob[i][l], d[i][l]); if (d[i][l] <= crit) { for (j=1;j<=1;j++) caob[ca] = i; ca = ca+1; } 102 } if (i == ic) fprintf(posPtr,"\n"); } } fclose(posPtr); } Sort(caob,ca-1); printf("\n%s","Close-approach asteroid(s): "); k = 1; for (j=1;j<=ca-1;j++) { if (j > 1) if ((caob[j]-caob[j-1]) != 0) k++; printf("%s%04d ","#",caob[j]); } if (ca == 1) k = 0; printf("\n%4d%s",k," object(s) found\n"); free_ivector(caob,1,nas); free_dvector(pt0,1,npla); free_dvector(pa,1,npla); free_dvector(pe,1,npla); free_dvector(pinc,1,npla); free_dvector(pnode,1,npla); free_dvector(pw,1,npla); free_dvector(pta,1,npla); free_dvector(xe,1,point); free_dvector(ye,1,point); free_dvector(ze,1,point); free_dmatrix(m1,1,nas,1,point); free_dmatrix(d,1,nas,1,point); free_dmatrix(xob,1,nas,1,point); free_dmatrix(yob,1,nas,1,point); free_dmatrix(zob,1,nas,1,point); free_dmatrix(x,1,nas,1,ORBP); free_dmatrix(y,1,nas,1,ORBP); free_dmatrix(z,1,nas,1,ORBP); free(forb); free(fpos); printf("\n%s","Done!\n\n"); return 0; } /* ### SUBROUTINES ### */ float SQR(float var) /* Square function */ { return var*var; } void Sort(int *varb, int n) { int j,k,swap; for (k=1;k<=n-1;k++) for (j=1;j<=n-1;j++) if (varb[j] > varb[j+1]) SWAP(varb[j],varb[j+1]); } int *ivector(long nl, long nh) /* allocate an int vector with subscript range v[nl..nh] */ { int *v; 103 v=(int *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(int))); if (!v) { /*nrerror ("Allocation failure in ivector()");*/ printf("Allocation failure in ivector()\n"); return 0; } return v-nl+NR_END; } double *dvector(long nl, long nh) /* allocate a double vector with subscript range v[nl..nh] */ { double *v; v=(double *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(double))); if (!v) { /*nrerror("Allocation failure in dvector()");*/ printf("Allocation failure in dvector()\n"); return 0; } return v-nl+NR_END; } double **dmatrix(long nrl, long nrh, long ncl, long nch) /* allocate a double matrix with subscript range m[nrl..nrh][ncl..nch] */ { long i, nrow=nrh-nrl+1,ncol=nch-ncl+1; double **m; /* allocate pointers to rows */ m=(double **) malloc((size_t)((nrow+NR_END)*sizeof(double*))); if (!m) { /*nrerror("allocation failure 1 in matrix()");*/ printf("Allocation failure 1 in matrix()\n"); return 0; } m += NR_END; m -= nrl; /* allocate rows and set pointers to them */ m[nrl]=(double *) malloc((size_t)((nrow*ncol+NR_END)*sizeof(double))); if (!m[nrl]) { /*nrerror ("Allocation failure 2 in matrix()");*/ printf("Allocation failure 2 in matrix()\n"); return 0; } m[nrl] += NR_END; m[nrl] -= ncl; for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol; /* return pointer to array of pointers to rows */ return m; } void free_ivector(int *v, long nl, long nh) /* free an int vector allocated with ivector() */ { free((FREE_ARG) (v+nl-NR_END)); } 104 void free_dvector(double *v, long nl, long nh) /* free a double vector allocated with dvector() */ { free((FREE_ARG) (v+nl-NR_END)); } void free_dmatrix(double **m, long nrl, long nrh, long ncl, long nch) /* free a double matrix allocated by dmatrix() */ { free((FREE_ARG) (m[nrl]+ncl-NR_END)); free((FREE_ARG) (m+nrl-NR_END)); } II. Tampilan Program AsCaO AsCaO: A Program of (Simple) Asteroid Close-approach Orbit Computation Asteroids data file (*.???): Planetary data file (*.???): Number of asteroids data = 4091 Number of asteroids [max 60] stored in a file: 60 Number of planetary data: 365 The start MJD = 54101.00000 stop MJD = 54465.00000 Time-step = 1.00 day(s) Close-approach distance (AU): Close-approach asteroid(s): Asteroids data file dan Planetary data file diisi dengan nama file dan format penyimpanan file (dat, txt, dsb). Pilih jarak di Close-approach distance (AU). Keluaran dari Close-approach asteroid adalah berupa nomor urut asteroid yang disimpan pada file dan jumlah asteroid yang memiliki jarak ≤ jarak yang telah dipilih pada Close-approach distance (AU). 105 III. Bentuk Keluaran Program AsCaO AsCaO: A Program of (Simple) Asteroid Close-approach Orbit Computation Asteroids data file (*.???): NEA25juli1.txt Planetary data file (*.???):earth2007.DAT Number of asteroids data = 4091 Number of asteroids [max 60] stored in a file: 60 Number of planetary data: 365 The start MJD = 54101.00000 stop MJD = 54465.00000 Time-step = 1.00 day(s) Close-approach distance (AU): 0.03 AU Close-approach asteroid(s): #307 #399 #573 #750 #921 #923 #928 #960 #989 #1117 #1190 #1771 #2001 #2422 #2422 #2717 #2749 #3051 #3115 #3471 #3471 #3940 20 object(s) found Done! 106 LAMPIRAN E ORBIT 32 ASTEROID NEA DAN PHA YANG AKAN MEMILIKI JARAK TERDEKAT DENGAN BUMI < 0,05 AU DAN POSISI ASTEROID NEA DAN PHA TERSEBUT DENGAN BUMI SAAT BERADA DI JARAK TERDEKAT DI TAHUN 2007 107 Gambar E-1a 108 Gambar E-1a 109 Gambar E-2a 110 Gambar E-2b 111 Gambar E-3a 112 Gambar E-3b 113 Gambar E-4a 114 Gambar E-4b 115 Gambar E-5a 116 Gambar E-5b 117 Gambar E-6a 118 Gambar E-6b 119 Gambar E-7a 120 Gambar E-7b 121 Gambar E-8a 122 Gambar E-8b 123 Gambar E-9a Orbit 4 PHA yang akan memiliki jarak terdekat dengan Bumi < 0,05 AU di tahun 2007 124 Gambar E-9b Posisi 4 PHA dan posisi Bumi untuk masing-masing PHA pada saat jarak terdekat 125 Keterangan gambar: Gambar –gambar (a) Merupakan orbit asteroid-asteroid selama tahun 2007 Gambar-gambar (b) Merupakan posisi asteroid-asteroid (lingkaran berwarna) dengan posisi Bumi untuk masing-masing asteroid (tanda silang dengan warna disesuaikan dengan warna lingkaran asteroid yang dimaksud) saat berada di jarak terdekat. Gambar E1 sampai E8 merupakan asteroid-asteroid NEA, gambar E9 merupakan empat asteroid-asteroid NEA yang termasuk ke dalam anggota PHA 126