dir='/home/bcarry/data/binary/107_Camilla/S1/web-2017-05-18/' file='genoide.obsdiff.107_Camilla-S2001-107-1.xml' dump = dir+'rms.eps' in = dir+file ;function genoide_plotRMS, file, dump ; COMPILE_OPT hidden, idl2 ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--I.1-- Set IDL to Local Working Environment ------------------------------------------------ ;--I.1-- Set IDL to Local Working Environment ------------------------------------------------ ;--I.1-- Set IDL to Local Working Environment ------------------------------------------------ theta= 2*!PI*findgen(361)/360. ;--I.1-- Set IDL to Local Working Environment ------------------------------------------------ xSize=30. ySize=30. xBot = 0.08 yBot = xBot xTop = 0.75 yTop = xTop xEnd = 0.98 yEnd = xEnd xSep = 0.01 ySep = xSep xBCol = 0.72 xTCol = 0.74 yBCol = 0.12 yTCol = 0.70 xyTickInt = 1 xyMinor = 4 ;5 ctIndex = 31 symSize = 1.5 barFill=0.80 xyRange = [-1,1] * 3.5 binSize = 0.25 void = replicate(' ', 40) ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; xml = genoide_XMLread( in ) nbObs = n_elements(xml) xOMC = xml.xOMC / xml.xErr yOMC = xml.yOMC / xml.yErr trash = min(xml.jd, pMin, subscript_max=pMax) minYear = strMid( xml[pMin].iso,0,4) maxYear = string( float(strMid( xml[pMax].iso,0,4))+1, format='(I4)') minJD = date_conv( minYear+'-01-01', 'JULIAN') maxJD = date_conv( maxYear+'-01-01', 'JULIAN') xyCol = bytscl( xml.jd, min=minJD, max=maxJD) nbBin = round( (xyRange[1]-xyRange[0])/binSize + 1 ) xHist = histogram( xOMC, loc=xArr, min=xyRange[0], max=xyRange[1], binSize=binSize ) yHist = histogram( yOMC, loc=yArr, min=xyRange[0], max=xyRange[1], binSize=binSize ) xFit = mpFitPeak( xArr, xHist, xParam, nTerms=3 ) yFit = mpFitPeak( yArr, yHist, yParam, nTerms=3 ) fine = xyRange[0] + (xyRange[1]-xyRange[0])*findgen(1000)/999. xGauss=evalGauss( fine, xParam) yGauss=evalGauss( fine, yParam) ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; cgPS_open, Filename=dump, /Metric, /Decomposed, /Portrait, $ xSize=xSize, ysize=ySize, language_level=2, /Quiet cgPlot, xOMC, yOMC, /NoData, /Isotrop, /Normal, $ xRange=xyRange, xTickInt=xyTickInt, xMinor=xyMinor, xStyle=1, $ yRange=xyRange, yTickInt=xyTickInt, yMinor=xyMinor, yStyle=1, $ position=[xBot, yBot, xTop, yTop], $ xTitle = '( X!Do!N - X!Dc!N ) / '+cgGreek('sigma')+'!DX!N', $ yTitle = '( Y!Do!N - Y!Dc!N ) / '+cgGreek('sigma')+'!DY!N' cgPlot, /OverPlot, 1*cos(theta), 1*sin(theta), color='Gray' cgPlot, /OverPlot, 2*cos(theta), 2*sin(theta), color='Gray' cgPlot, /OverPlot, 3*cos(theta), 3*sin(theta), color='Gray' cgLoadCt, ctIndex, /Brewer for kO=0, nbObs-1 do begin cgPlot, /OverPlot, xOMC[kO], yOMC[kO], psym='Filled circle', color=xyCol[kO], symSize=symSize cgPlot, /OverPlot, xOMC[kO], yOMC[kO], psym='Open circle', symSize=symSize endfor cgColorBar, position=[xBCol, yBCol, xTCol, yTCol], ctIndex=ctIndex, /Vertical, /Brewer, $ yRange=float([minYear,maxYear]) ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;----vertical cgPlot, yHist, yArr, /NoData, /Normal, /NoErase, $ yRange=xyRange, $ xTickInt=5, xMinor=5, $ yTickName=void, yTickInt=xyTickInt, yMinor=xyMinor, $ position=[xTop+xSep, yBot, xEnd, yTop] for kB=0, nbBin-1 do begin xx = yHist[kB] * [0,0,1,1,0] yy = yArr[kB] + binSize/2. + [-1,1,1,-1,-1]*BarFill*binSize/2. cgColorFill, xx, yy, color='Cornflower Blue' cgPlot, /OverPlot, xx, yy endfor cgPlot, /OverPlot, yGauss, fine, lineStyle=2, color='Dark Gray' ;----horizontal cgPlot, xArr, xHist, /NoData, /Normal, /NoErase, $ xStyle=1, xRange=xyRange, $ yTickInt=5, yMinor=5, $ xTickInt=xyTickInt, xMinor=xyMinor, xTickName=void, $ position=[xBot, yTop+xSep, xTop, yEnd] for kB=0, nbBin-1 do begin xx = xArr[kB] + binSize/2. + [-1,1,1,-1,-1]*BarFill*binSize/2. yy = xHist[kB] * [0,0,1,1,0] cgColorFill, xx, yy, color='Cornflower Blue' cgPlot, /OverPlot, xx, yy endfor cgPlot, /OverPlot, fine, xGauss, lineStyle=2, color='Dark Gray' cgPS_close, /png, Delete_PS=0 end