; docformat = 'rst' ; ; NAME: ; plotAstClass ; PURPOSE: ; Generate two figures (inner and outer Solar System), with ; the delimitation of small bodies dynamical classes. ; ;+ ; :Description: ; Generate two figures (inner and outer Solar System), with ; the delimitation of small bodies dynamical classes. ; ; :Categories: ; Database, Asteroid, Orbits, Graphics ; ; :Params: ; cwd: in, required, type=string ; Path to the directory where the figure will be put. ; ; :Keywords: ; ASTORB: in, optional, type=integer/string ; The path to a local version of AstOrb (Lowell Obs) ; ; :Examples: ; Draw the figures in the home directory:: ; IDL> plotAstClass, '~/' ; ; :Uses: ; initIDL ; ; :Author: ; B.Carry (IMCCE) ; ; :History: ; Change History:: ; Written in September 2014, B. Carry (IMCCE) ;- pro plotAstClass, cwd, astOrb=astOrb ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; COMPILE_OPT hidden ;--I.1-- Search Orbital Elements ------------------------------------------------------ ; if N_PARAMS() lt 3 then begin ; ; ;--I.1.1-- Set AstOrb File ; if keyword_set(astorb) then begin ; astorb = strtrim(astorb,2) ; endif else begin ; confAstroIM= initIDL() ; confCatalog= initIDL(confAstroIM.soft.catalog, /CATALOG) ; astorb = confCatalog.astorb ; endelse ; ; ;--I.1.2-- File Check Out ; if not file_test(astorb,/READ) then begin ; message, /IOERROR, 'AstOrb file not found: '+astOrb ; return, -1 ; endif ; ;--I.4-- Constants -------------------------------------------------------------------- aPlanet = [ 0.387, $ ;-Mercury 0.723, $ ;-Venus 1.000, $ ;-Earth 1.524, $ ;-Mars 5.203, $ ;-Jupiter 9.537, $ ;-Saturn 19.191, $ ;-Uranus 30.069 ] ;-Neptune pEarth = 0.983 qEarth = 1.017 pMars = 1.300 qMars = 1.666 pJupiter = 4.9 qJupiter = 5.5 MMR = [2.00, 2.50, 2.82, 3.27, 3.70] nbMMR = n_elements(MMR) N=100 inc = findgen(N)/(N-1.) sepTh = 3 th = 2 ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- II -- Extract Orbital Elements from AstOrb (optional) -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- II -- Inner Solar System -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--II.1-- Set up Graphics -------------------------------------------------------------- set_plot, 'PS' device, filename=cwd+'inner.eps' device, xsize=30, ysize=8 device, /encapsulated device, /TIMES !P.font=0 Plot, [0], [0], /device, /noerase, /nodata, $ xst=1, xr=[.1,100],/xlog, $ xminor=10, xticklen=0.03, $ yst=1, yr=[0,1], $ yminor=2, yticklen=0.01, $ xtitle='Semi-major axis (au)', $ ytitle='Eccentricity', $ xthick=sepTh, ythick=sepTh ;--II.2-- Large Regions ---------------------------------------------------------------- ;draw NEA MC MB Trojans with colors a1= qMars + inc*(pJupiter-qMars) e1= 1-qMars/a1 a2= pMars + inc*(pJupiter-pMars) e2= 1-pMars/a2 ; cgColorFill, [a1,reverse(a2)], [e1,reverse(e2)], color='Red' ; cgColorFill, [pJupiter, pJupiter, qJupiter, qJupiter], $ ; [0,1,1,0], color='Dark Gray' ; ; cgColorFill, [qJupiter, qJupiter, 6,6], $ ; [0,1,1,0], color='Cornflower Blue' ; ;--II.3-- Jupiter Trojans -------------------------------------------------------------- oPlot, [pJupiter, pJupiter], [0,1], thick=sepTh oPlot, [qJupiter, qJupiter], [0,1], thick=sepTh ;--II.4-- Separation MC-MB & MC-NEA ---------------------------------------------------- a = qMars + inc*(pJupiter-qMars) e = 1-qMars/a oPlot, a, e, thick=sepTh a = pMars + inc*(pJupiter-pMars) e = 1-pMars/a oPlot, a, e, thick=sepTh ;--II.5-- Near-Earth Asteroids --------------------------------------------------------- ;--II.5.1-- Separation Aten-Amor oPlot, [aPlanet(2),aPlanet(2)], [0,1], thick=th ;--II.5.2-- Separation Amor-Apollo a = qEarth + inc*(pJupiter-qEarth) e = 1-qEarth/a oPlot, a, e, thick=th ;--II.5.3-- Separation Aten-Atira a = inc*pEarth e = pEarth/a-1 oPlot, a, e, thick=th ;--II.5.4-- Separation Atira-Vulcanoid oPlot, [0.21,0.21], [0,1], thick=th ;--II.6-- Main-Belt Asteroids ---------------------------------------------------------- for k=0, nbMMR-1 do begin oPlot, MMR(k)+[0,0], [0,1-qMars/MMR(k)], thick=th endfor kbIn = 30.1 kbEx = 55.0 oPlot, [kbIn,kbIn], [0,1], thick=sepTh oPlot, [kbEx,kbEx], [0,1], thick=sepTh plut = 39.5 oPlot, [plut,plut], [0,1], thick=th ; ; ;--II.7-- Labels ----------------------------------------------------------------------- ; nbLabel=20 ; empty = {x:0., y:0., s:'', o:0.} ; label = replicate(empty, nbLabel) ; ; k=0 ; label(k).s = 'IMB' ; label(k).x = 2.3 ; label(k).y = 0.05 ; label(k).o = 90 ; ; k++ ; label(k).s = 'MMB' ; label(k).x = 2.72 ; label(k).y = 0.05 ; label(k).o = 90 ; ; k++ ; label(k).s = 'OMB' ; label(k).x = 3.10 ; label(k).y = 0.05 ; label(k).o = 90 ; ; k++ ; label(k).s = 'Cybeles' ; label(k).x = 3.55 ; label(k).y = 0.05 ; label(k).o = 90 ; ; k++ ; label(k).s = 'Hildas' ; label(k).x = 4.25 ; label(k).y = 0.05 ; label(k).o = 90 ; ; k++ ; label(k).s = 'Trojans' ; label(k).x = 5.25 ; label(k).y = 0.05 ; label(k).o = 90 ; ; k++ ; label(k).s = 'Centaurs' ; label(k).x = 5.8 ; label(k).y = 0.05 ; label(k).o = 90 ; ; k++ ; label(k).s = 'Vulcanoids' ; label(k).x = 0.175 ; label(k).y = 0.05 ; label(k).o = 90 ; ; k++ ; label(k).s = 'Atiras' ; label(k).x = 0.55 ; label(k).y = 0.05 ; label(k).o = 90 ; ; k++ ; label(k).s = 'Atens' ; label(k).x = 0.80 ; label(k).y = 0.65 ; label(k).o = 90 ; ; k++ ; label(k).s = 'Apollos' ; label(k).x = 1.25 ; label(k).y = 0.65 ; label(k).o = 0 ; ; k++ ; label(k).s = 'Amors' ; label(k).x = 2.50 ; label(k).y = 0.525 ; label(k).o = 37.5 ; ; k++ ; label(k).s = 'Mars-crossers' ; label(k).x = 2.50 ; label(k).y = 0.4 ; label(k).o = 37.5 ; ; ; for k=0, nbLabel-1 do begin ;; xyouts, label(k).x, label(k).y, label(k).s, orient=label(k).o ; endfor ; device, /close set_plot, 'X' ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- III -- Outer Solar System -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--III.1-- Set up Graphics -------------------------------------------------------------- set_plot, 'PS' device, filename=cwd+'outer.eps' device, /TIMES !P.font=0 Plot, [0], [0], /device, /noerase, /nodata, /xlog, $ xst=1, xr=[5,100], $ xminor=4, $ yst=1, yr=[0,1], $ yminor=2, $ xtitle='Semi-major axis (au)', $ ytitle='Eccentricity' ;--III.2-- Jupiter Trojans -------------------------------------------------------------- oPlot, [qJupiter, qJupiter], [0,1], thick=sepTh ;--III.3-- Kuiper Belt ------------------------------------------------------------------ kbIn = 30.1 kbEx = 55.0 oPlot, [kbIn,kbIn], [0,1], thick=sepTh oPlot, [kbEx,kbEx], [0,1], thick=sepTh device, /close set_plot, 'X' end ;;-----------------------------------------------------------------------------------------------; ;;-----------------------------------------------------------------------------------------------; ;;--- TAG --- V -- Outer Solar System -----------------------; ;;-----------------------------------------------------------------------------------------------; ;;-----------------------------------------------------------------------------------------------; ; endif else begin ; ; ;---------------------------------------------------------------------------------------- ; ;--V.1-- Planet-Crossers: Centaurs ---------------------------------------------------- ; if a(kSSO) lt 30.1 then begin ; result(kSSO).type = 'Centaur' ; ; ; ;---------------------------------------------------------------------------------------- ; ;--V.2-- Non Planet-Crossers: Kuiper Belt --------------------------------------------- ; endif else begin ; result(kSSO).type = 'KBO' ; ; ; ;--IV.2.1-- Classical Kuiper Belt -------------------------------------------------------- ; if a(kSSO) lt 55.0 then begin ; result(kSSO).subtype = 'Classical' ; ; ;--IV.2.1/A-- Plutinos ; if a(kSSO) ge 39.0 and a(kSSO) le 40.5 then $ ; result(kSSO).subtype = 'Plutino' ; ; ; ;--IV.2.2-- Scattered Disk --------------------------------------------------------------- ; endif else begin ; result(kSSO).subtype = 'SDO' ; ; endelse ;--V.2.2 ; endelse ;--V.2 ; endelse ;--V