├── CMakeLists.txt ├── LICENSE ├── MatlabEvaluationCode ├── AlignSimEfficient.m ├── Example.m ├── efficientEvalDrift.m ├── errorPerSequenceBenchmark.m └── examples │ ├── sequence_01.txt │ ├── sequence_02.txt │ ├── sequence_03.txt │ ├── sequence_04.txt │ ├── sequence_05.txt │ ├── sequence_06.txt │ ├── sequence_07.txt │ ├── sequence_08.txt │ ├── sequence_09.txt │ ├── sequence_10.txt │ ├── sequence_11.txt │ ├── sequence_12.txt │ ├── sequence_13.txt │ ├── sequence_14.txt │ ├── sequence_15.txt │ ├── sequence_16.txt │ ├── sequence_17.txt │ ├── sequence_18.txt │ ├── sequence_19.txt │ ├── sequence_20.txt │ ├── sequence_21.txt │ ├── sequence_22.txt │ ├── sequence_23.txt │ ├── sequence_24.txt │ ├── sequence_25.txt │ ├── sequence_26.txt │ ├── sequence_27.txt │ ├── sequence_28.txt │ ├── sequence_29.txt │ ├── sequence_30.txt │ ├── sequence_31.txt │ ├── sequence_32.txt │ ├── sequence_33.txt │ ├── sequence_34.txt │ ├── sequence_35.txt │ ├── sequence_36.txt │ ├── sequence_37.txt │ ├── sequence_38.txt │ ├── sequence_39.txt │ ├── sequence_40.txt │ ├── sequence_41.txt │ ├── sequence_42.txt │ ├── sequence_43.txt │ ├── sequence_44.txt │ ├── sequence_45.txt │ ├── sequence_46.txt │ ├── sequence_47.txt │ ├── sequence_48.txt │ ├── sequence_49.txt │ └── sequence_50.txt ├── README.md ├── cmake ├── FindEigen3.cmake └── FindLibZip.cmake ├── marker.pdf ├── src ├── BenchmarkDatasetReader.h ├── ExposureImage.h ├── FOVUndistorter.cpp ├── FOVUndistorter.h ├── PhotometricUndistorter.cpp ├── PhotometricUndistorter.h ├── main_playbackDataset.cpp ├── main_responseCalib.cpp └── main_vignetteCalib.cpp └── thirdparty ├── aruco-1.3.0.tgz └── libzip-1.1.1.tar.gz /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | SET(PROJECT_NAME PhotometricDatasetCalibration) 2 | 3 | PROJECT(${PROJECT_NAME}) 4 | CMAKE_MINIMUM_REQUIRED(VERSION 2.6) 5 | 6 | set(BUILD_TYPE Release) 7 | 8 | set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake") 9 | 10 | set(EXECUTABLE_OUTPUT_PATH bin) 11 | 12 | find_package(Eigen3 REQUIRED) 13 | find_package(OpenCV REQUIRED) 14 | find_package(LibZip 1.1.1 REQUIRED) 15 | 16 | set(CMAKE_CXX_FLAGS 17 | "${CMAKE_CXX_FLAGS_RELEASE} ${SSE_FLAGS} -std=c++0x" 18 | ) 19 | 20 | include_directories( 21 | ${EIGEN3_INCLUDE_DIR} 22 | ${Boost_INCLUDE_DIRS} 23 | ${LIBZIP_INCLUDE_DIR_ZIP} 24 | ${LIBZIP_INCLUDE_DIR_ZIPCONF} 25 | ) 26 | 27 | 28 | add_executable(responseCalib src/main_responseCalib.cpp src/FOVUndistorter.cpp src/PhotometricUndistorter.cpp) 29 | target_link_libraries(responseCalib ${OpenCV_LIBS} ${LIBZIP_LIBRARY}) 30 | 31 | add_executable(playDataset src/main_playbackDataset.cpp src/FOVUndistorter.cpp src/PhotometricUndistorter.cpp) 32 | target_link_libraries(playDataset ${OpenCV_LIBS} ${LIBZIP_LIBRARY}) 33 | 34 | 35 | 36 | 37 | 38 | 39 | SET(CMAKE_MODULE_PATH ${CMAKE_INSTALL_PREFIX}/lib/cmake/ ) 40 | find_package(aruco) 41 | 42 | IF(aruco_FOUND) 43 | add_executable(vignetteCalib src/main_vignetteCalib.cpp src/FOVUndistorter.cpp src/PhotometricUndistorter.cpp) 44 | target_link_libraries(vignetteCalib ${OpenCV_LIBS} ${aruco_LIBS} ${LIBZIP_LIBRARY}) 45 | ELSE() 46 | message("================ aruco not found. not compiling vignetteCalib. ========================") 47 | ENDIF() 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, Jakob Engel 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 11 | 12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 13 | -------------------------------------------------------------------------------- /MatlabEvaluationCode/AlignSimEfficient.m: -------------------------------------------------------------------------------- 1 | function [ rmse, R, t, scale ] = AlignSimEfficient( gtPos, estimatedPos ) 2 | 3 | 4 | centroid_A = mean(estimatedPos,1); 5 | centroid_B = mean(gtPos,1); 6 | 7 | N = size(estimatedPos,1); 8 | H = (estimatedPos - repmat(centroid_A, N, 1))' * (gtPos - repmat(centroid_B, N, 1)); 9 | [U,S,V] = svd(H); 10 | R = V*U'; 11 | if det(R) < 0 12 | V(:,3) = V(:,3) * -1; 13 | R = V*U'; 14 | end 15 | 16 | mR_cA = -R*(centroid_A)'; 17 | 18 | A = estimatedPos * R' + repmat(mR_cA', N, 1); 19 | B = gtPos - repmat(centroid_B, N, 1); 20 | 21 | saa = 0; 22 | sab = 0; 23 | for i=1:size(A,1) 24 | saa = saa + A(i,:)*A(i,:)'; 25 | sab = sab + A(i,:)*B(i,:)'; 26 | end 27 | 28 | scale = sab/saa; 29 | t = scale*mR_cA + centroid_B'; 30 | rmse = (sum(sum((scale*A-B).^2))/size(A,1)).^0.5; 31 | 32 | if(isnan(scale)) 33 | R = nan(3); 34 | end 35 | 36 | 37 | end 38 | 39 | -------------------------------------------------------------------------------- /MatlabEvaluationCode/Example.m: -------------------------------------------------------------------------------- 1 | 2 | % load all sequences. 3 | % useful to evaluate many runs, as groundtruth file doesn't need to be 4 | % loaded again every time. 5 | allSeq = errorPerSequenceBenchmark('/home/engelj/bags/mocap_sequences'); 6 | 7 | 8 | 9 | % load only one sequence 10 | singleSeq = struct; 11 | singleSeq.name = 'sequence_01'; 12 | singleSeq.mocapRaw = importdata(['/home/engelj/bags/mocap_sequences/' singleSeq.name '/groundtruthSync.txt']); 13 | 14 | 15 | 16 | 17 | %% 18 | sequence = allSeq{29}; 19 | 20 | % =============== Evaluate: ================ 21 | % INPUT: 22 | % first argument: file name for estimated trajectory. 23 | % second argument: sequence (struct with ".name" and ".mocapRaw" property, where ".mocapRaw" contains the data from "groundtruthSync.txt" ) 24 | % third argument: 0=don't plot. 1=plot (x,y,z), aligned. 2=plot top-down view 25 | % 26 | % OUTPUT: 27 | % rmse = RMSE when just aligning the GT with the trajectory (e_\text{rmse}) 28 | % errTrafo = Sim(3) transformation transforming start- to end-segment (T_\text{drift}) 29 | % errAlign = Alignment Error (e_\text{align}). 30 | % errR = rotation drift (e_r) 31 | % errS = scale drift (e_s) 32 | % absErrA = RMSE for start-segment only (as plotted in Fig. 12, left) 33 | % absErrE = RMSE for end-segment only (as plotted in Fig. 12, right) 34 | % nkf = number of poses in estimated trajectory. 35 | 36 | 37 | [rmse, errTrafo, errAlign, errR, errS, abserrA, abserrE, nkf] = efficientEvalDrift(['examples/' sequence.name '.txt'], sequence, 2) 38 | 39 | 40 | -------------------------------------------------------------------------------- /MatlabEvaluationCode/efficientEvalDrift.m: -------------------------------------------------------------------------------- 1 | function [rmse, errTrafo, errAlign, errR, errS, abserrA, abserrE, nkf] = efficientEvalDrift( benchmark, sequence, plotfig ) 2 | 3 | errAlign=inf; 4 | errR=inf; 5 | errS=inf; 6 | abserrA=inf; 7 | abserrE=inf; 8 | rmse=inf; 9 | errTrafo=inf(4); 10 | nkf=0; 11 | 12 | 13 | 14 | mocapRaw = sequence.mocapRaw; 15 | estimatedTrajectory = importdata([benchmark]); 16 | 17 | 18 | if(size(estimatedTrajectory,1)==0) 19 | ['NO DATA ' sequence.name] 20 | return 21 | end 22 | 23 | 24 | % sort, just in case they are not sorted. 25 | [A B] = sort(estimatedTrajectory(:,1)); 26 | estimatedTrajectory = estimatedTrajectory(B,:); 27 | 28 | % default: don't plot 29 | if(nargin < 3 ) 30 | plotfig=0; 31 | end 32 | 33 | 34 | % if there is any NAN, something went wrong. 35 | if sum(sum(isnan(estimatedTrajectory))) > 0 36 | ['IS NAN' sequence.name] 37 | return 38 | end 39 | 40 | estimatedPosition = estimatedTrajectory(:,2:4); 41 | estimatedTimes = estimatedTrajectory(:,1); 42 | nkf = size(estimatedTimes,1); 43 | 44 | % assiciate via time-stamps. GT needs to have same timestamps (+- 0.001s) as estimated poses. 45 | gtPos = zeros(size(estimatedTimes,1),3); 46 | gtID = 1; 47 | for i=1:size(estimatedTimes,1) 48 | while(estimatedTimes(i) - mocapRaw(gtID,1) > 0.001 && gtID < size(mocapRaw,1)) 49 | gtID = gtID+1; 50 | end 51 | 52 | if(abs(estimatedTimes(i) - mocapRaw(gtID,1)) > 0.001) 53 | 'ERROR, cannot associate frame well' 54 | return 55 | end 56 | gtPos(i,1:3) = mocapRaw(gtID,2:4); 57 | end 58 | 59 | % eval and align segments are assumed to be half / half. 60 | nframes = size(mocapRaw,1); 61 | timesAlign = [mocapRaw(1,1) mocapRaw(floor(nframes/2),1)]; 62 | timesEval = [mocapRaw(ceil(nframes/2),1) mocapRaw(nframes,1)]; 63 | 64 | 65 | % align start segment 66 | lsdFramesAlign = (estimatedTimes >= timesAlign(1)) & (estimatedTimes <= timesAlign(2)) & (~isnan(gtPos(:,1))); 67 | estimatedPositionAlign = estimatedPosition(lsdFramesAlign,:); 68 | gtPosAlign = gtPos(lsdFramesAlign,:); 69 | 70 | 71 | lsdFramesEval = (estimatedTimes >= timesEval(1)) & (estimatedTimes <= timesEval(2)) & (~isnan(gtPos(:,1))); 72 | estimatedPositionEval = estimatedPosition(lsdFramesEval,:); 73 | gtPosEval = gtPos(lsdFramesEval,:); 74 | 75 | 76 | % align (7DoF) 77 | if(size(lsdFramesEval,1)==0 || size(lsdFramesAlign,1)==0) 78 | ['IS INCOMPLETE' sequence.name] 79 | return 80 | end 81 | 82 | 83 | 84 | [ abserrE, RE, tE, scaleE ] = AlignSimEfficient( gtPosEval, estimatedPositionEval ); 85 | [ abserrA, RA, tA, scaleA ] = AlignSimEfficient( gtPosAlign, estimatedPositionAlign ); 86 | 87 | 88 | 89 | 90 | if(isnan(abserrE) || isnan(abserrA) || isnan(scaleE) || isnan(scaleA)) 91 | ['IS NAN' sequence.name] 92 | return 93 | end 94 | 95 | 96 | 97 | 98 | 99 | % get sequence aligned by EVAL. 100 | estimatedPositionE_aligned = scaleE * estimatedPosition * RE' + repmat(tE', size(estimatedPosition,1), 1); 101 | 102 | % get sequence aligned by ALIGN. 103 | estimatedPositionA_aligned = estimatedPosition * scaleA * RA' + repmat(tA', size(estimatedPosition,1), 1); 104 | 105 | errS = scaleA/scaleE; % as factor 106 | errorquat = dcm2quat( RE*RA'); 107 | errR = 2*acos(errorquat(1))*180/pi; % as degree 108 | errAlign = (sum(sum((estimatedPositionE_aligned-estimatedPositionA_aligned).^2)) / size(estimatedPosition,1))^0.5; 109 | 110 | if( sum(sum(isnan(RE+RA))) > 0) 111 | errTrafo=inf(4); 112 | else 113 | errTrafo = [scaleE*RE tE; 0 0 0 1] * [scaleA*RA tA; 0 0 0 1]^-1; % as degree 114 | end 115 | 116 | 117 | [ rmse, ~, ~, ~ ] = AlignSimEfficient( [gtPosAlign; gtPosEval], [estimatedPositionAlign; estimatedPositionEval] ); 118 | 119 | 120 | 121 | 122 | 123 | 124 | if(plotfig==1) 125 | clf 126 | hold on 127 | plot(estimatedTimes-estimatedTimes(1), estimatedPositionA_aligned,'blue','LineWidth',2); 128 | plot(estimatedTimes-estimatedTimes(1), estimatedPositionE_aligned,'red','LineWidth',2); 129 | plot(estimatedTimes-estimatedTimes(1), gtPos,'green','LineWidth',3,'LineStyle','--'); 130 | grid on 131 | axis([0 estimatedTimes(end)-estimatedTimes(1) min(min(min(estimatedPositionE_aligned)),min(min(estimatedPositionA_aligned)))-4 max(max(max(estimatedPositionE_aligned)),max(max(estimatedPositionA_aligned)))+4]) 132 | end 133 | 134 | 135 | if(plotfig==2) 136 | 137 | H = ([estimatedPositionE_aligned; estimatedPositionA_aligned])' * ([estimatedPositionE_aligned; estimatedPositionA_aligned]); 138 | [U,S,V] = svd(H); 139 | R = V*U'; 140 | if det(R) < 0 141 | V(:,3) = V(:,3) * -1; 142 | R = V*U'; 143 | end 144 | 145 | 146 | estimatedPositionE_aligned_rot = estimatedPositionE_aligned*U; 147 | estimatedPositionA_aligned_rot = estimatedPositionA_aligned*U; 148 | gtPos_rot = gtPos*U; 149 | 150 | 151 | d1=2; 152 | d2=1; 153 | 154 | n=size(gtPos_rot,1); 155 | clf 156 | hold on 157 | plot(gtPos_rot(1:(n/2),d1), gtPos_rot(1:(n/2),d2),'green','LineWidth',3); 158 | plot(gtPos_rot((n/2):end,d1), gtPos_rot((n/2):end,d2),'green','LineWidth',3); 159 | plot(estimatedPositionE_aligned_rot(:,d1), estimatedPositionE_aligned_rot(:,d2),'red','LineWidth',2) 160 | plot(estimatedPositionA_aligned_rot(:,d1), estimatedPositionA_aligned_rot(:,d2),'blue','LineWidth',2) 161 | axis equal 162 | grid on 163 | end 164 | 165 | end 166 | 167 | -------------------------------------------------------------------------------- /MatlabEvaluationCode/errorPerSequenceBenchmark.m: -------------------------------------------------------------------------------- 1 | function [ s ] = errorPerSequenceBenchmark( datasetFolder ) 2 | 3 | 4 | names = { ... 5 | 'sequence_01' ... 6 | 'sequence_02' ... 7 | 'sequence_03' ... 8 | 'sequence_04' ... 9 | 'sequence_05' ... 10 | 'sequence_06' ... 11 | 'sequence_07' ... 12 | 'sequence_08' ... 13 | 'sequence_09' ... 14 | 'sequence_10' ... 15 | 'sequence_11' ... 16 | 'sequence_12' ... 17 | 'sequence_13' ... 18 | 'sequence_14' ... 19 | 'sequence_15' ... 20 | 'sequence_16' ... 21 | 'sequence_17' ... 22 | 'sequence_18' ... 23 | 'sequence_19' ... 24 | 'sequence_20' ... 25 | 'sequence_21' ... 26 | 'sequence_22' ... 27 | 'sequence_23' ... 28 | 'sequence_24' ... 29 | 'sequence_25' ... 30 | 'sequence_26' ... 31 | 'sequence_27' ... 32 | 'sequence_28' ... 33 | 'sequence_29' ... 34 | 'sequence_30' ... 35 | 'sequence_31' ... 36 | 'sequence_32' ... 37 | 'sequence_33' ... 38 | 'sequence_34' ... 39 | 'sequence_35' ... 40 | 'sequence_36' ... 41 | 'sequence_37' ... 42 | 'sequence_38' ... 43 | 'sequence_39' ... 44 | 'sequence_40' ... 45 | 'sequence_41' ... 46 | 'sequence_42' ... 47 | 'sequence_43' ... 48 | 'sequence_44' ... 49 | 'sequence_45' ... 50 | 'sequence_46' ... 51 | 'sequence_47' ... 52 | 'sequence_48' ... 53 | 'sequence_49' ... 54 | 'sequence_50'}; 55 | 56 | 57 | n = size(names,2); 58 | 59 | 60 | s = {}; 61 | 62 | for i=1:n 63 | s{i}.name = names{i}; 64 | s{i}.mocapRaw = importdata([datasetFolder '/' s{i}.name '/groundtruthSync.txt']); 65 | end 66 | 67 | end -------------------------------------------------------------------------------- /MatlabEvaluationCode/examples/sequence_09.txt: -------------------------------------------------------------------------------- 1 | 1461243311.78245 -0.25499673 -0.18261745 -0.08147063 0.15058457 -0.31035654 -0.29321470 0.89164356 2 | 1461243311.90306 -0.32420711 -0.18295736 -0.06993428 0.16555891 -0.34561004 -0.27082703 0.88306097 3 | 1461243312.04260 -0.40400609 -0.17637920 -0.05174674 0.17163137 -0.38358504 -0.25323430 0.87136535 4 | 1461243312.30311 -0.55792949 -0.15172224 -0.01824559 0.17415477 -0.46208344 -0.22046054 0.84115763 5 | 1461243312.48289 -0.66049861 -0.12342659 0.02076189 0.15968844 -0.49023676 -0.19295720 0.83482636 6 | 1461243312.66249 -0.75288379 -0.09251527 0.06854656 0.15496360 -0.48316981 -0.16918081 0.84493258 7 | 1461243312.82251 -0.82823210 -0.06974726 0.11272572 0.15497362 -0.45651282 -0.15447551 0.86239002 8 | 1461243313.12262 -0.99209244 -0.03282216 0.19624837 0.13896731 -0.40131764 -0.13631469 0.89501427 9 | 1461243313.24255 -1.07138386 -0.01788546 0.23872908 0.12056785 -0.36697757 -0.11898862 0.91467621 10 | 1461243313.36253 -1.15798724 -0.00384314 0.27723544 0.08540860 -0.35391196 -0.10522900 0.92540724 11 | 1461243313.50241 -1.26052454 -0.00240964 0.30762207 0.07312244 -0.35695077 -0.09912007 0.92596677 12 | 1461243313.62244 -1.33918886 -0.00889732 0.33096761 0.06858622 -0.33713295 -0.07705630 0.93578824 13 | 1461243313.74277 -1.41682139 -0.01464935 0.35343133 0.07374646 -0.31482694 -0.06333444 0.94415793 14 | 1461243313.82277 -1.46433224 -0.02068359 0.36994549 0.08123862 -0.28135880 -0.07089185 0.95352601 15 | 1461243313.90241 -1.51079427 -0.03446014 0.38223776 0.10346525 -0.25133895 -0.05931271 0.96052365 16 | 1461243314.00239 -1.56512180 -0.04580681 0.39486107 0.09904617 -0.20606705 -0.05727700 0.97182590 17 | 1461243314.12269 -1.62850270 -0.06086915 0.40077547 0.09609609 -0.17119471 -0.07059476 0.97799504 18 | 1461243314.26258 -1.69839070 -0.08349641 0.39054905 0.12111885 -0.16085493 -0.06472113 0.97737766 19 | 1461243314.42268 -1.76753930 -0.09228807 0.36328204 0.15005638 -0.15853869 -0.05854885 0.97412556 20 | 1461243314.60270 -1.83902506 -0.06658902 0.33247629 0.14008744 -0.15257357 -0.05478225 0.97677823 21 | 1461243314.74232 -1.89858365 -0.04222678 0.29884771 0.12531412 -0.17073125 -0.06113726 0.97540220 22 | 1461243314.92240 -1.96450436 -0.02807468 0.25431821 0.11399189 -0.17830058 -0.04640871 0.97624842 23 | 1461243315.08262 -2.04169310 -0.01282264 0.21715468 0.10890011 -0.19577611 -0.05657381 0.97293982 24 | 1461243315.22230 -2.12038527 -0.00375687 0.18284274 0.11959032 -0.20787315 -0.05454746 0.96928401 25 | 1461243315.34232 -2.19129890 0.01082097 0.15486878 0.12142626 -0.22742828 -0.05948029 0.96436204 26 | 1461243315.46250 -2.26642424 0.01627331 0.12671989 0.13900060 -0.24480353 -0.05442335 0.95801261 27 | 1461243315.60230 -2.34954556 0.01805865 0.10419297 0.14695841 -0.25271912 -0.03372599 0.95571901 28 | 1461243315.72268 -2.42261950 0.01847019 0.08289486 0.13061809 -0.26312963 0.00111359 0.95587681 29 | 1461243315.82235 -2.48833776 0.01173052 0.05230382 0.13659546 -0.28605421 0.00689599 0.94840240 30 | 1461243315.92230 -2.54985658 0.00124428 0.01552778 0.15131805 -0.30817232 0.02267912 0.93894533 31 | 1461243316.04261 -2.60765371 -0.01059385 -0.03101807 0.17896238 -0.31008183 0.03981914 0.93286449 32 | 1461243316.18247 -2.66548624 0.01328944 -0.07486388 0.17045904 -0.31241944 0.06902302 0.93197298 33 | 1461243316.26256 -2.69987478 0.05040487 -0.09300118 0.12493113 -0.32111640 0.08598720 0.93481692 34 | 1461243316.34391 -2.73207290 0.09245579 -0.11095876 0.08985855 -0.32607635 0.08451461 0.93726033 35 | 1461243316.44260 -2.76423044 0.14783040 -0.13095181 0.05474473 -0.32167932 0.06102477 0.94329285 36 | 1461243316.52266 -2.78986241 0.19656641 -0.14855066 0.01751041 -0.33511168 0.03234499 0.94146022 37 | 1461243316.62377 -2.81155607 0.25667764 -0.16695380 -0.02128687 -0.34258722 0.01406660 0.93913950 38 | 1461243316.72307 -2.82216682 0.31739991 -0.18050836 -0.06600062 -0.33955826 0.00028096 0.93826650 39 | 1461243317.02227 -2.79322567 0.39482802 -0.17443781 -0.08021956 -0.27753609 -0.01785725 0.95719364 40 | 1461243317.14220 -2.75710367 0.39949088 -0.15200266 -0.07370226 -0.23396908 0.00500338 0.96943355 41 | 1461243317.28226 -2.70108256 0.42284155 -0.13278221 -0.07836146 -0.20661366 -0.02299085 0.97500856 42 | 1461243317.36221 -2.65432266 0.44131009 -0.12435975 -0.09417159 -0.17373923 -0.03306434 0.97972095 43 | 1461243317.46219 -2.58800708 0.46221411 -0.11726226 -0.12019798 -0.14308132 -0.02489793 0.98206938 44 | 1461243317.58221 -2.50762046 0.47242257 -0.11452213 -0.12950143 -0.12186544 -0.03653926 0.98338348 45 | 1461243317.68295 -2.43435767 0.47439733 -0.11269280 -0.14301373 -0.10384741 -0.04541176 0.98320932 46 | 1461243317.80224 -2.35596136 0.45354143 -0.10280789 -0.12056293 -0.09548241 -0.05735888 0.98643684 47 | 1461243317.90286 -2.28963358 0.43011865 -0.09176540 -0.09881184 -0.07787963 -0.04712681 0.99093393 48 | 1461243318.16231 -2.12591374 0.35793076 -0.02662911 -0.04351527 -0.04398142 -0.03690400 0.99740170 49 | 1461243318.28221 -2.05255189 0.32146914 0.02045798 -0.01285313 -0.03092761 -0.04193300 0.99855891 50 | 1461243318.38234 -1.99258225 0.28518785 0.06317769 0.01758152 -0.00997320 -0.03466747 0.99919447 51 | 1461243318.50269 -1.93856636 0.23452827 0.11174868 0.05824089 -0.01271529 -0.02721587 0.99785050 52 | 1461243318.66362 -1.86907957 0.17073616 0.17315076 0.09209261 -0.00455651 -0.02882892 0.99532260 53 | 1461243318.80440 -1.80559493 0.12420226 0.23375748 0.13441532 -0.00514257 -0.02736796 0.99053373 54 | 1461243318.83847 -1.79644920 0.11996578 0.24097667 0.13958514 -0.00812166 -0.02819781 0.98977518 55 | 1461243319.00231 -1.71075726 0.07840867 0.33324731 0.15269343 0.00096118 -0.04126752 0.98741115 56 | 1461243319.20264 -1.62866373 0.03398168 0.44269655 0.16211976 0.00793423 -0.04794360 0.98557376 57 | 1461243319.38252 -1.57394230 0.01580126 0.53679732 0.14398930 0.01575161 -0.02907201 0.98902669 58 | 1461243319.56210 -1.53901982 0.01099063 0.65510338 0.14783485 0.01930730 -0.03426986 0.98822956 59 | 1461243319.70207 -1.52925889 0.01523402 0.76366400 0.12478778 0.02560233 -0.05202408 0.99048777 60 | 1461243319.84204 -1.53135378 0.00337029 0.87432433 0.13898770 0.02104739 -0.04304701 0.98913416 61 | 1461243319.98243 -1.53471628 -0.01174068 0.97716456 0.13691438 0.02669533 -0.02775779 0.98983398 62 | 1461243320.10293 -1.53896264 -0.03968248 1.06681910 0.16272248 0.03015902 -0.00293833 0.98620647 63 | 1461243320.20224 -1.53348431 -0.04290471 1.13814861 0.17798902 0.05241785 0.01471918 0.98252513 64 | 1461243320.30240 -1.53917734 -0.04780875 1.21880474 0.18719609 0.04901730 0.04387847 0.98011714 65 | 1461243320.40240 -1.54672037 -0.05237723 1.30093016 0.18600650 0.05677358 0.05242393 0.97950501 66 | 1461243320.50207 -1.55960619 -0.06046906 1.37857626 0.18018962 0.05918855 0.05047853 0.98055104 67 | 1461243320.58210 -1.56888034 -0.06724298 1.43635319 0.17434427 0.06448838 0.04989019 0.98130336 68 | 1461243320.68245 -1.57778844 -0.07803262 1.50773162 0.17305786 0.07195195 0.06889156 0.97986114 69 | 1461243320.76256 -1.58112263 -0.06793936 1.56301816 0.16533416 0.08387011 0.06631251 0.98042494 70 | 1461243320.84278 -1.58049212 -0.06242613 1.61984828 0.17062761 0.10448945 0.08199516 0.97634265 71 | 1461243320.90256 -1.57846868 -0.05547174 1.66310462 0.16281257 0.12572439 0.08510221 0.97490669 72 | 1461243320.96394 -1.57523962 -0.05063290 1.70574823 0.15907401 0.15081789 0.08633091 0.97185205 73 | 1461243321.04266 -1.57117108 -0.04739842 1.75734105 0.15657265 0.17252984 0.09582186 0.96774823 74 | 1461243321.12592 -1.56351440 -0.04868493 1.80399743 0.16506137 0.19954760 0.10940987 0.95966920 75 | 1461243321.22417 -1.55418843 -0.05120239 1.85821665 0.15783823 0.22025083 0.11483140 0.95571461 76 | 1461243321.34210 -1.53748797 -0.05950433 1.91933868 0.16795147 0.23479321 0.13726448 0.94753518 77 | 1461243321.48209 -1.51609833 -0.06470428 1.98795910 0.17353674 0.23870983 0.13368207 0.94606116 78 | 1461243321.60201 -1.49903584 -0.06918722 2.05828605 0.15399837 0.22785575 0.10719527 0.95544515 79 | 1461243321.74204 -1.47785727 -0.06667600 2.14015514 0.13318221 0.20723669 0.07781164 0.96605424 80 | 1461243321.86202 -1.47402299 -0.08410302 2.20839058 0.13928505 0.16781564 0.03782355 0.97519586 81 | 1461243322.06197 -1.47087839 -0.10575146 2.30780607 0.15032864 0.13486389 0.02554159 0.97906111 82 | 1461243322.26189 -1.46365886 -0.11472146 2.41884384 0.16380502 0.12700292 0.04578491 0.97721130 83 | 1461243322.40220 -1.44549593 -0.11598082 2.50319288 0.18163941 0.15616477 0.06483856 0.96871856 84 | 1461243322.52422 -1.42691750 -0.11983071 2.57198202 0.19642680 0.18429247 0.07485550 0.96012991 85 | 1461243322.64196 -1.40637490 -0.12401129 2.63943009 0.19079471 0.21807624 0.08630108 0.95320106 86 | 1461243322.78208 -1.37731420 -0.12901252 2.71682417 0.19314742 0.24763610 0.10190944 0.94391996 87 | 1461243322.94200 -1.34189063 -0.13295567 2.80311114 0.20035896 0.27182590 0.09930033 0.93600556 88 | 1461243323.08186 -1.29518503 -0.14736802 2.87968832 0.22225848 0.30233083 0.10634177 0.92080870 89 | 1461243323.22447 -1.25119740 -0.17090507 2.95216484 0.22452467 0.33065919 0.09276598 0.91194717 90 | 1461243323.36186 -1.19950394 -0.19594014 3.01786260 0.23853134 0.35793579 0.08237087 0.89899934 91 | 1461243323.50331 -1.13158985 -0.20553379 3.08860960 0.24430586 0.38618290 0.08600198 0.88531411 92 | 1461243323.64190 -1.04786961 -0.21578677 3.16315983 0.24141270 0.41937432 0.07903404 0.87154960 93 | 1461243323.78196 -0.95679299 -0.23633837 3.23258118 0.22669001 0.45720156 0.05969667 0.85791298 94 | 1461243323.94202 -0.84588899 -0.27152677 3.30042303 0.24111043 0.47723690 0.05727248 0.84310768 95 | 1461243324.08194 -0.73628132 -0.29379611 3.34959455 0.25442346 0.50351127 0.05741733 0.82367976 96 | 1461243324.22369 -0.62404229 -0.32244939 3.39523780 0.25676891 0.52524323 0.03854152 0.81037265 97 | 1461243324.40179 -0.48645637 -0.36610847 3.44955304 0.26840182 0.53451735 0.04632838 0.80006584 98 | 1461243324.56190 -0.36513820 -0.40043906 3.50508388 0.26373113 0.53430740 0.05222187 0.80139526 99 | 1461243324.70189 -0.25402287 -0.42665226 3.55598288 0.26867071 0.53957869 0.03101925 0.79731342 100 | 1461243324.84206 -0.14038174 -0.45697110 3.60660328 0.26627517 0.55345530 0.01107674 0.78908939 101 | 1461243324.96223 -0.04427972 -0.49536148 3.64857512 0.27912520 0.54049944 0.02814475 0.79319440 102 | 1461243325.06182 0.03437455 -0.53841475 3.68139913 0.30317733 0.50850853 0.03231422 0.80526913 103 | 1461243325.18190 0.13304614 -0.58173644 3.70892664 0.33725735 0.49986235 0.03687923 0.79689085 104 | 1461243325.32359 0.24498947 -0.61610401 3.74387177 0.33052340 0.47696724 0.01547115 0.81425867 105 | 1461243325.42358 0.32087614 -0.63400139 3.76952136 0.29895030 0.46083627 -0.00201188 0.83561630 106 | 1461243325.54175 0.39640793 -0.65501248 3.79430061 0.25514105 0.46122184 -0.03572505 0.84905900 107 | 1461243325.68171 0.48383256 -0.66867349 3.81426063 0.25201004 0.47322138 -0.02847902 0.84364768 108 | 1461243325.76162 0.54026524 -0.66489011 3.82260871 0.22560165 0.51738171 -0.03113276 0.82489442 109 | 1461243325.86194 0.60727111 -0.65564360 3.84548561 0.18196287 0.52216544 -0.01490186 0.83307305 110 | 1461243325.94206 0.66409068 -0.65892820 3.85338449 0.16309147 0.56577885 -0.03203405 0.80763190 111 | 1461243326.06166 0.74062105 -0.67561017 3.86928986 0.13564466 0.58903548 -0.05170038 0.79496214 112 | 1461243326.18216 0.80944979 -0.70106724 3.88930549 0.13822554 0.59352803 -0.06895570 0.78985017 113 | 1461243326.26171 0.85017009 -0.71969664 3.90505577 0.15911234 0.58592629 -0.10866465 0.78712492 114 | 1461243326.34158 0.89492578 -0.73006247 3.91175572 0.16872291 0.60553628 -0.14918312 0.76328421 115 | 1461243326.44176 0.95987581 -0.73137535 3.92113668 0.17609182 0.63356542 -0.15861547 0.73649689 116 | 1461243326.56163 1.04574734 -0.73928719 3.94674631 0.16600105 0.61434641 -0.17172505 0.75201905 117 | 1461243326.68177 1.12405358 -0.76535377 3.95968997 0.15894145 0.61289023 -0.20680252 0.74587927 118 | 1461243326.82355 1.20121165 -0.79479396 3.97606481 0.12958335 0.63303191 -0.19885638 0.73684116 119 | 1461243326.92299 1.24994882 -0.81531377 4.01481346 0.14202590 0.60017669 -0.21367467 0.75760130 120 | 1461243327.04170 1.31156233 -0.83142846 4.06429004 0.13809026 0.56599592 -0.21666827 0.78334830 121 | 1461243327.20194 1.40097154 -0.84344672 4.11071145 0.11658873 0.56617441 -0.22599763 0.78407824 122 | 1461243327.32198 1.46958508 -0.86621682 4.13661756 0.11848170 0.59335111 -0.23504125 0.76069189 123 | 1461243327.50202 1.56334328 -0.90606914 4.17599186 0.14433368 0.59928298 -0.23315218 0.75210888 124 | 1461243327.74161 1.71176543 -0.90780596 4.23039612 0.11434706 0.61449784 -0.21882068 0.74928944 125 | 1461243327.94165 1.84293850 -0.92989868 4.28443814 0.11381095 0.60901226 -0.21897842 0.75379015 126 | 1461243328.14174 1.95888630 -0.97532171 4.33698613 0.12032826 0.59702598 -0.21867398 0.76240591 127 | 1461243328.30174 2.04874949 -1.00087719 4.38111937 0.12736035 0.58287498 -0.21880742 0.77211360 128 | 1461243328.44205 2.13595939 -1.00917472 4.42493277 0.11130584 0.58051779 -0.21626464 0.77707124 129 | 1461243328.56157 2.20840508 -1.03286811 4.46221341 0.12381743 0.58376004 -0.21679617 0.77258843 130 | 1461243328.68158 2.27897792 -1.05755307 4.50190368 0.13963779 0.57686681 -0.20655495 0.77785668 131 | 1461243328.82375 2.35770576 -1.06939520 4.53868851 0.13672430 0.58725208 -0.18196698 0.77674287 132 | 1461243328.92404 2.41919411 -1.07232889 4.57586437 0.12950733 0.56946183 -0.17286813 0.79313157 133 | 1461243329.04176 2.49309202 -1.08074277 4.59817642 0.14374837 0.59095668 -0.16442683 0.77657609 134 | 1461243329.18152 2.58357622 -1.09447180 4.62606650 0.13577307 0.60523599 -0.14581353 0.77070973 135 | 1461243329.28155 2.64615664 -1.11773775 4.63244570 0.15676979 0.63194935 -0.13437085 0.74699915 136 | 1461243329.40174 2.71679315 -1.13787568 4.64940144 0.16452445 0.66411117 -0.11728624 0.71981386 137 | 1461243329.50193 2.77482022 -1.13917501 4.67166956 0.15206213 0.69015571 -0.09865779 0.70059179 138 | 1461243329.62329 2.84145438 -1.13950112 4.70580873 0.12661886 0.70455782 -0.09633085 0.69158246 139 | 1461243329.72368 2.89377149 -1.14540034 4.72685055 0.11544684 0.72464949 -0.08995898 0.67339626 140 | 1461243329.82344 2.93924217 -1.16041563 4.73372280 0.11331903 0.75575995 -0.09198888 0.63837586 141 | 1461243329.90147 2.97240546 -1.16843643 4.72420637 0.12250521 0.79246492 -0.05971079 0.59449680 142 | 1461243329.98195 3.00191299 -1.17444366 4.71007497 0.13082751 0.82781863 -0.02989725 0.54470784 143 | 1461243330.06141 3.02822803 -1.17703474 4.69410904 0.13060571 0.85580991 -0.01119182 0.50040613 144 | 1461243330.16233 3.05870124 -1.17759588 4.67376842 0.13182325 0.88101936 -0.00523537 0.45431279 145 | 1461243330.28263 3.09009990 -1.17286873 4.64637031 0.12958630 0.90684930 0.00050330 0.40103800 146 | 1461243330.40328 3.13195084 -1.17007890 4.61891419 0.12146683 0.92526446 0.01155720 0.35916279 147 | 1461243330.54142 3.18065632 -1.17670710 4.58477390 0.11164364 0.94169294 0.01925726 0.31682685 148 | 1461243330.72195 3.23781898 -1.19218751 4.53919719 0.10365390 0.95603942 0.02697277 0.27297797 149 | 1461243330.88162 3.29343110 -1.19643778 4.48794643 0.11311977 0.96688321 0.03153976 0.22659659 150 | 1461243331.08174 3.38110501 -1.19539280 4.41640207 0.11466360 0.97203477 0.04183509 0.20062523 151 | 1461243331.28152 3.47594091 -1.21597609 4.33107865 0.12212327 0.97189566 0.04630084 0.19585957 152 | 1461243331.46152 3.54901705 -1.23359616 4.25014957 0.12356035 0.97359497 0.03192875 0.18927819 153 | 1461243331.60148 3.60869163 -1.24330602 4.18080316 0.14680013 0.96843623 0.01304922 0.20102415 154 | 1461243331.74184 3.66328297 -1.26560261 4.09793636 0.16414964 0.96459039 -0.00629585 0.20635076 155 | 1461243331.86131 3.71591131 -1.29246421 4.02456148 0.14699118 0.96428940 -0.01076417 0.22005379 156 | 1461243331.98144 3.76198885 -1.33162554 3.95499454 0.15507915 0.96017364 -0.02806763 0.23071464 157 | 1461243332.08141 3.78240318 -1.36462097 3.89551132 0.17678150 0.95854274 -0.05509338 0.21658448 158 | 1461243332.18161 3.78785544 -1.38891560 3.82851901 0.20602081 0.95767659 -0.07325199 0.18720342 159 | 1461243332.26139 3.77588680 -1.40588401 3.77562335 0.24388290 0.95295977 -0.09270980 0.15425210 160 | 1461243332.32331 3.75459714 -1.41902377 3.73617647 0.26138309 0.95194008 -0.11577187 0.10993561 161 | 1461243332.38134 3.72506435 -1.43095952 3.70035529 0.28129629 0.94512737 -0.15346792 0.06367298 162 | 1461243332.44163 3.69500712 -1.43397407 3.66381316 0.27142787 0.94846554 -0.16270518 0.01634175 163 | 1461243332.52331 3.65568017 -1.42364096 3.61195920 0.27984584 0.94609120 -0.15735776 -0.04285200 164 | 1461243332.60129 3.61738297 -1.40035049 3.55977324 0.26998889 0.94929617 -0.13326729 -0.09045783 165 | 1461243332.68140 3.57145517 -1.37040988 3.51431544 0.28510124 0.93999015 -0.12171403 -0.14255350 166 | 1461243332.74130 3.53370981 -1.34290595 3.48520710 0.28071980 0.93411207 -0.10915558 -0.19161444 167 | 1461243332.84127 3.47673595 -1.29618853 3.43949384 0.30189471 0.91781600 -0.09821354 -0.23838515 168 | 1461243332.96158 3.41122801 -1.24403793 3.38384077 0.32413493 0.89884494 -0.08546592 -0.28232943 169 | 1461243333.16131 3.31865412 -1.20094028 3.29821080 0.31045942 0.89523732 -0.06314544 -0.31333329 170 | 1461243333.36165 3.21478725 -1.17810549 3.22940897 0.30881145 0.89217987 -0.06887918 -0.32234489 171 | 1461243333.52155 3.12186681 -1.13899851 3.18024899 0.25904721 0.90743397 -0.05771896 -0.32577086 172 | 1461243333.68128 3.02904472 -1.09070300 3.13002782 0.20192258 0.92337611 -0.01387899 -0.32620729 173 | 1461243333.86121 2.92466475 -1.05361434 3.08110911 0.18451043 0.93237277 0.00312362 -0.31084910 174 | 1461243334.02124 2.82626843 -1.02730909 3.04641290 0.17434633 0.94092757 -0.01469631 -0.28990116 175 | 1461243334.16119 2.73352864 -0.99922219 3.01707532 0.16212068 0.95093288 -0.02834732 -0.26199232 176 | 1461243334.30173 2.63653495 -0.97653537 2.98947820 0.15378572 0.95775686 -0.02801515 -0.24138536 177 | 1461243334.44142 2.53427194 -0.96185242 2.96206585 0.15169439 0.95674922 -0.02207699 -0.24724959 178 | 1461243334.58190 2.43662193 -0.94722385 2.93224179 0.14602861 0.95837954 -0.02142811 -0.24438727 179 | 1461243334.70206 2.34896919 -0.91873708 2.90860756 0.13533693 0.95694320 -0.01488084 -0.25636341 180 | 1461243334.82269 2.26061599 -0.88309689 2.88141366 0.12016214 0.95570273 0.00211298 -0.26867990 181 | 1461243334.92242 2.18585895 -0.85518153 2.85617292 0.12363424 0.94891680 0.01512440 -0.28990126 182 | 1461243335.04182 2.10219908 -0.83078826 2.82347391 0.13638772 0.94246316 0.02708830 -0.30401941 183 | 1461243335.20113 1.99836131 -0.79011786 2.77837373 0.15381692 0.93358926 0.05869529 -0.31828651 184 | 1461243335.36152 1.88948771 -0.73850547 2.73008332 0.17164297 0.92126680 0.08956016 -0.33732054 185 | 1461243335.52136 1.78794641 -0.69821827 2.68053114 0.18026384 0.91125911 0.11727256 -0.35122489 186 | 1461243335.72111 1.67723268 -0.66661123 2.61528246 0.18825171 0.90497990 0.13212982 -0.35793071 187 | 1461243335.90107 1.58408529 -0.62797096 2.55217603 0.17586928 0.89664364 0.15287970 -0.37646777 188 | 1461243336.06168 1.50491588 -0.58851450 2.48938545 0.15895571 0.88534435 0.17067160 -0.40220600 189 | 1461243336.20160 1.43924301 -0.56107633 2.43627976 0.16493606 0.87074595 0.17543132 -0.42874402 190 | 1461243336.34130 1.37467566 -0.53954238 2.38306651 0.18077465 0.85715255 0.17710459 -0.44860227 191 | 1461243336.44124 1.32272327 -0.53391640 2.34613209 0.18187865 0.84860653 0.15317294 -0.47257292 192 | 1461243336.54124 1.27183829 -0.53057184 2.30512196 0.17574741 0.84877724 0.12821233 -0.48192493 193 | 1461243336.64111 1.22045912 -0.52519224 2.26364693 0.15453769 0.85137916 0.11726897 -0.48735984 194 | 1461243336.76123 1.15715378 -0.52283569 2.21582890 0.13438990 0.85330099 0.10388549 -0.49297524 195 | 1461243336.90138 1.09399777 -0.53084368 2.15984118 0.11285402 0.86365019 0.08780602 -0.48338641 196 | 1461243337.02350 1.04658712 -0.54505424 2.11161093 0.10450446 0.87182128 0.05763506 -0.47506282 197 | 1461243337.14117 0.99881687 -0.55573825 2.06219679 0.11290481 0.87508613 0.01517813 -0.47036836 198 | 1461243337.28107 0.94176175 -0.55789660 2.00116494 0.13434283 0.87388660 -0.03200590 -0.46610068 199 | 1461243337.42288 0.87918590 -0.54998699 1.94405367 0.14348187 0.86256830 -0.05405224 -0.48214855 200 | 1461243337.56141 0.81397888 -0.54325656 1.89410983 0.14771245 0.84836379 -0.06615183 -0.50406731 201 | 1461243337.70115 0.74477851 -0.53591266 1.85720188 0.14625442 0.83521614 -0.07049575 -0.52540841 202 | 1461243337.86118 0.66839504 -0.52043008 1.82918700 0.15534372 0.81763656 -0.08800649 -0.54735148 203 | 1461243338.02119 0.57716172 -0.49916906 1.81504783 0.17182471 0.79834111 -0.10693877 -0.56717885 204 | 1461243338.18096 0.49560292 -0.47672802 1.80629861 0.17948537 0.78261186 -0.10854738 -0.58610676 205 | 1461243338.34131 0.43231294 -0.45681660 1.80059942 0.16011489 0.78130997 -0.08154404 -0.59771943 206 | 1461243338.50104 0.36506508 -0.44215409 1.80676957 0.14652245 0.77116576 -0.07930994 -0.61444648 207 | 1461243338.66095 0.30547087 -0.42501221 1.82182456 0.15583765 0.75307216 -0.08742699 -0.63320886 208 | 1461243338.80125 0.25553179 -0.40154068 1.83477021 0.16713686 0.73384643 -0.08869798 -0.65243188 209 | 1461243338.94116 0.20844094 -0.37300453 1.83776075 0.18208456 0.73405410 -0.05257720 -0.65210845 210 | 1461243339.12278 0.15610370 -0.35525744 1.83792716 0.19249730 0.73846094 -0.01606820 -0.64603564 211 | 1461243339.34092 0.09469857 -0.33990397 1.84245586 0.16802975 0.73877702 -0.00494671 -0.65264848 212 | 1461243339.54123 0.04139691 -0.33110849 1.84206012 0.15420120 0.73666881 -0.01969780 -0.65814364 213 | 1461243339.74106 -0.00929857 -0.31201483 1.84131327 0.14524225 0.72516434 -0.00687430 -0.67304837 214 | 1461243339.98098 -0.04492561 -0.28581780 1.82991713 0.14465024 0.71379963 0.02151797 -0.68491122 215 | 1461243340.20116 -0.05431962 -0.26553188 1.80133034 0.15613527 0.71809891 0.05226639 -0.67618338 216 | 1461243340.60087 -0.09484719 -0.25784106 1.77160425 0.15669597 0.71094722 0.05588258 -0.68328439 217 | 1461243340.88074 -0.13873493 -0.25879063 1.76135468 0.15136055 0.69557394 0.05469864 -0.70019636 218 | 1461243341.08079 -0.18171426 -0.25511233 1.75293849 0.14169531 0.68606958 0.04412523 -0.71223868 219 | 1461243341.22118 -0.21701510 -0.24725557 1.75461478 0.13375006 0.66986632 0.04100318 -0.72918364 220 | 1461243341.34079 -0.24665882 -0.23170352 1.76423787 0.13710316 0.64436063 0.05465843 -0.75034296 221 | 1461243341.42083 -0.26420559 -0.22568884 1.77589826 0.13909994 0.61562857 0.05657322 -0.77359688 222 | 1461243341.58112 -0.30178050 -0.21011750 1.79237455 0.13444365 0.59604453 0.06987239 -0.78852627 223 | 1461243341.82080 -0.35008381 -0.17791725 1.81721131 0.13958838 0.57574561 0.09754524 -0.79969807 224 | 1461243342.10074 -0.38202316 -0.14610853 1.83964127 0.16241082 0.57950180 0.11213888 -0.79071187 225 | 1461243342.32102 -0.39581724 -0.11381254 1.84259572 0.18019328 0.60078705 0.14320283 -0.76555748 226 | 1461243342.58103 -0.42456168 -0.07541079 1.84146032 0.18553028 0.61222720 0.17686916 -0.74797972 227 | 1461243342.82226 -0.46552453 -0.05575064 1.83491721 0.17916863 0.63570703 0.18885281 -0.72671163 228 | 1461243342.94108 -0.48589770 -0.04275808 1.82077730 0.17597564 0.66791124 0.20164687 -0.69445351 229 | 1461243343.10096 -0.50723902 -0.02314756 1.80697724 0.17311651 0.69340463 0.22691150 -0.66161308 230 | 1461243343.24066 -0.51998680 -0.00943073 1.79832086 0.17091996 0.70992682 0.26072970 -0.63151429 231 | 1461243343.38096 -0.53556614 -0.00454580 1.78540903 0.16938362 0.73482624 0.27041142 -0.59851253 232 | 1461243343.54062 -0.55757087 0.00245954 1.77357664 0.15900539 0.75978084 0.26854169 -0.57038208 233 | 1461243343.70090 -0.57722959 0.02582581 1.75961898 0.16251301 0.77940331 0.28138543 -0.53566989 234 | 1461243343.82081 -0.58923795 0.04123464 1.73964527 0.16825111 0.80104338 0.28141602 -0.50082541 235 | 1461243343.90056 -0.59478208 0.04972890 1.71895204 0.16153242 0.82724546 0.28898348 -0.45393917 236 | 1461243344.00135 -0.60255641 0.05514570 1.69442014 0.14959624 0.85440895 0.28515419 -0.40779087 237 | 1461243344.10068 -0.60206768 0.05749732 1.67049823 0.14651551 0.87814333 0.28536178 -0.35491710 238 | 1461243344.20087 -0.60447102 0.05529871 1.64871130 0.14263456 0.89767710 0.27719610 -0.31143783 239 | 1461243344.30066 -0.60582724 0.04963484 1.62522939 0.13106370 0.91780129 0.27074230 -0.25915576 240 | 1461243344.40112 -0.60909468 0.04149515 1.60009096 0.11272354 0.93272363 0.26793771 -0.21337625 241 | 1461243344.48079 -0.60985005 0.03027020 1.57314790 0.09296086 0.94932163 0.25011691 -0.16609714 242 | 1461243344.58094 -0.61073031 0.01840559 1.53849246 0.06972251 0.96440104 0.22964044 -0.11106160 243 | 1461243344.68103 -0.61293146 0.01124337 1.50412245 0.05384261 0.97507491 0.20531163 -0.06462991 244 | 1461243344.78078 -0.61308463 0.00881198 1.46988482 0.03845318 0.98230881 0.18279550 -0.01328781 245 | 1461243344.92282 -0.62455148 0.01403621 1.42290622 0.05291852 0.98324761 0.17380839 0.01464268 246 | 1461243345.08539 -0.63711620 0.01572270 1.36680142 0.05747077 0.98095104 0.17822288 0.05166023 247 | 1461243345.11771 -0.63900821 0.01465176 1.36009187 0.05370140 0.98116879 0.17678675 0.05630640 248 | 1461243345.24172 -0.64237029 0.00021975 1.31187840 0.05758021 0.98144804 0.15795189 0.09217088 249 | 1461243345.36054 -0.63373441 -0.01432925 1.27237415 0.07044765 0.97798257 0.14212582 0.13560045 250 | 1461243345.48099 -0.62868199 -0.02034983 1.22550238 0.07610699 0.97452895 0.12893535 0.16696326 251 | 1461243345.59203 -0.62075873 -0.02018880 1.18333111 0.07391887 0.96873114 0.11821775 0.20523288 252 | 1461243345.68166 -0.61293453 -0.01722146 1.13807992 0.06991909 0.96006786 0.11080530 0.24719063 253 | 1461243345.78085 -0.60639703 -0.02010200 1.09346797 0.06709886 0.95268065 0.09801878 0.27980287 254 | 1461243345.86104 -0.59621598 -0.02888895 1.06406266 0.06564185 0.94025348 0.08573135 0.32290042 255 | 1461243345.94080 -0.58747486 -0.04007644 1.03455748 0.05761638 0.92971879 0.08198101 0.35437611 256 | 1461243346.00065 -0.57895930 -0.05322746 1.01642384 0.06568897 0.91469071 0.07061771 0.39247803 257 | 1461243346.08065 -0.56994998 -0.07031148 0.99333264 0.06461397 0.90001892 0.05603731 0.42737664 258 | 1461243346.16070 -0.56305603 -0.08548820 0.97114099 0.07246455 0.88107539 0.04470077 0.46524928 259 | 1461243346.24125 -0.55881938 -0.09894454 0.94716817 0.08354056 0.86526555 0.03111600 0.49332373 260 | 1461243346.34073 -0.55931592 -0.11089274 0.91318707 0.08988314 0.84972400 0.02325209 0.51898891 261 | 1461243346.44239 -0.56356009 -0.12068715 0.87675797 0.09584232 0.83899732 0.02012577 0.53525012 262 | 1461243346.54135 -0.57506445 -0.13775285 0.84629572 0.09899868 0.82569451 0.00985360 0.55527537 263 | 1461243346.64176 -0.59122855 -0.16367072 0.81569023 0.10673819 0.81075409 -0.00588940 0.57554329 264 | 1461243346.76202 -0.62375139 -0.19415560 0.77470282 0.12676071 0.79720531 -0.00915398 0.59017931 265 | 1461243346.88200 -0.66356001 -0.22070397 0.73003238 0.15440239 0.78620268 -0.02041491 0.59802047 266 | 1461243347.00099 -0.71201059 -0.23202083 0.68282463 0.16988861 0.77331599 -0.03198964 0.60999747 267 | 1461243347.12087 -0.77666366 -0.22798064 0.62559171 0.17081029 0.77367893 -0.04997729 0.60806828 268 | 1461243347.22067 -0.83806085 -0.22003174 0.57552235 0.18496226 0.77170824 -0.05977812 0.60554268 269 | 1461243347.32067 -0.89806390 -0.20551826 0.52218663 0.20179412 0.77398290 -0.05158709 0.59797022 270 | 1461243347.42070 -0.95334206 -0.18498857 0.46863973 0.20738806 0.77598806 -0.04484713 0.59398776 271 | 1461243347.52372 -1.00719761 -0.15262245 0.41443910 0.19795441 0.78510700 -0.03831954 0.58562161 272 | 1461243347.62269 -1.06094610 -0.10890805 0.35979624 0.18869475 0.78998249 -0.02846416 0.58267636 273 | 1461243347.70084 -1.10448843 -0.07165048 0.31441005 0.17826637 0.79597510 -0.02276456 0.57803678 274 | 1461243347.78065 -1.14817604 -0.03660560 0.26547475 0.16957852 0.80635786 -0.02224120 0.56615851 275 | 1461243347.88057 -1.20461662 0.00001093 0.20327922 0.16834026 0.81725812 -0.02084003 0.55074169 276 | 1461243347.98073 -1.26104857 0.02919808 0.14867747 0.15155957 0.82310948 -0.02390590 0.54676228 277 | 1461243348.06042 -1.31023088 0.04746708 0.10227723 0.17782891 0.82243604 -0.02630598 0.53970717 278 | 1461243348.16091 -1.37301550 0.07949167 0.04250369 0.17963937 0.83459955 -0.01123304 0.52062184 279 | 1461243348.24076 -1.42494731 0.11330633 -0.00588943 0.16847766 0.84755446 0.01668572 0.50297943 280 | 1461243348.34047 -1.49557990 0.15134219 -0.06058523 0.16477720 0.85716192 0.02772450 0.48718915 281 | 1461243348.44046 -1.56741510 0.19045052 -0.10974655 0.15837006 0.86255167 0.03968953 0.47890320 282 | 1461243348.58045 -1.66733100 0.23695203 -0.15875341 0.15710478 0.86128618 0.06116179 0.47933646 283 | 1461243348.68065 -1.73182709 0.26283774 -0.18386989 0.13916262 0.85862996 0.07833205 0.48708567 284 | 1461243348.80039 -1.80849326 0.28686732 -0.21286564 0.14952872 0.86025457 0.08607045 0.47978654 285 | 1461243348.92205 -1.87966516 0.31341436 -0.23321538 0.14415319 0.85634124 0.10181490 0.48531769 286 | 1461243349.04037 -1.94833743 0.33652201 -0.25448692 0.15042429 0.85452715 0.09852754 0.48728658 287 | 1461243349.16069 -2.01791302 0.36633804 -0.27533639 0.13899985 0.85935274 0.09441083 0.48298913 288 | 1461243349.28031 -2.08665945 0.39160479 -0.28633872 0.11943352 0.86266163 0.09616662 0.48197772 289 | 1461243349.42355 -2.16403898 0.40859785 -0.29444675 0.13168195 0.86596740 0.10297778 0.47133417 290 | 1461243349.58071 -2.24833871 0.41519299 -0.29285974 0.14397210 0.86953488 0.09987985 0.46174142 291 | 1461243349.74043 -2.32881634 0.41218873 -0.28787879 0.14888508 0.87792163 0.08725530 0.44662440 292 | 1461243349.90061 -2.40117832 0.38351008 -0.26737976 0.15701130 0.88395993 0.05414885 0.43707001 293 | 1461243350.08082 -2.45821253 0.34392573 -0.22539124 0.18080152 0.88674287 0.03681471 0.42384261 294 | 1461243350.22166 -2.47757169 0.30406734 -0.17990570 0.19784827 0.88390507 0.00171209 0.42375106 295 | 1461243350.36046 -2.47035453 0.26926652 -0.12250509 0.19264202 0.87549990 -0.03955631 0.44138902 296 | 1461243350.48055 -2.44676366 0.24074293 -0.06268164 0.19105101 0.86328283 -0.07110109 0.46172167 297 | 1461243350.62139 -2.40188914 0.21340906 0.01101935 0.19680461 0.84899403 -0.08533037 0.48290352 298 | 1461243350.74029 -2.35189615 0.19181198 0.08002007 0.19975771 0.83589086 -0.08653907 0.50387927 299 | 1461243350.90037 -2.27339752 0.16169980 0.16346602 0.20622794 0.81966494 -0.08633208 0.52741464 300 | 1461243351.02237 -2.20578191 0.14392928 0.22107885 0.20338402 0.80332491 -0.07438944 0.55477044 301 | 1461243351.18093 -2.11051595 0.12589900 0.28269318 0.22351606 0.77999504 -0.06069021 0.58134758 302 | 1461243351.32192 -2.01640506 0.11529291 0.33764364 0.22794039 0.75701738 -0.05697492 0.60968986 303 | 1461243351.46077 -1.92418120 0.09855461 0.38850623 0.23444827 0.72933839 -0.04995923 0.64078358 304 | 1461243351.56022 -1.85825930 0.08229099 0.42985461 0.22040994 0.70437138 -0.05169010 0.67276188 305 | 1461243351.68035 -1.77836598 0.06450982 0.47278000 0.20283359 0.67445906 -0.04761303 0.70830538 306 | 1461243351.84057 -1.65623328 0.05010564 0.51120377 0.19065756 0.64524267 -0.04796106 0.73824883 307 | 1461243352.02287 -1.51197744 0.03328984 0.53940158 0.16762291 0.63989185 -0.06279670 0.74732694 308 | 1461243352.20027 -1.36705924 0.00680005 0.53528384 0.16145223 0.64910877 -0.04121016 0.74222146 309 | 1461243352.34009 -1.25960811 -0.00731525 0.52763522 0.18447437 0.63087356 -0.01718151 0.75344048 310 | 1461243352.48044 -1.14434602 -0.00276240 0.51285586 0.19414638 0.62254621 -0.00047920 0.75811818 311 | 1461243352.60034 -1.05049386 -0.00258199 0.49809450 0.17820428 0.61759804 -0.00483906 0.76602381 312 | 1461243352.70033 -0.97903309 -0.00959762 0.48782944 0.17282215 0.59442081 0.00168448 0.78536207 313 | 1461243352.80033 -0.91366251 -0.02724914 0.47635523 0.16617111 0.57331447 -0.00485319 0.80229304 314 | 1461243352.90044 -0.84794376 -0.03969423 0.46012887 0.15423465 0.55887490 -0.00291290 0.81477729 315 | 1461243353.00033 -0.78191428 -0.04833905 0.44463311 0.14457093 0.53419888 -0.00471449 0.83289169 316 | 1461243353.10030 -0.71396444 -0.05477714 0.42475763 0.13984367 0.51879796 -0.01422021 0.84326165 317 | 1461243353.20040 -0.64880999 -0.06247468 0.40158361 0.12902988 0.51587096 -0.03987472 0.84595417 318 | 1461243353.30020 -0.58770071 -0.06812384 0.38153339 0.12870748 0.49824995 -0.04192598 0.85640153 319 | 1461243353.38035 -0.54227653 -0.06981870 0.36626234 0.10747479 0.48471032 -0.03223785 0.86744786 320 | 1461243353.48013 -0.49055666 -0.07545961 0.34405431 0.09885264 0.46255392 -0.01672101 0.88090432 321 | 1461243353.58057 -0.43923620 -0.07885823 0.31844796 0.10217954 0.44036316 -0.00026004 0.89198630 322 | 1461243353.66067 -0.39886030 -0.07396597 0.29927392 0.09292215 0.41649413 0.00901187 0.90433230 323 | 1461243353.74019 -0.36226556 -0.06750925 0.28027407 0.07403688 0.39152725 0.00326619 0.91717735 324 | 1461243353.82245 -0.33130650 -0.06313555 0.26194671 0.06363947 0.35764139 -0.00492014 0.93167508 325 | 1461243353.90059 -0.30620942 -0.05971231 0.24616857 0.04440743 0.31389928 -0.02095610 0.94818567 326 | 1461243354.00023 -0.27002527 -0.05619007 0.22037664 0.03067902 0.28333606 -0.01779701 0.95836462 327 | 1461243354.10031 -0.23446157 -0.05200907 0.19328171 0.01720879 0.26529574 -0.00051152 0.96401336 328 | 1461243354.18021 -0.20980581 -0.05201215 0.17430508 0.01901174 0.23831237 0.00353242 0.97099603 329 | 1461243354.28110 -0.17902253 -0.04895217 0.14949945 0.01377802 0.21323966 0.00908295 0.97686054 330 | 1461243354.40024 -0.14433999 -0.04285831 0.12706414 0.01268752 0.18471121 0.00970273 0.98266304 331 | 1461243354.50011 -0.12466121 -0.03363225 0.11539741 0.01455937 0.13972469 0.01541374 0.98996336 332 | 1461243354.60009 -0.10648046 -0.01963431 0.10518607 0.00005420 0.10182317 0.01080733 0.99474381 333 | 1461243354.72194 -0.08306849 -0.00366181 0.08847560 -0.01933465 0.07683751 0.00632644 0.99683607 334 | 1461243354.86009 -0.05641383 0.00682818 0.06907429 -0.01762460 0.05103975 0.00047063 0.99854098 335 | 1461243355.08014 -0.03233453 0.01287493 0.04129392 -0.00417987 0.02657408 0.00672025 0.99961552 336 | 1461243355.62039 -0.00870710 0.01057482 0.00832846 -0.00289400 0.00264281 0.01376513 0.99989758 337 | 1461243356.02015 0.00005012 -0.00005200 -0.00001477 -0.00000394 -0.00004240 0.00001634 1.00000000 338 | -------------------------------------------------------------------------------- /MatlabEvaluationCode/examples/sequence_10.txt: -------------------------------------------------------------------------------- 1 | 1461243977.94640 0.00002626 0.00000730 -0.00000896 0.00000899 -0.00002128 0.00000211 1.00000000 2 | 1461243978.10644 -0.04257252 -0.02307510 -0.03469889 -0.00773107 -0.04227863 -0.01643630 0.99894074 3 | 1461243978.26646 -0.06925898 -0.04865009 -0.07502829 0.03036607 -0.05836207 -0.00849415 0.99779738 4 | 1461243978.48630 -0.10173398 -0.06667535 -0.13454743 0.03239994 -0.08224102 0.01746664 0.99593252 5 | 1461243978.64638 -0.13119824 -0.08938999 -0.17394852 0.04763502 -0.11436635 0.00472948 0.99228467 6 | 1461243978.82630 -0.16653016 -0.12352514 -0.20969717 0.07698514 -0.13172023 0.01640218 0.98815689 7 | 1461243978.98637 -0.20410780 -0.15618350 -0.23594405 0.11088595 -0.15222185 0.00263302 0.98210279 8 | 1461243979.14633 -0.25322130 -0.18504643 -0.25922607 0.12634371 -0.17489246 -0.02683553 0.97607876 9 | 1461243979.30834 -0.30943575 -0.21527378 -0.28201645 0.11728732 -0.19002992 -0.04291966 0.97380194 10 | 1461243979.48626 -0.37803819 -0.25219311 -0.30785577 0.10912604 -0.18828409 -0.05201015 0.97464637 11 | 1461243979.62702 -0.43525997 -0.28367877 -0.33219089 0.10010608 -0.20990951 -0.06389931 0.97048114 12 | 1461243979.82627 -0.49059313 -0.32946058 -0.37020050 0.10703707 -0.22422035 -0.05763878 0.96692609 13 | 1461243980.08649 -0.54009025 -0.36650229 -0.43078259 0.11270521 -0.24411362 -0.05524059 0.96158960 14 | 1461243980.34624 -0.58361992 -0.39578906 -0.52053079 0.11388203 -0.25101617 -0.06687744 0.95893127 15 | 1461243980.50845 -0.61574770 -0.42528889 -0.59192269 0.12709134 -0.27454828 -0.06199663 0.95111905 16 | 1461243980.64629 -0.64702673 -0.45491272 -0.65611771 0.13114041 -0.30705583 -0.07066332 0.93996043 17 | 1461243980.80845 -0.67728941 -0.48536235 -0.72169274 0.14178034 -0.34047108 -0.07278693 0.92664979 18 | 1461243980.96649 -0.71363424 -0.49758074 -0.78146328 0.12150620 -0.36974620 -0.08943799 0.91680142 19 | 1461243981.10618 -0.75371181 -0.49765272 -0.82978596 0.07602382 -0.37730760 -0.07289863 0.92007888 20 | 1461243981.26639 -0.80950805 -0.51015304 -0.89574246 0.04634525 -0.38098668 -0.07327129 0.92050670 21 | 1461243981.42616 -0.85465568 -0.54280222 -0.96979261 0.02993739 -0.39068302 -0.05264861 0.91853071 22 | 1461243981.58697 -0.88648729 -0.58098291 -1.04904794 0.05324178 -0.39968714 -0.04434999 0.91402876 23 | 1461243981.72618 -0.90852730 -0.60699531 -1.12453533 0.08735438 -0.42131044 -0.04567904 0.90154320 24 | 1461243981.90821 -0.92685206 -0.62432896 -1.22105640 0.10154672 -0.44015553 -0.03560737 0.89145021 25 | 1461243982.14611 -0.92860323 -0.63808635 -1.33615623 0.08280306 -0.43441385 0.01489665 0.89677553 26 | 1461243982.28615 -0.93802223 -0.65299891 -1.41076049 0.09737536 -0.46176879 0.00422295 0.88162906 27 | 1461243982.44616 -0.95357114 -0.67473972 -1.50147268 0.12840074 -0.47223446 0.00230755 0.87206797 28 | 1461243982.58627 -0.97211355 -0.69441814 -1.59516944 0.15283320 -0.49109657 0.00100093 0.85759266 29 | 1461243982.72609 -0.99434771 -0.71400403 -1.69660483 0.16107052 -0.50762156 0.00908778 0.84634157 30 | 1461243982.88626 -1.01725877 -0.74180475 -1.79750862 0.15476300 -0.51099128 0.04135611 0.84452709 31 | 1461243983.04615 -1.04526276 -0.77766549 -1.88635399 0.16703039 -0.52435363 0.03891820 0.83405006 32 | 1461243983.24672 -1.10342457 -0.80782776 -1.96650808 0.17128081 -0.52278200 0.04368164 0.83393871 33 | 1461243983.40826 -1.16566505 -0.83778557 -2.02030841 0.15297675 -0.50438722 0.04744805 0.84849298 34 | 1461243983.54610 -1.21657635 -0.87809897 -2.04984898 0.12135198 -0.48753911 0.08816080 0.86012033 35 | 1461243983.70597 -1.26020585 -0.93345090 -2.05098335 0.12403602 -0.45319064 0.09621265 0.87748301 36 | 1461243983.86607 -1.30418510 -0.96723403 -2.02403880 0.09911272 -0.41261112 0.10195054 0.89974153 37 | 1461243984.00608 -1.35731901 -0.97937061 -1.99533221 0.07466518 -0.37865136 0.08444887 0.91864936 38 | 1461243984.12634 -1.40644443 -0.98956480 -1.96249687 0.05323385 -0.33874612 0.07749019 0.93616905 39 | 1461243984.24600 -1.44939712 -1.00440654 -1.92241323 0.04642080 -0.29216208 0.08484455 0.95146615 40 | 1461243984.34607 -1.47618175 -1.01515945 -1.88295465 0.03556418 -0.25228800 0.08458551 0.96329188 41 | 1461243984.46612 -1.50191148 -1.02346051 -1.82736856 0.01104300 -0.21155549 0.07846764 0.97414843 42 | 1461243984.60781 -1.53204308 -1.02527336 -1.75173730 -0.00724306 -0.18778026 0.06194158 0.98022923 43 | 1461243984.72649 -1.55204142 -1.01545927 -1.67439165 -0.01864928 -0.15635002 0.05943047 0.98573571 44 | 1461243984.84602 -1.57090543 -1.00002795 -1.58424802 -0.03553257 -0.14243560 0.05934332 0.98738438 45 | 1461243984.98604 -1.58187521 -0.99062577 -1.47934053 -0.04728670 -0.12995346 0.05662024 0.98877207 46 | 1461243985.12718 -1.58641581 -0.98977235 -1.37955703 -0.07108579 -0.12893117 0.04751367 0.98796053 47 | 1461243985.26588 -1.59228819 -0.98059813 -1.27190271 -0.09540820 -0.11790275 0.05341412 0.98698690 48 | 1461243985.38594 -1.59702151 -0.97087463 -1.17631516 -0.09713260 -0.09266512 0.04566058 0.98989572 49 | 1461243985.50630 -1.60051105 -0.96445040 -1.07671123 -0.09344510 -0.06162414 0.03508609 0.99309589 50 | 1461243985.66646 -1.60425777 -0.96049348 -0.94383876 -0.09308506 -0.03891875 0.03585438 0.99425096 51 | 1461243985.78590 -1.60528911 -0.95429751 -0.84844230 -0.11684488 -0.03378253 0.02762326 0.99219099 52 | 1461243985.92624 -1.61084895 -0.93982292 -0.73628851 -0.12423649 -0.03794001 0.02338706 0.99125118 53 | 1461243986.04597 -1.61129365 -0.91881182 -0.63406143 -0.12039431 -0.02381912 0.02834509 0.99203549 54 | 1461243986.16588 -1.61110395 -0.90020615 -0.53050213 -0.11636224 -0.02697755 0.03772565 0.99212339 55 | 1461243986.30612 -1.60761656 -0.89250379 -0.41324608 -0.11232718 -0.03803855 0.04108679 0.99209251 56 | 1461243986.42644 -1.60744967 -0.89506507 -0.32098951 -0.11205735 -0.05046426 0.02784840 0.99202872 57 | 1461243986.54586 -1.61681768 -0.89599265 -0.22863321 -0.10728881 -0.06832515 0.02334390 0.99160267 58 | 1461243986.64582 -1.62806555 -0.89244335 -0.15042066 -0.09136488 -0.07199875 0.02044954 0.99300073 59 | 1461243986.72708 -1.64064522 -0.88719159 -0.08610190 -0.07553399 -0.07264104 0.02084323 0.99427534 60 | 1461243986.81192 -1.65212577 -0.88333524 -0.02389663 -0.06436220 -0.06816127 0.00828630 0.99556159 61 | 1461243986.88609 -1.66271262 -0.88216230 0.03869032 -0.05589625 -0.05817163 0.00165295 0.99673915 62 | 1461243986.96579 -1.67428706 -0.88571888 0.09924671 -0.05530649 -0.06460585 0.00663374 0.99635499 63 | 1461243987.06584 -1.68660394 -0.89433872 0.16812020 -0.06605223 -0.07085642 0.00148970 0.99529606 64 | 1461243987.16583 -1.70064845 -0.90665814 0.23310076 -0.05988421 -0.06842047 -0.00054212 0.99585753 65 | 1461243987.24582 -1.71793694 -0.91091797 0.28651427 -0.05664881 -0.07068393 0.00475327 0.99587755 66 | 1461243987.32572 -1.73971134 -0.91038943 0.33955072 -0.06130276 -0.07347951 -0.00161729 0.99540952 67 | 1461243987.38627 -1.75709846 -0.90860684 0.38079552 -0.06548885 -0.07316276 -0.00305591 0.99516284 68 | 1461243987.44634 -1.77410241 -0.90540990 0.42379975 -0.07259911 -0.06998677 0.00365737 0.99489590 69 | 1461243987.50584 -1.78862367 -0.90484432 0.46772277 -0.07440236 -0.06085260 0.01321767 0.99528214 70 | 1461243987.56596 -1.79840606 -0.90837527 0.51166260 -0.07050493 -0.04396067 0.02220803 0.99629479 71 | 1461243987.62612 -1.80625273 -0.91421000 0.55274959 -0.06101098 -0.03680851 0.02674973 0.99709942 72 | 1461243987.70786 -1.81476069 -0.91959309 0.60078101 -0.06815619 -0.03205861 0.02434634 0.99686219 73 | 1461243987.78651 -1.82450771 -0.92607463 0.64208291 -0.07647865 -0.03254267 0.01733557 0.99638922 74 | 1461243987.88580 -1.83865248 -0.92904862 0.68868855 -0.08695806 -0.02676641 0.02540051 0.99552834 75 | 1461243988.00784 -1.86046450 -0.92652939 0.74078278 -0.10185476 -0.02773382 0.02766569 0.99402769 76 | 1461243988.10778 -1.87594100 -0.91543121 0.78500429 -0.11923060 -0.00760287 0.03442459 0.99224050 77 | 1461243988.18616 -1.88666149 -0.90154310 0.82106305 -0.14123491 0.01507764 0.03514991 0.98923700 78 | 1461243988.26569 -1.89435061 -0.88651587 0.85823135 -0.16781060 0.04200377 0.02308286 0.98465348 79 | 1461243988.34572 -1.90107890 -0.87311174 0.89902073 -0.19963974 0.07090452 0.01030968 0.97724625 80 | 1461243988.42834 -1.90140395 -0.86511655 0.94053933 -0.20164420 0.10852611 0.00811362 0.97339400 81 | 1461243988.50858 -1.89943892 -0.85696843 0.98087963 -0.20812767 0.15131801 0.02092169 0.96609938 82 | 1461243988.58583 -1.89487155 -0.85067402 1.01643777 -0.22415619 0.18016529 0.02059634 0.95753343 83 | 1461243988.70647 -1.88402053 -0.84082231 1.06268680 -0.24017017 0.20380045 0.01882243 0.94890958 84 | 1461243988.82594 -1.87001192 -0.82051804 1.09586978 -0.27270123 0.22583871 0.01922232 0.93501948 85 | 1461243988.96600 -1.85066604 -0.79559439 1.13678723 -0.29362574 0.25222138 0.01898064 0.92185033 86 | 1461243989.08589 -1.82762217 -0.77052932 1.17847988 -0.30358240 0.27751962 0.01179805 0.91141724 87 | 1461243989.18569 -1.80312093 -0.74591539 1.21711951 -0.31454790 0.29796170 0.01482156 0.90114303 88 | 1461243989.28571 -1.77514949 -0.72201240 1.26200727 -0.32730975 0.31340788 0.02667684 0.89102872 89 | 1461243989.36570 -1.74600413 -0.70923323 1.29418491 -0.33754719 0.34062506 0.02902872 0.87703694 90 | 1461243989.46590 -1.71159072 -0.69927756 1.33876422 -0.34124695 0.35413244 0.03843167 0.86986421 91 | 1461243989.56578 -1.68289621 -0.69327933 1.38764754 -0.33680855 0.35188900 0.04306052 0.87228431 92 | 1461243989.68557 -1.65614533 -0.68331056 1.44906472 -0.33942564 0.33881915 0.04165011 0.87650276 93 | 1461243989.78571 -1.63050144 -0.67613958 1.50079812 -0.33147234 0.34757601 0.03987669 0.87620024 94 | 1461243989.88594 -1.60319904 -0.67255943 1.55857553 -0.31830760 0.36084862 0.03090592 0.87607840 95 | 1461243989.98630 -1.57663518 -0.67150127 1.62308605 -0.30648553 0.36828561 0.01596624 0.87759752 96 | 1461243990.08562 -1.55575452 -0.66757457 1.69103699 -0.30205688 0.35889196 0.01366885 0.88304664 97 | 1461243990.18564 -1.52847255 -0.66768870 1.75550756 -0.29094356 0.36108342 0.00660967 0.88596102 98 | 1461243990.30766 -1.49323318 -0.66165925 1.82581833 -0.26961075 0.36893800 0.00606615 0.88947063 99 | 1461243990.44575 -1.45330989 -0.63629485 1.90064588 -0.26602189 0.37746223 0.00262862 0.88698800 100 | 1461243990.56603 -1.41912781 -0.61398615 1.96309905 -0.25439785 0.38829065 -0.00798532 0.88569088 101 | 1461243990.66598 -1.39205800 -0.59871526 2.02092582 -0.24026560 0.38444009 -0.01484839 0.89121141 102 | 1461243990.76594 -1.36420150 -0.58681971 2.07832141 -0.22875896 0.38524656 -0.01158289 0.89393527 103 | 1461243990.86581 -1.33736898 -0.57640047 2.13507810 -0.22538301 0.39272053 -0.00070857 0.89161235 104 | 1461243990.96751 -1.31603608 -0.56698806 2.19567918 -0.20530905 0.39369096 0.01319160 0.89592500 105 | 1461243991.10698 -1.29705963 -0.54712663 2.28271576 -0.18780301 0.37479327 0.03178176 0.90733122 106 | 1461243991.26574 -1.27919081 -0.52087902 2.37807592 -0.17060293 0.36266758 0.01569682 0.91603519 107 | 1461243991.38560 -1.26414634 -0.50555715 2.45191360 -0.15144717 0.35676314 0.02752036 0.92142631 108 | 1461243991.50750 -1.24561206 -0.49520784 2.52296661 -0.15050007 0.36925837 0.05864174 0.91518257 109 | 1461243991.62611 -1.22869626 -0.49877492 2.58996406 -0.13530499 0.39365169 0.08693632 0.90508176 110 | 1461243991.74579 -1.22038544 -0.50168556 2.66182300 -0.12499276 0.40570553 0.10867941 0.89887075 111 | 1461243991.88549 -1.22284065 -0.49747332 2.75145055 -0.13117995 0.40064430 0.12109757 0.89867199 112 | 1461243992.00824 -1.22828211 -0.49288896 2.82836776 -0.13773936 0.39874429 0.13551425 0.89647462 113 | 1461243992.10552 -1.23515995 -0.49054559 2.89455729 -0.14821275 0.38438935 0.14659480 0.89932629 114 | 1461243992.22550 -1.24492698 -0.48990396 2.97040191 -0.16082810 0.37554717 0.16643755 0.89743924 115 | 1461243992.34550 -1.25856270 -0.49410222 3.04392927 -0.16606258 0.37616178 0.18460146 0.89266334 116 | 1461243992.44545 -1.27483789 -0.49613913 3.10982639 -0.16838665 0.36945569 0.19959636 0.89180139 117 | 1461243992.54553 -1.29392023 -0.49616719 3.17625116 -0.17231995 0.37263850 0.21683188 0.88568071 118 | 1461243992.64550 -1.31185832 -0.49868739 3.23573802 -0.17869372 0.38456700 0.21951118 0.87863054 119 | 1461243992.74578 -1.32827725 -0.50071340 3.29832289 -0.18914685 0.38620719 0.21617454 0.87654780 120 | 1461243992.82546 -1.34110674 -0.50435555 3.35157835 -0.18890013 0.36559537 0.20629247 0.88775007 121 | 1461243992.88552 -1.35036443 -0.50622927 3.39168814 -0.18559660 0.34462854 0.19114287 0.90013859 122 | 1461243992.94557 -1.35929919 -0.50493149 3.43075716 -0.18596295 0.32083659 0.17435616 0.91218507 123 | 1461243993.04542 -1.36695647 -0.49614354 3.49043165 -0.18237365 0.30464401 0.14961359 0.92279340 124 | 1461243993.14691 -1.37098766 -0.47975521 3.55134487 -0.17384063 0.28239720 0.14426507 0.93231907 125 | 1461243993.26601 -1.36496222 -0.45507900 3.61983856 -0.16392192 0.26496575 0.14408715 0.93923461 126 | 1461243993.38580 -1.34427176 -0.43492767 3.68529097 -0.15285992 0.26970364 0.14020477 0.94033846 127 | 1461243993.54552 -1.31455242 -0.40304411 3.77549587 -0.15572896 0.26154121 0.15947970 0.93910112 128 | 1461243993.70734 -1.29109782 -0.37585525 3.86686539 -0.14958959 0.24895146 0.15907192 0.94357949 129 | 1461243993.82695 -1.28293594 -0.34943364 3.94021817 -0.16817118 0.23088491 0.13465157 0.94883063 130 | 1461243993.92550 -1.27456086 -0.32238861 4.00124260 -0.20722640 0.23206723 0.10865107 0.94413821 131 | 1461243994.04548 -1.25612424 -0.30292676 4.06999276 -0.23248347 0.24894539 0.11330531 0.93334856 132 | 1461243994.12583 -1.23094137 -0.30137775 4.11025008 -0.23021704 0.28797390 0.11776627 0.92206413 133 | 1461243994.22541 -1.20072083 -0.30512425 4.15650412 -0.23170902 0.32531042 0.11111032 0.91002118 134 | 1461243994.32531 -1.17380275 -0.30462568 4.20239767 -0.22212782 0.36570998 0.09914868 0.89837908 135 | 1461243994.50542 -1.14298683 -0.29120353 4.29920711 -0.21771675 0.36006574 0.07785930 0.90381968 136 | 1461243994.62545 -1.12001710 -0.28076877 4.37362619 -0.19979802 0.34362884 0.06636391 0.91520260 137 | 1461243994.72555 -1.09977589 -0.27458045 4.43911808 -0.17920092 0.32233598 0.06707852 0.92708523 138 | 1461243994.80526 -1.08859590 -0.27136347 4.49067094 -0.17366088 0.28944089 0.06143883 0.93930354 139 | 1461243994.92534 -1.07677733 -0.26458011 4.56048591 -0.16929520 0.26427736 0.06197022 0.94744725 140 | 1461243995.02547 -1.07612258 -0.26005670 4.61826666 -0.15406125 0.23688915 0.05945808 0.95739929 141 | 1461243995.14532 -1.08565025 -0.25045450 4.68852956 -0.13890973 0.19996495 0.04858676 0.96868851 142 | 1461243995.28529 -1.09908998 -0.23780187 4.76845133 -0.12545300 0.16901653 0.04105774 0.97673395 143 | 1461243995.40782 -1.10865314 -0.23338406 4.83324432 -0.10897978 0.14380738 0.04737132 0.98244532 144 | 1461243995.56532 -1.11923734 -0.22977846 4.90541028 -0.11200917 0.10990075 0.04679866 0.98650173 145 | 1461243995.70761 -1.13752548 -0.23387524 4.96475762 -0.09402653 0.07111699 0.04366519 0.99206589 146 | 1461243995.82535 -1.16101354 -0.23550267 5.01371966 -0.08603586 0.03160571 0.04100627 0.99494593 147 | 1461243995.94542 -1.18543493 -0.23678771 5.06190611 -0.07276432 -0.00287049 0.04680458 0.99624618 148 | 1461243996.08532 -1.21325696 -0.23889915 5.11217083 -0.06241122 -0.03806305 0.05594974 0.99575382 149 | 1461243996.22683 -1.24586242 -0.24742618 5.15222226 -0.05547260 -0.08961818 0.05429087 0.99294707 150 | 1461243996.36555 -1.27895695 -0.26289339 5.18389088 -0.03578695 -0.13639400 0.05253930 0.98861296 151 | 1461243996.48551 -1.31375533 -0.27604286 5.20793870 -0.01470392 -0.17414441 0.04732045 0.98347257 152 | 1461243996.62534 -1.35839715 -0.28584868 5.23374020 -0.00089361 -0.21305471 0.04600805 0.97595602 153 | 1461243996.76541 -1.40432244 -0.30042589 5.25793198 0.02386615 -0.24225684 0.03950382 0.96911376 154 | 1461243996.90746 -1.45391345 -0.31367942 5.27924569 0.03383722 -0.28148780 0.04156636 0.95806675 155 | 1461243997.02523 -1.49661296 -0.32395579 5.30100894 0.03597198 -0.31196988 0.03203933 0.94887001 156 | 1461243997.14553 -1.53912268 -0.33882897 5.32592797 0.03865824 -0.33416874 0.03354256 0.94112257 157 | 1461243997.26528 -1.57861593 -0.35893638 5.35052883 0.04717047 -0.35629602 0.03505737 0.93252296 158 | 1461243997.36531 -1.61459731 -0.37749723 5.37304550 0.05935790 -0.37108501 0.03127628 0.92617188 159 | 1461243997.44586 -1.64571731 -0.39103376 5.39272537 0.07207934 -0.37840577 0.03589379 0.92213083 160 | 1461243997.52525 -1.67645204 -0.40299287 5.41479785 0.07920479 -0.37926964 0.04636654 0.92072324 161 | 1461243997.60516 -1.71133962 -0.41494204 5.43623206 0.08151004 -0.39559615 0.05135533 0.91335778 162 | 1461243997.68516 -1.74350274 -0.42702529 5.45639512 0.08103582 -0.40348115 0.04077134 0.91048001 163 | 1461243997.78521 -1.77899553 -0.44782354 5.47735508 0.08360725 -0.42060284 0.04740868 0.90213940 164 | 1461243997.90818 -1.82003493 -0.47342102 5.49140322 0.09890385 -0.45911361 0.05286443 0.88127071 165 | 1461243998.02559 -1.86933232 -0.49283314 5.49938972 0.11640180 -0.49337022 0.03968124 0.86108179 166 | 1461243998.12555 -1.91180278 -0.50973996 5.49870486 0.13816170 -0.53120503 0.01634162 0.83574249 167 | 1461243998.32588 -1.97212939 -0.54628265 5.50476109 0.15709747 -0.55540478 0.05203871 0.81494656 168 | 1461243998.46540 -2.01247268 -0.56432329 5.50015098 0.16587172 -0.58850915 0.02947612 0.79074314 169 | 1461243998.60742 -2.05298189 -0.58527797 5.49579746 0.18106154 -0.61473809 0.01492425 0.76752268 170 | 1461243998.74514 -2.09161453 -0.60952597 5.48653469 0.19945934 -0.64139792 0.02219975 0.74049433 171 | 1461243998.84543 -2.12195370 -0.62426597 5.47628973 0.21492089 -0.67032834 0.01816996 0.71002731 172 | 1461243998.96541 -2.15385148 -0.64264079 5.46775520 0.23192508 -0.69485160 0.01530420 0.68055697 173 | 1461243999.08594 -2.17858436 -0.66274083 5.45690041 0.24375350 -0.72302813 0.01028931 0.64630386 174 | 1461243999.20794 -2.19774544 -0.68634670 5.44210612 0.27119129 -0.74247906 0.01301583 0.61238119 175 | 1461243999.34521 -2.22850905 -0.70376126 5.42000552 0.28379699 -0.76748617 0.00894088 0.57475587 176 | 1461243999.50715 -2.26836435 -0.72362786 5.38474234 0.30011463 -0.78434374 0.00284456 0.54288858 177 | 1461243999.64512 -2.30704344 -0.74292605 5.34767566 0.31723640 -0.79179127 -0.00102474 0.52194503 178 | 1461243999.78509 -2.34051647 -0.76881613 5.30585165 0.33277785 -0.79873486 -0.00265448 0.50127285 179 | 1461243999.90516 -2.36359616 -0.79019269 5.26667047 0.33932007 -0.80779108 0.00408033 0.48199461 180 | 1461244000.02543 -2.38028692 -0.81027950 5.22274736 0.35182045 -0.81852176 0.00702790 0.45408712 181 | 1461244000.18525 -2.40244263 -0.82886283 5.15841638 0.36243980 -0.83546892 0.01150321 0.41291253 182 | 1461244000.30507 -2.42446460 -0.83929244 5.10506394 0.36861378 -0.84905769 0.00764359 0.37837349 183 | 1461244000.42501 -2.44175057 -0.85876441 5.05024005 0.37116411 -0.86254427 0.01222810 0.34366417 184 | 1461244000.54516 -2.45924782 -0.87945107 4.99862024 0.37084920 -0.87266352 0.01839358 0.31716074 185 | 1461244000.66541 -2.47579183 -0.89634119 4.94364367 0.37546557 -0.87759348 0.01216889 0.29783755 186 | 1461244000.76596 -2.48999510 -0.90574139 4.89096768 0.37733635 -0.88414180 0.01088619 0.27530355 187 | 1461244000.90711 -2.51442207 -0.91344163 4.80979593 0.39090854 -0.88424641 0.00792230 0.25541348 188 | 1461244001.04540 -2.53979372 -0.92634461 4.72358237 0.39811950 -0.88350525 0.00651738 0.24673235 189 | 1461244001.18549 -2.55857439 -0.95185735 4.63815079 0.40522691 -0.88051028 0.00440681 0.24591338 190 | 1461244001.30529 -2.57686151 -0.97469381 4.56151082 0.39044317 -0.88852931 0.01266340 0.24064378 191 | 1461244001.40514 -2.59820974 -0.98636118 4.49605356 0.38876486 -0.88948015 0.01044636 0.23995381 192 | 1461244001.48501 -2.61585639 -0.99326643 4.44130050 0.38941052 -0.89083231 0.00866261 0.23388503 193 | 1461244001.56491 -2.63354993 -1.00234353 4.38477239 0.39202912 -0.89143975 0.01078126 0.22700684 194 | 1461244001.64514 -2.64656348 -1.01273594 4.32759879 0.39058940 -0.89544998 0.00979944 0.21333828 195 | 1461244001.72496 -2.65751741 -1.02640481 4.27045951 0.38825959 -0.89933892 0.00754187 0.20096548 196 | 1461244001.82648 -2.66757686 -1.04353218 4.20153349 0.38778871 -0.90326610 -0.00181104 0.18364909 197 | 1461244001.92519 -2.67606540 -1.06126750 4.13482449 0.39317281 -0.90303690 -0.00356613 0.17299358 198 | 1461244002.00748 -2.68539429 -1.07248738 4.07854374 0.39318786 -0.90456965 -0.00178888 0.16478428 199 | 1461244002.08543 -2.69390928 -1.08112145 4.02186558 0.39639271 -0.90375108 0.00591784 0.16146756 200 | 1461244002.14534 -2.70231256 -1.08736546 3.97664771 0.39842604 -0.90251094 0.01284735 0.16298969 201 | 1461244002.22548 -2.71326054 -1.09640857 3.91596663 0.39922333 -0.90125155 0.01975544 0.16726055 202 | 1461244002.30711 -2.72256880 -1.10758372 3.85731035 0.40022212 -0.89969972 0.02247658 0.17279316 203 | 1461244002.36491 -2.72883309 -1.11702562 3.81409755 0.40112177 -0.89810861 0.01955540 0.17922007 204 | 1461244002.42530 -2.73407367 -1.12688529 3.76945811 0.39623434 -0.90022016 0.01936330 0.17951901 205 | 1461244002.48498 -2.73831936 -1.13551696 3.72511409 0.39262808 -0.90283170 0.01266117 0.17486510 206 | 1461244002.54490 -2.74285292 -1.14546421 3.68177015 0.39620771 -0.90115406 0.01606232 0.17516511 207 | 1461244002.60707 -2.74975526 -1.15235611 3.63772881 0.39155709 -0.90288456 0.02146241 0.17613029 208 | 1461244002.66512 -2.75750688 -1.15520276 3.59215157 0.38904479 -0.90499649 0.02019626 0.17093160 209 | 1461244002.72490 -2.76601606 -1.15762273 3.54525066 0.39210211 -0.90401323 0.01818279 0.16936767 210 | 1461244002.78492 -2.77413346 -1.16160707 3.49866529 0.39443348 -0.90320892 0.01630531 0.16843398 211 | 1461244002.84490 -2.78065642 -1.16808062 3.45086420 0.39562383 -0.90359717 0.01472423 0.16363719 212 | 1461244002.90699 -2.78458941 -1.17579781 3.40220998 0.39422925 -0.90632792 0.01000455 0.15183183 213 | 1461244002.98511 -2.78839995 -1.18789280 3.33974200 0.39505553 -0.90745611 0.00673707 0.14286057 214 | 1461244003.06495 -2.79052988 -1.19910554 3.27980081 0.39627925 -0.90847743 0.00011578 0.13278369 215 | 1461244003.14514 -2.79392574 -1.20804047 3.21914373 0.39491561 -0.91021975 0.00140838 0.12465828 216 | 1461244003.22539 -2.79894838 -1.21259154 3.15543418 0.39732626 -0.91023113 0.00277212 0.11663383 217 | 1461244003.30704 -2.80491135 -1.21607995 3.08844495 0.40513158 -0.90732779 0.00903318 0.11199591 218 | 1461244003.40781 -2.81362245 -1.22354959 3.00711170 0.40739958 -0.90564093 0.01279355 0.11694619 219 | 1461244003.50697 -2.81967004 -1.23740599 2.92806684 0.40364059 -0.90695183 0.01044570 0.12001473 220 | 1461244003.60675 -2.82530310 -1.25363124 2.84874942 0.39775736 -0.90959695 0.00574153 0.11995623 221 | 1461244003.72493 -2.83053788 -1.27425464 2.75428711 0.40462856 -0.90733748 0.01050029 0.11359654 222 | 1461244003.88520 -2.84740942 -1.29137709 2.63047949 0.40226156 -0.90949480 0.02333868 0.10227493 223 | 1461244004.00503 -2.85862725 -1.30664473 2.53941878 0.40819490 -0.90774934 0.02803932 0.09263829 224 | 1461244004.10587 -2.86377563 -1.32162699 2.46700610 0.40295878 -0.91162259 0.02121387 0.07822055 225 | 1461244004.20498 -2.86673235 -1.33722850 2.39780711 0.40800946 -0.91055662 0.01535637 0.06464595 226 | 1461244004.30501 -2.87341381 -1.34829343 2.32955462 0.40650220 -0.91180154 0.01682436 0.05559551 227 | 1461244004.40477 -2.88357130 -1.35265429 2.25560290 0.41117974 -0.91032688 0.01729609 0.04401172 228 | 1461244004.50707 -2.89622810 -1.35837987 2.17754215 0.41377236 -0.90923631 0.02181778 0.04007173 229 | 1461244004.60711 -2.90864488 -1.36979225 2.10096480 0.42172620 -0.90575619 0.02137370 0.03599855 230 | 1461244004.70668 -2.92144222 -1.38593415 2.02583172 0.41727922 -0.90785236 0.01724273 0.03721342 231 | 1461244004.82494 -2.93561067 -1.40635133 1.93800033 0.41965544 -0.90703038 0.00762103 0.03357272 232 | 1461244004.92554 -2.95198510 -1.41999338 1.86450594 0.40987702 -0.91153793 0.01072492 0.03137546 233 | 1461244005.02499 -2.97076742 -1.42960683 1.78915487 0.40978118 -0.91180795 0.01096082 0.02378019 234 | 1461244005.12476 -2.98771627 -1.44207213 1.71577926 0.41732756 -0.90857425 0.01191852 0.01372934 235 | 1461244005.22482 -2.99780344 -1.45568510 1.64642902 0.41801603 -0.90833038 0.00187641 -0.01396449 236 | 1461244005.32609 -3.00490478 -1.47103094 1.58144403 0.41599159 -0.90860537 -0.00541204 -0.03685086 237 | 1461244005.42469 -3.00972186 -1.48676129 1.52013453 0.42176137 -0.90484121 -0.00293239 -0.05806139 238 | 1461244005.52497 -3.01762978 -1.49406598 1.45459784 0.41544962 -0.90587781 0.00307508 -0.08232588 239 | 1461244005.62529 -3.02623002 -1.49435753 1.38603659 0.43126694 -0.89672797 0.00471938 -0.09932524 240 | 1461244005.74491 -3.03179990 -1.49707968 1.30264900 0.43521362 -0.89315786 0.00990958 -0.11295992 241 | 1461244005.84471 -3.02599096 -1.50270250 1.23741061 0.44001665 -0.88708548 0.00557051 -0.13940469 242 | 1461244005.96496 -3.01669938 -1.51482040 1.16584506 0.43691318 -0.88377052 0.00248234 -0.16748245 243 | 1461244006.08470 -3.01305360 -1.52089586 1.09593128 0.42695377 -0.88398342 -0.00009729 -0.19048303 244 | 1461244006.20693 -3.00734000 -1.51913606 1.02689578 0.43458341 -0.87222305 0.00198321 -0.22441097 245 | 1461244006.30657 -2.99979750 -1.51877066 0.97050297 0.43540468 -0.86351474 -0.00117320 -0.25448707 246 | 1461244006.40730 -2.98938219 -1.52079433 0.92375096 0.42796290 -0.85836412 -0.00556926 -0.28289180 247 | 1461244006.50662 -2.97414287 -1.51946102 0.88137603 0.42890446 -0.84684912 -0.01876605 -0.31390345 248 | 1461244006.60466 -2.95452361 -1.51443334 0.84237501 0.42395541 -0.83664621 -0.01968918 -0.34626185 249 | 1461244006.70467 -2.93691521 -1.50364257 0.80355892 0.42239075 -0.82534997 -0.02279525 -0.37398376 250 | 1461244006.82523 -2.91614548 -1.48658354 0.75571165 0.42709076 -0.81544001 -0.02056248 -0.39016439 251 | 1461244006.94489 -2.88568850 -1.46815416 0.71358908 0.42908347 -0.80253824 -0.01566132 -0.41421550 252 | 1461244007.04461 -2.85675307 -1.45631286 0.68391460 0.43063198 -0.79520772 -0.01609674 -0.42654622 253 | 1461244007.14497 -2.82503061 -1.44366486 0.65918474 0.42255923 -0.78727615 -0.02630170 -0.44827244 254 | 1461244007.24519 -2.79273940 -1.42873560 0.63786751 0.42048554 -0.77852303 -0.02536400 -0.46524237 255 | 1461244007.34474 -2.75971279 -1.41015892 0.62141113 0.42534063 -0.76437097 -0.02632078 -0.48386940 256 | 1461244007.44505 -2.72661506 -1.39128743 0.60396899 0.41857618 -0.76186563 -0.02932525 -0.49345190 257 | 1461244007.54467 -2.68942194 -1.37258645 0.58739554 0.40632393 -0.76359582 -0.03121413 -0.50084725 258 | 1461244007.62489 -2.65828746 -1.35605924 0.57601549 0.40415218 -0.75750968 -0.04454056 -0.51074087 259 | 1461244007.74494 -2.61382370 -1.33777352 0.56032363 0.39855355 -0.76336092 -0.04880391 -0.50601715 260 | 1461244007.86464 -2.56929932 -1.31489693 0.54935158 0.39282438 -0.76283412 -0.06088868 -0.50996636 261 | 1461244007.98475 -2.52581443 -1.28604760 0.53527693 0.39586753 -0.76521397 -0.06937184 -0.50291552 262 | 1461244008.12461 -2.47664215 -1.25493232 0.51179946 0.40210908 -0.78031810 -0.06877368 -0.47400646 263 | 1461244008.26460 -2.42542618 -1.22964763 0.48531293 0.40820069 -0.79448103 -0.06616242 -0.44474108 264 | 1461244008.36517 -2.39373490 -1.21929342 0.46244737 0.40733857 -0.81040126 -0.05706278 -0.41721569 265 | 1461244008.44451 -2.36812140 -1.20570447 0.44202836 0.40337442 -0.81763278 -0.05863315 -0.40660530 266 | 1461244008.52472 -2.34521390 -1.19098359 0.42028309 0.41559498 -0.81560928 -0.05506366 -0.39878604 267 | 1461244008.62509 -2.32007445 -1.17075359 0.38803909 0.42849242 -0.81553354 -0.05442914 -0.38514510 268 | 1461244008.68448 -2.30582175 -1.16096468 0.36684935 0.43058614 -0.81983217 -0.05165734 -0.37390148 269 | 1461244008.74447 -2.29303736 -1.15246401 0.34408947 0.42844439 -0.82836967 -0.05020360 -0.35737754 270 | 1461244008.86460 -2.26488342 -1.13495442 0.30200267 0.42937842 -0.83408192 -0.06334190 -0.34048396 271 | 1461244008.98455 -2.24124833 -1.12355949 0.26706489 0.43828200 -0.83908886 -0.06734529 -0.31512439 272 | 1461244009.22484 -2.19535693 -1.09945264 0.20752267 0.43426915 -0.84979490 -0.09024129 -0.28480774 273 | 1461244009.44458 -2.15026343 -1.07402282 0.14496477 0.44883586 -0.85297341 -0.08584843 -0.25221573 274 | 1461244009.64536 -2.10543116 -1.05592648 0.08590315 0.46692820 -0.84994029 -0.08413136 -0.22913200 275 | 1461244009.88444 -2.05549772 -1.02766202 0.01573607 0.47528723 -0.84283595 -0.09552481 -0.23367631 276 | 1461244010.08477 -2.00769411 -0.99250799 -0.05540664 0.49043799 -0.83030955 -0.10251726 -0.24402223 277 | 1461244010.20464 -1.96761221 -0.96910356 -0.10654146 0.49492527 -0.81771216 -0.11385526 -0.27098485 278 | 1461244010.32481 -1.92285736 -0.95980717 -0.16328136 0.50376477 -0.80768201 -0.11058362 -0.28573080 279 | 1461244010.42513 -1.88168486 -0.95731110 -0.20920202 0.52054564 -0.78920073 -0.11138217 -0.30624900 280 | 1461244010.52479 -1.84027938 -0.96022312 -0.25093391 0.52853899 -0.78219607 -0.08912432 -0.31760462 281 | 1461244010.66515 -1.78329470 -0.95033404 -0.30659969 0.53565163 -0.76938826 -0.09136913 -0.33581353 282 | 1461244010.76448 -1.73893272 -0.92829799 -0.34301057 0.53032879 -0.75662435 -0.09843123 -0.36957038 283 | 1461244010.86470 -1.69038144 -0.90051236 -0.37950077 0.52884460 -0.73857755 -0.09660735 -0.40680906 284 | 1461244010.98447 -1.62963395 -0.87364248 -0.43221938 0.53139746 -0.72671892 -0.07908593 -0.42806748 285 | 1461244011.10476 -1.56632479 -0.85033971 -0.47999118 0.52735361 -0.72050717 -0.06577603 -0.44546728 286 | 1461244011.22446 -1.50592400 -0.83081801 -0.52654471 0.50883952 -0.71322993 -0.07836024 -0.47565228 287 | 1461244011.34447 -1.45102884 -0.81225896 -0.57414193 0.50744329 -0.69652160 -0.08437000 -0.50024061 288 | 1461244011.44430 -1.40672681 -0.79649336 -0.61653662 0.48701059 -0.68888360 -0.08248871 -0.53052397 289 | 1461244011.54435 -1.36496677 -0.78362496 -0.66213978 0.47968000 -0.67309612 -0.06507202 -0.55911926 290 | 1461244011.64434 -1.32632824 -0.77797107 -0.70857094 0.46689407 -0.65474869 -0.04808700 -0.59245399 291 | 1461244011.74429 -1.29128642 -0.78194575 -0.75583340 0.45097025 -0.63936033 -0.03532847 -0.62176853 292 | 1461244011.84474 -1.25475249 -0.79632532 -0.80237360 0.43921124 -0.62024537 -0.01529875 -0.64973465 293 | 1461244011.96431 -1.21914351 -0.81377607 -0.86478768 0.41598434 -0.61024227 0.00044577 -0.67421154 294 | 1461244012.08441 -1.18849980 -0.82513738 -0.93541813 0.39192822 -0.60809451 0.01427792 -0.69022422 295 | 1461244012.22428 -1.16433483 -0.82561491 -1.02555123 0.38049411 -0.59351877 0.02991088 -0.70856548 296 | 1461244012.34508 -1.15106834 -0.81715317 -1.10813001 0.38441638 -0.57414719 0.03975549 -0.72180230 297 | 1461244012.46429 -1.13805000 -0.81916820 -1.20027281 0.39237855 -0.55926765 0.03492992 -0.72940981 298 | 1461244012.58471 -1.12962644 -0.82442485 -1.29922788 0.39989160 -0.57024492 0.02577495 -0.71710744 299 | 1461244012.70672 -1.12615192 -0.82889269 -1.40041636 0.40790027 -0.57433795 0.01237853 -0.70964784 300 | 1461244012.82445 -1.13198078 -0.82579481 -1.50138859 0.41454245 -0.56880572 0.00781034 -0.71031937 301 | 1461244012.94422 -1.14283822 -0.82438690 -1.60634296 0.42536437 -0.57066166 0.01298330 -0.70231179 302 | 1461244013.06459 -1.15457260 -0.82599322 -1.70308402 0.42158269 -0.56999997 -0.01177973 -0.70514488 303 | 1461244013.18464 -1.15670020 -0.82720852 -1.79265586 0.44210384 -0.56195868 -0.02772980 -0.69855401 304 | 1461244013.30651 -1.15497646 -0.82723725 -1.87139398 0.42488651 -0.55655962 -0.04966133 -0.71221247 305 | 1461244013.42518 -1.15477628 -0.80970451 -1.95341710 0.43904025 -0.54277167 -0.05072612 -0.71419145 306 | 1461244013.54498 -1.14829930 -0.78523400 -2.03494169 0.45317936 -0.52286982 -0.04221552 -0.72073120 307 | 1461244013.68469 -1.12565318 -0.76231814 -2.11834646 0.45702290 -0.51377316 -0.02759398 -0.72553827 308 | 1461244013.82427 -1.09078599 -0.76143464 -2.18185684 0.45651915 -0.50016213 -0.02501013 -0.73539282 309 | 1461244013.96498 -1.04669021 -0.77191735 -2.22923969 0.42998824 -0.50086767 -0.01694638 -0.75096905 310 | 1461244014.08422 -1.01181127 -0.76435219 -2.25697306 0.41226647 -0.47242824 -0.00607186 -0.77898078 311 | 1461244014.22422 -0.97778064 -0.75039897 -2.28216895 0.38685510 -0.44123938 0.00594304 -0.80970094 312 | 1461244014.36421 -0.94903640 -0.73234031 -2.29093763 0.37117191 -0.39566378 0.00083138 -0.84004815 313 | 1461244014.52445 -0.91214853 -0.72163678 -2.28088565 0.34129316 -0.35560784 -0.00076955 -0.87009278 314 | 1461244014.66418 -0.87301296 -0.70036632 -2.25676771 0.32082875 -0.32693028 0.00190951 -0.88892174 315 | 1461244014.80631 -0.82604353 -0.66476037 -2.21073612 0.28451818 -0.31366533 -0.00785936 -0.90587068 316 | 1461244014.94426 -0.77093244 -0.62441388 -2.15426774 0.27664335 -0.30469214 -0.00486702 -0.91137669 317 | 1461244015.06455 -0.72312549 -0.60057725 -2.09858088 0.25891054 -0.29603339 0.00210546 -0.91941565 318 | 1461244015.18408 -0.67807319 -0.58093148 -2.04121350 0.23580134 -0.29637983 -0.00710134 -0.92547625 319 | 1461244015.28494 -0.65010609 -0.55801435 -1.98734113 0.23952767 -0.27401799 -0.00655770 -0.93139553 320 | 1461244015.38416 -0.62485262 -0.53491044 -1.92926843 0.22962079 -0.25169634 -0.00716709 -0.94014460 321 | 1461244015.48411 -0.59940979 -0.51141686 -1.86547956 0.20768323 -0.23687344 -0.01964944 -0.94887963 322 | 1461244015.60647 -0.56402072 -0.49032282 -1.79101191 0.18265808 -0.22072668 -0.01653319 -0.95793654 323 | 1461244015.70660 -0.54368744 -0.48439816 -1.72674914 0.16074820 -0.18233929 -0.01518307 -0.96988756 324 | 1461244015.84407 -0.51513077 -0.47413472 -1.63857236 0.14609056 -0.14792726 -0.01843790 -0.97797501 325 | 1461244015.96478 -0.49794266 -0.45864289 -1.55810662 0.12521304 -0.12202874 -0.03040085 -0.98412726 326 | 1461244016.08432 -0.48402890 -0.43924526 -1.47313986 0.10740711 -0.10503232 -0.01928502 -0.98846346 327 | 1461244016.18408 -0.47317718 -0.42430230 -1.39867188 0.08557494 -0.09058649 -0.01625082 -0.99207204 328 | 1461244016.30605 -0.45400947 -0.41484508 -1.31309169 0.05907976 -0.09040765 -0.01486519 -0.99403977 329 | 1461244016.56395 -0.40935452 -0.38308070 -1.13581985 0.05717291 -0.06404689 -0.03030734 -0.99584673 330 | 1461244016.68404 -0.39455710 -0.35395460 -1.05142257 0.05899183 -0.04758655 -0.03145952 -0.99662720 331 | 1461244016.80639 -0.37673619 -0.32658195 -0.96173713 0.05017240 -0.03123599 -0.03648253 -0.99758512 332 | 1461244016.92470 -0.35043921 -0.30815625 -0.87013877 0.03909749 -0.02229524 -0.03485236 -0.99837850 333 | 1461244017.20613 -0.28853512 -0.26892945 -0.67318758 0.03637055 0.00161211 -0.04412252 -0.99836255 334 | 1461244017.34399 -0.26302581 -0.23262036 -0.57284890 0.03360198 0.00272576 -0.04691803 -0.99832969 335 | 1461244017.46405 -0.24075750 -0.19384673 -0.48185516 0.02889170 -0.00271746 -0.03789930 -0.99886011 336 | 1461244017.58395 -0.21677435 -0.16427757 -0.38959698 0.01877751 -0.00692571 -0.03663988 -0.99912810 337 | 1461244017.66401 -0.20440049 -0.14842961 -0.32951363 0.02786057 0.01648652 -0.02524692 -0.99915693 338 | 1461244017.88467 -0.16850070 -0.10826786 -0.18808137 0.04234106 0.05284061 -0.03550018 -0.99707314 339 | 1461244017.98400 -0.15391171 -0.08244799 -0.13502434 0.04414942 0.07502422 -0.04718304 -0.99508590 340 | 1461244018.10609 -0.13251147 -0.04798966 -0.07861679 0.03784940 0.09769971 -0.04997092 -0.99323970 341 | 1461244018.20478 -0.11151118 -0.01660230 -0.03557368 0.03164270 0.11972475 -0.05396748 -0.99083411 342 | 1461244018.42398 -0.05820022 0.04768881 0.04853094 0.04393963 0.16147021 -0.04794827 -0.98473227 343 | 1461244018.56418 -0.02422673 0.07548276 0.09361203 0.04787503 0.16495686 -0.05703270 -0.98348589 344 | 1461244018.70403 0.00074415 0.10495679 0.13204553 0.05869800 0.15223073 -0.06707342 -0.98431779 345 | -------------------------------------------------------------------------------- /MatlabEvaluationCode/examples/sequence_36.txt: -------------------------------------------------------------------------------- 1 | 1464104601.78447 -0.28239162 -0.40765240 -0.32656450 -0.10849911 0.01330973 -0.19977558 -0.97372507 2 | 1464104601.98640 -0.32849085 -0.37161260 -0.40548516 -0.08321494 0.02805504 -0.19990201 -0.97587262 3 | 1464104602.18458 -0.38072996 -0.33976294 -0.49677113 -0.06318149 0.04781216 -0.19293951 -0.97800636 4 | 1464104602.41794 -0.42054047 -0.30184565 -0.60886221 -0.03619726 0.05715942 -0.19593524 -0.97828009 5 | 1464104603.35099 -0.39159684 -0.22454565 -0.73864177 -0.04389124 0.02428110 -0.17104347 -0.98398583 6 | 1464104603.65411 -0.36422172 -0.22340766 -0.61982317 -0.02743847 0.00742602 -0.16794100 -0.98538713 7 | 1464104603.78442 -0.35907958 -0.22260100 -0.53426021 -0.01984261 -0.00356433 -0.16269724 -0.98647006 8 | 1464104604.18435 -0.33524272 -0.27679708 -0.28865366 -0.02270002 -0.02812672 -0.18084764 -0.98284675 9 | 1464104604.58433 -0.28509044 -0.34227457 -0.08923480 -0.04583199 -0.02019470 -0.18764540 -0.98095913 10 | 1464104604.71784 -0.25432139 -0.38347608 -0.02769955 -0.06029552 -0.02149083 -0.19058976 -0.97958059 11 | 1464104604.85095 -0.22146475 -0.42780200 0.03111374 -0.07171038 -0.01873043 -0.19695018 -0.97760801 12 | 1464104604.98706 -0.19163830 -0.47258071 0.07658677 -0.08723985 -0.01780032 -0.19600545 -0.97655221 13 | 1464104605.05087 -0.17803808 -0.49712292 0.09389501 -0.10568646 -0.01717084 -0.19906227 -0.97411999 14 | 1464104605.15325 -0.15800968 -0.52941892 0.11418665 -0.13014462 -0.01774006 -0.20215361 -0.97050584 15 | 1464104605.28418 -0.13676290 -0.56259192 0.13166689 -0.15791242 -0.02198703 -0.20924532 -0.96477802 16 | 1464104605.48657 -0.11231018 -0.59831586 0.14090239 -0.17824576 -0.02604912 -0.21722164 -0.95935637 17 | 1464104605.61751 -0.09941046 -0.62919721 0.14014313 -0.20361769 -0.02582327 -0.21139114 -0.95560807 18 | 1464104606.01737 -0.07666863 -0.67516628 0.13029453 -0.25852962 -0.03888791 -0.20739107 -0.94267657 19 | 1464104606.08406 -0.08310872 -0.66498888 0.13678228 -0.25063543 -0.03537771 -0.20578765 -0.94529453 20 | 1464104606.21738 -0.10457104 -0.63781332 0.15020282 -0.22630969 -0.02686757 -0.20510820 -0.95183648 21 | 1464104606.31942 -0.12378079 -0.61060804 0.15894380 -0.20563091 -0.02010381 -0.20536367 -0.95662821 22 | 1464104606.41743 -0.14731014 -0.58103703 0.16483966 -0.18380471 -0.01574421 -0.20054816 -0.96215819 23 | 1464104606.48667 -0.16380613 -0.55618766 0.16941305 -0.16035540 -0.01105472 -0.19949892 -0.96662512 24 | 1464104606.55070 -0.18331166 -0.52879234 0.17150426 -0.13477084 -0.00667753 -0.19902335 -0.97066057 25 | 1464104606.61740 -0.20237586 -0.50409232 0.17232190 -0.11034635 0.00075987 -0.19824662 -0.97392062 26 | 1464104606.68475 -0.22118959 -0.48101940 0.16890471 -0.08609254 0.00577246 -0.19676900 -0.97664565 27 | 1464104606.78406 -0.24875215 -0.44693870 0.15606138 -0.05402159 0.00926805 -0.19302731 -0.97966128 28 | 1464104606.88407 -0.27217081 -0.41860213 0.13077429 -0.02853653 0.00808356 -0.19117334 -0.98110809 29 | 1464104606.98611 -0.29482011 -0.39392374 0.09761316 -0.00787135 0.00411802 -0.18908391 -0.98192075 30 | 1464104607.11719 -0.32287768 -0.36554062 0.04544838 0.01350459 0.00009728 -0.19250143 -0.98120376 31 | 1464104607.25053 -0.34445062 -0.33491054 -0.01563577 0.03449662 -0.00413176 -0.20001604 -0.97917644 32 | 1464104607.41736 -0.36049976 -0.29942324 -0.10343503 0.05393103 -0.00748010 -0.20361197 -0.97753652 33 | 1464104607.58398 -0.37199195 -0.28490870 -0.20804860 0.05680937 0.00199687 -0.18605053 -0.98089444 34 | 1464104607.71714 -0.37195572 -0.27634880 -0.30699541 0.05042905 0.01563694 -0.17954494 -0.98233192 35 | 1464104607.85059 -0.36207581 -0.26338530 -0.41022144 0.05217922 0.02823119 -0.17408049 -0.98294268 36 | 1464104608.01717 -0.33942076 -0.24606139 -0.51833726 0.04992797 0.04144162 -0.16964566 -0.98336674 37 | 1464104608.18379 -0.29594518 -0.22521104 -0.60320294 0.05138939 0.02979006 -0.16867100 -0.98388098 38 | 1464104608.41839 -0.23880689 -0.19650212 -0.69872269 0.04866498 0.02479471 -0.16057521 -0.98551131 39 | 1464104608.65311 -0.18119066 -0.17192418 -0.79469995 0.03994537 0.03356045 -0.14348588 -0.98827621 40 | 1464104608.88381 -0.09756149 -0.14630100 -0.86751594 0.04309360 0.02692887 -0.13831041 -0.98908443 41 | 1464104609.08374 -0.00434910 -0.13531644 -0.88246985 0.03408886 0.01036221 -0.14206973 -0.98921523 42 | 1464104609.28372 0.09587391 -0.12818034 -0.86521537 0.01359539 0.00391515 -0.13946942 -0.99012530 43 | 1464104609.48777 0.18201195 -0.12830545 -0.83829798 -0.00451029 0.01273432 -0.13246661 -0.99109540 44 | 1464104609.78355 0.25307132 -0.16718069 -0.76629197 -0.02497002 0.00451239 -0.15277859 -0.98793463 45 | 1464104610.05040 0.22348647 -0.21311194 -0.65223367 -0.05059451 -0.01327797 -0.15649386 -0.98629284 46 | 1464104610.21698 0.18656691 -0.26489053 -0.56348991 -0.06357992 -0.03045811 -0.15898792 -0.98476025 47 | 1464104610.38358 0.14010653 -0.31236125 -0.47215775 -0.06691628 -0.05284452 -0.17863255 -0.98021430 48 | 1464104610.55139 0.09577760 -0.35848214 -0.38571582 -0.09047693 -0.06536062 -0.18539668 -0.97630425 49 | 1464104610.68364 0.06090393 -0.38266106 -0.31561825 -0.10577196 -0.07488469 -0.18288415 -0.97455526 50 | 1464104610.85029 0.01557577 -0.40492718 -0.22141497 -0.12062939 -0.08331323 -0.17519452 -0.97355757 51 | 1464104611.01696 -0.02849861 -0.43349500 -0.11967060 -0.12760501 -0.08665289 -0.17467571 -0.97246935 52 | 1464104611.11677 -0.05368891 -0.45863885 -0.05953181 -0.12341666 -0.08683095 -0.17755678 -0.97247227 53 | 1464104611.25025 -0.09045483 -0.49233491 0.00760854 -0.12815747 -0.08769008 -0.18211783 -0.97093728 54 | 1464104611.35019 -0.12678620 -0.51301783 0.05112367 -0.13515207 -0.08820038 -0.17972399 -0.97038853 55 | 1464104611.45020 -0.17299877 -0.52807607 0.09477200 -0.13452741 -0.08817705 -0.17870016 -0.97066649 56 | 1464104611.51678 -0.20865920 -0.53798272 0.12312788 -0.13184719 -0.08797235 -0.17601657 -0.97154277 57 | 1464104611.58346 -0.24281254 -0.54842983 0.14786423 -0.12696705 -0.09370409 -0.17738785 -0.97140746 58 | 1464104611.65270 -0.27996280 -0.55943922 0.17052446 -0.12425510 -0.09608229 -0.18165053 -0.97073784 59 | 1464104611.71685 -0.31641720 -0.56713238 0.18999144 -0.11631954 -0.09768948 -0.18751609 -0.97044538 60 | 1464104611.78338 -0.35334301 -0.57420465 0.20522262 -0.10684612 -0.09879157 -0.19132391 -0.97067981 61 | 1464104611.85019 -0.39133513 -0.58080725 0.21657629 -0.09662369 -0.09584037 -0.19208402 -0.97189619 62 | 1464104611.95009 -0.44381741 -0.58598930 0.22620046 -0.08474231 -0.09373750 -0.19134207 -0.97335514 63 | 1464104612.05016 -0.49092906 -0.58010241 0.22867049 -0.06892051 -0.09112268 -0.18900212 -0.97530755 64 | 1464104612.15331 -0.53086756 -0.56533021 0.21816784 -0.05351421 -0.08845981 -0.18412349 -0.97745058 65 | 1464104612.28367 -0.57023354 -0.53614748 0.18512899 -0.02974233 -0.08529075 -0.18196207 -0.97914794 66 | 1464104612.41696 -0.60094265 -0.50424648 0.13424353 -0.00708949 -0.07635823 -0.17602545 -0.98139401 67 | 1464104612.55015 -0.61578197 -0.46766247 0.07008549 0.01081545 -0.06580938 -0.17373302 -0.98253193 68 | 1464104612.65460 -0.61457293 -0.44132526 0.01006689 0.01618613 -0.06416155 -0.17958098 -0.98151514 69 | 1464104612.75036 -0.60904329 -0.41688704 -0.05681994 0.02512293 -0.06014471 -0.17984265 -0.98153353 70 | 1464104612.88332 -0.59589187 -0.39758174 -0.14649743 0.02055947 -0.05509845 -0.17846944 -0.98218640 71 | 1464104613.05030 -0.58005690 -0.38334794 -0.24728247 0.01188488 -0.05224135 -0.16546318 -0.98475963 72 | 1464104613.25029 -0.56445615 -0.37724832 -0.34664088 0.00080588 -0.06084140 -0.15518207 -0.98601024 73 | 1464104613.48577 -0.56244392 -0.36928681 -0.46747260 -0.00912146 -0.06993978 -0.14904285 -0.98631205 74 | 1464104613.71649 -0.56967347 -0.35712767 -0.61105716 -0.01335706 -0.05829039 -0.13679658 -0.98879245 75 | 1464104614.01649 -0.55858866 -0.34963783 -0.76024667 -0.01072330 -0.05792950 -0.14602717 -0.98752481 76 | 1464104614.41649 -0.48999577 -0.34776674 -0.86285732 -0.02652379 -0.04584523 -0.14097258 -0.98859569 77 | 1464104614.78314 -0.40667861 -0.33209751 -0.89791139 -0.04361393 -0.02926992 -0.13512012 -0.98943603 78 | 1464104615.15262 -0.33304493 -0.31936921 -0.78395684 -0.05823897 -0.03811449 -0.13327890 -0.98863150 79 | 1464104615.38359 -0.29964484 -0.34587439 -0.63951900 -0.08501259 -0.03578716 -0.12524206 -0.98782922 80 | 1464104615.61834 -0.27585943 -0.37112005 -0.47947854 -0.08739982 -0.02985763 -0.13149316 -0.98700524 81 | 1464104615.81779 -0.26905851 -0.38004466 -0.35050550 -0.08488785 -0.02140468 -0.13754659 -0.98661889 82 | 1464104615.98548 -0.26585688 -0.38819034 -0.23657023 -0.09591504 -0.01448834 -0.14189155 -0.98511785 83 | 1464104616.11623 -0.25612403 -0.39790642 -0.13920105 -0.10932680 -0.01674331 -0.14656410 -0.98299862 84 | 1464104616.24953 -0.24797728 -0.41675977 -0.03376178 -0.11777425 -0.01021388 -0.14917957 -0.98171807 85 | 1464104616.34953 -0.24017626 -0.43483514 0.04528577 -0.11941090 -0.00605062 -0.15616664 -0.98046744 86 | 1464104616.45157 -0.22917696 -0.45296699 0.11568091 -0.12555175 -0.00645901 -0.16096901 -0.97891982 87 | 1464104616.54954 -0.21947781 -0.46357225 0.17835416 -0.12351950 -0.00583097 -0.16365895 -0.97873627 88 | 1464104616.65204 -0.21777312 -0.47172230 0.22753976 -0.11886451 -0.00538811 -0.17217301 -0.97785411 89 | 1464104616.74955 -0.20651033 -0.47354725 0.27182147 -0.11153759 -0.00461995 -0.17273849 -0.97862119 90 | 1464104617.11779 -0.22069174 -0.46657238 0.28659659 -0.09912562 -0.01310774 -0.17026460 -0.98031233 91 | 1464104617.24941 -0.23393345 -0.46653918 0.24184330 -0.10272454 -0.01580597 -0.16459077 -0.98087090 92 | 1464104617.34950 -0.24487222 -0.46286938 0.19536764 -0.10253627 -0.01976831 -0.16559102 -0.98065037 93 | 1464104617.44947 -0.25770015 -0.45647226 0.13828329 -0.10315218 -0.02460929 -0.16783628 -0.98009438 94 | 1464104617.54941 -0.27509638 -0.44899843 0.07238180 -0.10302651 -0.02472099 -0.16543595 -0.98051280 95 | 1464104617.65164 -0.29673973 -0.43479547 0.00153312 -0.08901980 -0.02434393 -0.16539795 -0.98189937 96 | 1464104617.74938 -0.31631893 -0.42074670 -0.06556050 -0.07322133 -0.02649297 -0.17576179 -0.98134833 97 | 1464104617.88267 -0.34363736 -0.40467415 -0.15096085 -0.05680762 -0.04211116 -0.19799887 -0.97764819 98 | 1464104618.01623 -0.38706436 -0.39733516 -0.22790304 -0.04179970 -0.03815346 -0.21684225 -0.97456479 99 | 1464104618.15164 -0.43015685 -0.38249883 -0.30299398 -0.01956015 -0.02202994 -0.24067226 -0.97015924 100 | 1464104618.28457 -0.47637747 -0.37055026 -0.37777761 -0.00136894 -0.00498508 -0.25979327 -0.96565042 101 | 1464104618.41604 -0.52591531 -0.37578847 -0.45602654 0.01046024 0.02278599 -0.27033421 -0.96244002 102 | 1464104618.51611 -0.55860109 -0.38473608 -0.51556698 0.01716155 0.04075594 -0.28502362 -0.95749985 103 | 1464104618.68266 -0.60731931 -0.42147836 -0.59264783 0.00950983 0.06143266 -0.31217138 -0.94798978 104 | 1464104618.84918 -0.64774411 -0.47596639 -0.63977166 -0.01723419 0.08217085 -0.32317791 -0.94260648 105 | 1464104619.08259 -0.67005089 -0.54708024 -0.66497878 -0.04496189 0.08415068 -0.32887450 -0.93954173 106 | 1464104619.28257 -0.66052808 -0.61664542 -0.67844525 -0.07767330 0.07614840 -0.36022992 -0.92650024 107 | 1464104619.44926 -0.63593505 -0.66632685 -0.68865367 -0.11785949 0.08102770 -0.40031489 -0.90514730 108 | 1464104619.65224 -0.59441919 -0.70398276 -0.69033497 -0.14507151 0.08881151 -0.45133798 -0.87599133 109 | 1464104619.84910 -0.52439925 -0.71777321 -0.68225361 -0.16186320 0.08585181 -0.49763911 -0.84781194 110 | 1464104619.98484 -0.46428130 -0.71050928 -0.68059610 -0.17221164 0.07044126 -0.49995865 -0.84582654 111 | 1464104620.11594 -0.39122751 -0.68908250 -0.68124972 -0.18034991 0.05338150 -0.47904765 -0.85740170 112 | 1464104620.24912 -0.31637782 -0.66787456 -0.68301918 -0.18305469 0.04814004 -0.45865178 -0.86822351 113 | 1464104620.41614 -0.23713203 -0.63071431 -0.67874328 -0.17673662 0.04433036 -0.41868871 -0.88966216 114 | 1464104620.58418 -0.16802059 -0.58445376 -0.66996368 -0.16152709 0.03269759 -0.38295019 -0.90894940 115 | 1464104620.74909 -0.11549622 -0.54531566 -0.66155845 -0.14188531 0.01584939 -0.33796190 -0.93026830 116 | 1464104620.94903 -0.07601872 -0.49029854 -0.64942111 -0.11884230 0.00130657 -0.30373487 -0.94531472 117 | 1464104621.11565 -0.06339958 -0.42872596 -0.63813413 -0.09349233 -0.01003002 -0.28956418 -0.95252883 118 | 1464104621.31778 -0.06407316 -0.35792917 -0.62752667 -0.07086902 -0.02728309 -0.26285505 -0.96184221 119 | 1464104621.48562 -0.07528461 -0.29222596 -0.62033579 -0.03390373 -0.03699582 -0.24984722 -0.96698408 120 | 1464104621.65128 -0.09668568 -0.22927889 -0.61581590 0.00132659 -0.04493668 -0.23541280 -0.97085516 121 | 1464104621.81807 -0.12988440 -0.16707357 -0.61368580 0.03138034 -0.05021784 -0.21675319 -0.97442881 122 | 1464104622.01562 -0.18533475 -0.10996127 -0.61531013 0.05833651 -0.05251795 -0.19500638 -0.97765599 123 | 1464104622.21683 -0.26069216 -0.07672815 -0.61542139 0.07562764 -0.04229892 -0.17855409 -0.98010698 124 | 1464104622.41603 -0.34926745 -0.09357094 -0.60033129 0.06434717 -0.03951603 -0.17203161 -0.98219298 125 | 1464104622.58227 -0.42427047 -0.14258565 -0.58588526 0.04325550 -0.04308488 -0.17517081 -0.98264329 126 | 1464104622.74873 -0.50210538 -0.19692808 -0.57699055 0.02644365 -0.04443739 -0.19430418 -0.97957743 127 | 1464104622.91537 -0.57170819 -0.25905616 -0.56848528 0.01140473 -0.03847190 -0.21511078 -0.97576493 128 | 1464104623.04904 -0.60966870 -0.31783396 -0.56394112 -0.01816205 -0.03200644 -0.22053062 -0.97468558 129 | 1464104623.21664 -0.62242136 -0.38903452 -0.56423019 -0.05974383 -0.03423236 -0.22434991 -0.97207301 130 | 1464104623.41547 -0.59958130 -0.45294425 -0.56898134 -0.08963333 -0.03893022 -0.21300479 -0.97215187 131 | 1464104623.78276 -0.52073876 -0.46485962 -0.57493585 -0.08087124 -0.05470647 -0.19295115 -0.97633852 132 | 1464104623.98509 -0.47348854 -0.42574438 -0.58822238 -0.06476857 -0.08348926 -0.19104583 -0.97587707 133 | 1464104624.21537 -0.45304809 -0.36013176 -0.62764816 -0.03401994 -0.10407370 -0.18640829 -0.97635202 134 | 1464104624.44866 -0.42555679 -0.29602294 -0.69204173 -0.00260541 -0.11592786 -0.19942702 -0.97302765 135 | 1464104624.65333 -0.41757429 -0.24851397 -0.76076184 0.02678064 -0.09878035 -0.20501899 -0.97339224 136 | 1464104624.81844 -0.40732784 -0.20067481 -0.83226888 0.04953116 -0.06131424 -0.19818135 -0.97699098 137 | 1464104624.94907 -0.39865941 -0.16185795 -0.89178244 0.06158750 -0.02036052 -0.19183851 -0.97928056 138 | 1464104625.11511 -0.36915024 -0.12581059 -0.98128768 0.07431152 0.02088182 -0.17930932 -0.98075987 139 | 1464104625.38192 -0.34542288 -0.08080627 -1.10034524 0.09767692 0.05007560 -0.18184921 -0.97718090 140 | 1464104625.78187 -0.34179413 -0.03994474 -1.25300723 0.11762230 0.06132316 -0.17679406 -0.97526833 141 | 1464104626.31705 -0.38464328 -0.04096570 -1.37252912 0.11776339 0.09358184 -0.16817094 -0.97421392 142 | 1464104626.74838 -0.48457988 -0.04038495 -1.33437709 0.13002697 0.13001955 -0.16034767 -0.96978169 143 | 1464104627.08167 -0.59850927 -0.08513773 -1.17917186 0.12513474 0.15541135 -0.15200924 -0.96802986 144 | 1464104627.21500 -0.62722707 -0.10369406 -1.11002251 0.13282729 0.16950661 -0.14688030 -0.96542768 145 | 1464104627.51495 -0.71756080 -0.15291431 -0.97227681 0.12969987 0.20156694 -0.13860301 -0.96090474 146 | 1464104627.84904 -0.82019503 -0.18693667 -0.78656988 0.12823550 0.21202024 -0.12912582 -0.96017165 147 | 1464104628.08157 -0.89929253 -0.22517414 -0.61883271 0.13113681 0.20541767 -0.13451841 -0.96047463 148 | 1464104628.31831 -0.96707547 -0.27299525 -0.47487826 0.13342236 0.20450013 -0.13848889 -0.95979112 149 | 1464104628.54818 -1.03574707 -0.30592290 -0.31892140 0.11963908 0.19746505 -0.13358375 -0.96376835 150 | 1464104628.71486 -1.05393828 -0.31736821 -0.20803295 0.10696806 0.19259035 -0.13404589 -0.96617726 151 | 1464104628.88153 -1.08918826 -0.35195676 -0.08148875 0.09492472 0.18627259 -0.13896516 -0.96797753 152 | 1464104629.04814 -1.12428791 -0.39711856 0.02849948 0.08204193 0.19166547 -0.14287314 -0.96753332 153 | 1464104629.24811 -1.16639046 -0.43290348 0.14543385 0.07524794 0.19849589 -0.13630886 -0.96765543 154 | 1464104629.41462 -1.19934088 -0.45161896 0.22321286 0.06803883 0.19602544 -0.13037321 -0.96950893 155 | 1464104629.54795 -1.23818006 -0.46661767 0.29813588 0.06545371 0.19474926 -0.12100316 -0.97115744 156 | 1464104629.68138 -1.27804610 -0.48603590 0.37345591 0.06407949 0.18221335 -0.12401269 -0.97330004 157 | 1464104629.81757 -1.32672867 -0.50564568 0.45498707 0.06679557 0.17925143 -0.12482218 -0.97356392 158 | 1464104629.94791 -1.36258407 -0.52660525 0.51444163 0.07379712 0.16887513 -0.12922746 -0.97433846 159 | 1464104630.11476 -1.40113260 -0.54462793 0.57968656 0.07565837 0.16590047 -0.13405374 -0.97405464 160 | 1464104630.28131 -1.43216514 -0.55711769 0.63795050 0.07586488 0.16977272 -0.13189949 -0.97366538 161 | 1464104630.44788 -1.45926568 -0.56838943 0.69659842 0.07242378 0.17404433 -0.12807701 -0.97368355 162 | 1464104630.58134 -1.48210814 -0.57614589 0.76077628 0.07016253 0.17453870 -0.12743579 -0.97384474 163 | 1464104630.71444 -1.48535571 -0.58358352 0.79646459 0.06914903 0.17397106 -0.12652516 -0.97413750 164 | 1464104630.84793 -1.49328671 -0.59408765 0.84014929 0.06658303 0.17200616 -0.12819176 -0.97444726 165 | 1464104630.98415 -1.50299984 -0.60433808 0.87788912 0.06620977 0.17716889 -0.12461825 -0.97401116 166 | 1464104631.15032 -1.51435837 -0.61333003 0.91497820 0.06210089 0.18244430 -0.12261953 -0.97356151 167 | 1464104631.38115 -1.53705245 -0.61946432 0.95045534 0.06291433 0.20153024 -0.11439710 -0.97074232 168 | 1464104631.71450 -1.56387303 -0.61948130 1.01445117 0.06242597 0.22770420 -0.09582163 -0.96699121 169 | 1464104631.94892 -1.59202115 -0.62583552 1.08275747 0.05138897 0.24777219 -0.08415542 -0.96378731 170 | 1464104632.31703 -1.65201812 -0.66013277 1.21150318 0.03654826 0.28709047 -0.06036287 -0.95530080 171 | 1464104632.78106 -1.74424391 -0.71413430 1.34202388 0.02279045 0.31959466 -0.07395189 -0.94438920 172 | 1464104633.14761 -1.83779335 -0.75449548 1.47174028 0.00564872 0.36223908 -0.06972736 -0.92945631 173 | 1464104633.51434 -1.91990461 -0.82079507 1.62785854 -0.00627542 0.38196024 -0.07680471 -0.92096038 174 | 1464104633.81653 -1.96227314 -0.83136567 1.76941095 0.01460423 0.34345172 -0.09563433 -0.93417434 175 | 1464104634.04754 -2.01648828 -0.83431066 1.89930328 0.03628293 0.30140638 -0.10218778 -0.94730956 176 | 1464104634.21425 -2.06777013 -0.84829659 2.00734297 0.04795357 0.25436477 -0.11883232 -0.95858119 177 | 1464104634.41468 -2.12038687 -0.88678348 2.12541658 0.05377659 0.21632627 -0.13129116 -0.96595738 178 | 1464104634.65001 -2.14620230 -0.89526822 2.24937468 0.06610130 0.18039582 -0.13776162 -0.97165308 179 | 1464104634.84747 -2.17885397 -0.88972176 2.44439323 0.08384885 0.14345415 -0.14517020 -0.97535424 180 | 1464104635.04770 -2.18248140 -0.88133860 2.63980359 0.09138164 0.11353429 -0.16062724 -0.97619581 181 | 1464104635.24734 -2.17484237 -0.91509850 2.82009048 0.10007381 0.07703295 -0.17821486 -0.97585379 182 | 1464104635.44767 -2.17743080 -0.90216151 2.99084490 0.12352843 0.03787213 -0.18828254 -0.97357902 183 | 1464104635.58081 -2.17652689 -0.88691519 3.11018627 0.13876046 -0.00342972 -0.19833337 -0.97025648 184 | 1464104635.71402 -2.16021599 -0.86326176 3.22025143 0.14956325 -0.06168815 -0.21399836 -0.96334319 185 | 1464104635.84733 -2.14610373 -0.89193351 3.34524803 0.14567979 -0.12213229 -0.24622209 -0.95038718 186 | 1464104636.01403 -2.11614633 -0.89665443 3.47358438 0.14394412 -0.16962504 -0.25014395 -0.94230326 187 | 1464104636.18059 -2.08427048 -0.87402565 3.61379384 0.14072564 -0.21025316 -0.24681908 -0.93545189 188 | 1464104636.38061 -2.04303072 -0.84828620 3.78838637 0.14758979 -0.23294317 -0.25794558 -0.92596912 189 | 1464104636.61407 -1.98400096 -0.84360286 3.99064342 0.15924545 -0.25422548 -0.25988901 -0.91786055 190 | 1464104636.78053 -1.94745555 -0.83564884 4.12197747 0.16552564 -0.28817738 -0.25603622 -0.90774474 191 | 1464104636.91396 -1.91330615 -0.81440774 4.23962200 0.16379030 -0.32515343 -0.25302788 -0.89633971 192 | 1464104637.04719 -1.88158190 -0.80222837 4.35103050 0.16815438 -0.36859444 -0.26467605 -0.87510504 193 | 1464104637.21376 -1.81699424 -0.78409169 4.45977340 0.17106364 -0.40513320 -0.27248894 -0.85577690 194 | 1464104637.41377 -1.74414971 -0.76204742 4.60226094 0.18651658 -0.43433622 -0.26681288 -0.83986576 195 | 1464104637.61377 -1.62349572 -0.68956639 4.72409273 0.18411183 -0.46343640 -0.26851413 -0.82415393 196 | 1464104637.81376 -1.46629738 -0.64474181 4.82516493 0.18126423 -0.49279666 -0.27693537 -0.80473693 197 | 1464104638.08040 -1.25901511 -0.57054515 4.93337073 0.20158520 -0.51734301 -0.27362821 -0.78539622 198 | 1464104638.31710 -1.03505097 -0.47035719 5.02585878 0.19664515 -0.55732694 -0.26799805 -0.76085111 199 | 1464104638.58067 -0.76313890 -0.41259368 5.09201929 0.20784560 -0.59513697 -0.25493458 -0.73322613 200 | 1464104638.78042 -0.55481594 -0.34289288 5.10938237 0.19919567 -0.63694624 -0.22630608 -0.70951119 201 | 1464104639.21363 -0.02418095 -0.19224473 5.12470805 0.24821378 -0.66974544 -0.19707507 -0.67155967 202 | 1464104639.58028 0.40967015 -0.01199152 5.11908606 0.26476123 -0.70074672 -0.15501389 -0.64407004 203 | 1464104639.94686 0.84776144 0.12621097 5.07861258 0.26884602 -0.71749251 -0.16078456 -0.62215323 204 | 1464104640.38005 1.39615916 0.32157557 4.96572903 0.25863734 -0.71275004 -0.14151925 -0.63644827 205 | 1464104640.78013 1.87772998 0.54020465 4.83787473 0.25991710 -0.74213613 -0.12942992 -0.60409020 206 | 1464104641.24669 2.43043306 0.76001453 4.65840641 0.24796402 -0.77059489 -0.13977619 -0.57022800 207 | 1464104641.68007 2.95782172 0.93766963 4.48839982 0.25927375 -0.75009697 -0.14060803 -0.59191304 208 | 1464104642.04657 3.40322865 1.14441671 4.37292476 0.26428798 -0.73330236 -0.14106837 -0.61034353 209 | 1464104642.34682 3.74859062 1.28970677 4.25742204 0.25452451 -0.71688458 -0.15784836 -0.62958531 210 | 1464104642.54694 3.99270690 1.40101733 4.15135669 0.24995741 -0.70167376 -0.14710397 -0.65079617 211 | 1464104642.77982 4.27636254 1.47906001 4.02449179 0.25107510 -0.68318763 -0.14866748 -0.66941313 212 | 1464104642.97981 4.50537543 1.58580342 3.92194040 0.25223488 -0.67091204 -0.13970233 -0.68318215 213 | 1464104643.14644 4.70895644 1.68091202 3.83227567 0.24700885 -0.66903072 -0.12536556 -0.68968688 214 | 1464104643.31571 4.90224950 1.74237130 3.73804239 0.25915280 -0.66595056 -0.14128431 -0.68511927 215 | 1464104643.51302 5.12273710 1.84374733 3.63256488 0.25334922 -0.65112004 -0.15453961 -0.69855163 216 | 1464104643.71307 5.35493940 1.95002878 3.52002133 0.24214422 -0.63528146 -0.14543960 -0.71877045 217 | 1464104644.01303 5.69748728 2.06288639 3.37414624 0.25489589 -0.60800085 -0.15490222 -0.73577738 218 | 1464104644.58090 6.37435812 2.33283237 3.19296611 0.25524021 -0.62109751 -0.15044912 -0.72557245 219 | 1464104644.97983 6.90778739 2.54431050 3.11236883 0.23382529 -0.61781429 -0.13384393 -0.73872664 220 | 1464104645.34636 7.37134000 2.74948245 3.06818925 0.24879718 -0.61764146 -0.14425499 -0.73199008 221 | 1464104645.68255 7.84375729 2.91100491 3.04573453 0.24927232 -0.62711630 -0.15246663 -0.72204043 222 | 1464104645.94636 8.19443337 3.08234610 3.00923346 0.24373415 -0.63179279 -0.16009326 -0.71819334 223 | 1464104646.18199 8.52444166 3.17994555 2.97316136 0.23700567 -0.63078331 -0.15465095 -0.72251215 224 | 1464104646.44613 8.85398846 3.31803684 2.94165809 0.25218142 -0.64217273 -0.15119267 -0.70792619 225 | 1464104646.71311 9.23253819 3.45484443 2.91612259 0.24582670 -0.66251287 -0.14427482 -0.69269814 226 | 1464104647.01275 9.61843181 3.60637020 2.86729370 0.24822848 -0.67773437 -0.15271838 -0.67508210 227 | 1464104647.31269 10.03087609 3.74882414 2.80161283 0.24557441 -0.67761254 -0.14050148 -0.67881794 228 | 1464104647.54621 10.32235749 3.86285976 2.76161655 0.25850372 -0.68437683 -0.14293364 -0.66661395 229 | 1464104647.71263 10.53743919 3.97000575 2.73230971 0.26502320 -0.70760205 -0.12865664 -0.64226904 230 | 1464104647.88121 10.75312274 4.04104145 2.70356440 0.27266722 -0.72136804 -0.14542148 -0.61978490 231 | 1464104648.07912 10.99335281 4.12587803 2.66227876 0.27611834 -0.73853375 -0.15161470 -0.59610363 232 | 1464104648.27929 11.23420846 4.24903093 2.60806636 0.28001279 -0.75154955 -0.14455722 -0.57954233 233 | 1464104648.44585 11.46361652 4.31065232 2.55818192 0.26132949 -0.76193771 -0.14207591 -0.57530188 234 | 1464104648.61426 11.66200992 4.37147182 2.50480769 0.26476693 -0.76850467 -0.14974605 -0.56291666 235 | 1464104648.74578 11.80761084 4.44952350 2.45338399 0.27849770 -0.77618070 -0.14797830 -0.54597159 236 | 1464104648.88205 11.96337591 4.52768692 2.39572595 0.28390070 -0.79263016 -0.13988349 -0.52112421 237 | 1464104649.01247 12.12802102 4.58435899 2.33225942 0.28553992 -0.80714109 -0.14366644 -0.49633675 238 | 1464104649.14868 12.27519493 4.62741754 2.26601348 0.28695582 -0.81700411 -0.15037338 -0.47702043 239 | 1464104649.27911 12.40949965 4.69319229 2.19521726 0.29048611 -0.82447251 -0.15880588 -0.45895926 240 | 1464104649.41240 12.54615747 4.77513641 2.11336760 0.28640015 -0.83552304 -0.15684928 -0.44189875 241 | 1464104649.54577 12.69006180 4.83851827 2.02059897 0.28881312 -0.84549123 -0.15865206 -0.42019172 242 | 1464104649.67903 12.83470050 4.87445875 1.93099774 0.28377593 -0.85278464 -0.15735174 -0.40923100 243 | 1464104649.81452 12.96330677 4.92012286 1.84478754 0.29288156 -0.85751191 -0.16491368 -0.38948324 244 | 1464104649.91241 13.05442559 4.97134844 1.77663676 0.29592785 -0.86547431 -0.16405671 -0.36941350 245 | 1464104650.01237 13.15178632 5.02355897 1.70291883 0.29196526 -0.87809906 -0.15215594 -0.34719863 246 | 1464104650.11217 13.24843975 5.06189011 1.62774239 0.29288507 -0.88848147 -0.15235863 -0.31875674 247 | 1464104650.17895 13.31049735 5.07925233 1.57800325 0.29501356 -0.89767328 -0.15347147 -0.28913007 248 | 1464104650.27902 13.40202201 5.10207994 1.50024315 0.28472270 -0.90819716 -0.15190921 -0.26652298 249 | 1464104650.37891 13.47281964 5.13365064 1.42462183 0.29506982 -0.90880194 -0.16481356 -0.24464123 250 | 1464104650.48135 13.53734336 5.17379705 1.33944172 0.29628105 -0.91370528 -0.16554212 -0.22350841 251 | 1464104650.57894 13.60061553 5.21570358 1.24410584 0.29081645 -0.92148822 -0.15594897 -0.20485404 252 | 1464104650.68205 13.66381000 5.25003731 1.14461013 0.28881508 -0.92701280 -0.14767226 -0.18821801 253 | 1464104650.81486 13.75157898 5.27232797 1.00533779 0.27642422 -0.93487875 -0.14486402 -0.16913245 254 | 1464104650.91235 13.80950019 5.28866895 0.90975499 0.26667635 -0.93864973 -0.14724945 -0.16167252 255 | 1464104651.01227 13.85472620 5.30479487 0.81710467 0.27327554 -0.93896435 -0.15551379 -0.13957756 256 | 1464104651.11231 13.89294194 5.33938302 0.71750025 0.28395830 -0.93745010 -0.16298390 -0.11828456 257 | 1464104651.21231 13.93581798 5.37980781 0.60547170 0.28134351 -0.94205277 -0.15382557 -0.09859054 258 | 1464104651.31477 13.97722336 5.39751018 0.49383725 0.27553603 -0.94655291 -0.15198809 -0.07083152 259 | 1464104651.38166 14.00178813 5.41057342 0.42110942 0.27777062 -0.94515864 -0.16726318 -0.03926403 260 | 1464104651.48479 14.04103665 5.41808269 0.31175143 0.26044523 -0.95170863 -0.16054373 -0.02539048 261 | 1464104651.57894 14.06276192 5.42424149 0.21180275 0.26711847 -0.94913612 -0.16669550 -0.00097744 262 | 1464104651.67889 14.07132206 5.43722379 0.10561963 0.26246659 -0.95163530 -0.15818482 0.02188837 263 | 1464104651.77877 14.06654348 5.45652266 -0.00361341 0.26377323 -0.95167506 -0.15030371 0.04633634 264 | 1464104651.87880 14.05605399 5.47048897 -0.12004353 0.26411396 -0.95066335 -0.14898484 0.06547155 265 | 1464104652.01208 14.03839451 5.45037316 -0.25601683 0.25685987 -0.95110317 -0.14555912 0.09076515 266 | 1464104652.14840 14.03825359 5.44326678 -0.42767190 0.24855922 -0.95237914 -0.13845487 0.10964736 267 | 1464104652.31400 14.00928387 5.43590818 -0.60302956 0.25173236 -0.94650188 -0.14544777 0.14003555 268 | 1464104652.44690 13.98579493 5.44331390 -0.75413940 0.25436907 -0.94195706 -0.14398511 0.16517132 269 | 1464104652.57866 13.93454777 5.42605196 -0.87062865 0.24693325 -0.93947000 -0.13865690 0.19285839 270 | 1464104652.71241 13.90168443 5.41801190 -1.02758260 0.23395699 -0.93737709 -0.12425016 0.22616411 271 | 1464104652.88002 13.84545152 5.39687770 -1.15864023 0.22853667 -0.92758254 -0.12867465 0.26609106 272 | 1464104653.04537 13.78400134 5.38572197 -1.29218274 0.22695454 -0.91900848 -0.12327223 0.29785736 273 | 1464104653.21199 13.69936955 5.38328235 -1.45117154 0.21681073 -0.91359422 -0.11466820 0.32432995 274 | 1464104653.34535 13.63916306 5.35104029 -1.56643565 0.20975065 -0.90378468 -0.11454849 0.35504444 275 | 1464104653.51313 13.58912238 5.30938990 -1.68667813 0.21157274 -0.89562794 -0.11712701 0.37332134 276 | 1464104653.71186 13.48648990 5.28736433 -1.85770537 0.20776832 -0.88125905 -0.12180896 0.40666619 277 | 1464104653.87862 13.40016283 5.25760563 -2.00895176 0.20563522 -0.86754201 -0.10592245 0.44030155 278 | 1464104654.01180 13.34355498 5.23090374 -2.12465599 0.18705976 -0.86063008 -0.09112779 0.46477978 279 | 1464104654.17857 13.26259658 5.21049805 -2.24909251 0.17863741 -0.84655754 -0.10535832 0.49023324 280 | 1464104654.37857 13.15324247 5.19115309 -2.37851078 0.17591415 -0.83276543 -0.09590279 0.51609942 281 | 1464104654.54514 13.00254466 5.15346915 -2.49506043 0.17181696 -0.82075207 -0.07652949 0.53943322 282 | 1464104654.71184 12.86442448 5.08295587 -2.60919034 0.16169867 -0.81331521 -0.07062875 0.55442176 283 | 1464104654.91169 12.68615940 5.02505345 -2.71624407 0.15792102 -0.79559346 -0.07578855 0.57995525 284 | 1464104655.07850 12.49690050 4.96708885 -2.80609690 0.16062919 -0.77635860 -0.05963221 0.60655551 285 | 1464104655.21173 12.34094227 4.90919856 -2.86267425 0.15678889 -0.75050360 -0.06255873 0.63894287 286 | 1464104655.37846 12.20354869 4.83682757 -2.91824734 0.14651407 -0.73437069 -0.05213656 0.66069289 287 | 1464104655.57842 12.00670662 4.77819194 -2.96325108 0.13784476 -0.71122376 -0.05242212 0.68732198 288 | 1464104655.81691 11.72710729 4.69387101 -2.98931369 0.13314206 -0.69269341 -0.03788597 0.70782320 289 | 1464104656.04731 11.46532797 4.57288061 -2.99172410 0.12425833 -0.67263373 -0.03145183 0.72878976 290 | 1464104656.21158 11.26933647 4.51451731 -2.96908177 0.12538240 -0.64502690 -0.03779776 0.75285515 291 | 1464104656.41463 11.01838781 4.42095717 -2.94548562 0.12907079 -0.61417608 -0.03496930 0.77775679 292 | 1464104656.54497 10.89927917 4.35242804 -2.93727193 0.12235767 -0.59880509 -0.02737651 0.79101934 293 | 1464104656.84490 10.54377514 4.24033031 -2.88627897 0.10942490 -0.57287107 -0.02592417 0.81189462 294 | 1464104657.57826 9.61612423 3.86350404 -2.67980009 0.13239372 -0.57422461 -0.03700038 0.80707433 295 | 1464104657.87816 9.23262085 3.70108204 -2.61583215 0.11064058 -0.57044370 -0.03838409 0.81294484 296 | 1464104658.57815 8.36385096 3.35011403 -2.43211662 0.13861681 -0.58875246 -0.05099185 0.79470482 297 | 1464104659.37797 7.30642868 2.98378749 -2.30637343 0.13158789 -0.60325481 -0.04076954 0.78556101 298 | 1464104659.91115 6.62885223 2.72698352 -2.23640529 0.16152588 -0.61315598 -0.05790019 0.77110097 299 | 1464104660.51102 5.87196959 2.42526898 -2.12669906 0.16040236 -0.62088851 -0.03442057 0.76654012 300 | 1464104660.64732 5.71070648 2.33009951 -2.09877864 0.16023452 -0.63130966 -0.04505612 0.75745822 301 | 1464104661.04441 5.17842498 2.15396119 -2.07330706 0.16703163 -0.61182846 -0.05461957 0.77122180 302 | 1464104661.37774 4.75196365 1.98269055 -2.04104213 0.15181998 -0.61080924 -0.04948500 0.77550887 303 | 1464104661.71108 4.30793064 1.82243010 -2.01014552 0.15374067 -0.61804290 -0.05040500 0.76931536 304 | 1464104661.98022 3.98167706 1.68624461 -1.98834486 0.15724437 -0.62546304 -0.05924242 0.76194523 305 | 1464104662.21081 3.66950361 1.58289636 -1.97648785 0.15669994 -0.61040922 -0.06077182 0.77404942 306 | 1464104662.41098 3.42763633 1.47715704 -1.95172012 0.13718363 -0.60635133 -0.05697358 0.78119954 307 | 1464104662.64688 3.12166608 1.37741734 -1.90405997 0.13544108 -0.59511489 -0.04018810 0.79112508 308 | 1464104662.87799 2.82062838 1.23834297 -1.84758174 0.13804843 -0.59319799 -0.01923479 0.79289898 309 | 1464104663.11077 2.54480122 1.11667236 -1.79556442 0.13368843 -0.58754363 -0.02600158 0.79764892 310 | 1464104663.27753 2.32585179 1.04882596 -1.74978700 0.13961400 -0.56127102 -0.02156053 0.81548631 311 | 1464104663.44423 2.11660983 0.96013649 -1.70310677 0.12890314 -0.54333042 -0.02098496 0.82929829 312 | 1464104663.64663 1.88835543 0.85472103 -1.64474568 0.11157315 -0.53201518 -0.03106373 0.83877669 313 | 1464104663.81318 1.67760970 0.79600669 -1.58874716 0.11194918 -0.52385757 -0.01096015 0.84434620 314 | 1464104663.98038 1.46925271 0.70910952 -1.52616773 0.11232574 -0.51478524 -0.00214514 0.84992616 315 | 1464104664.11137 1.32126426 0.63056588 -1.48399404 0.10801885 -0.51485448 0.00492903 0.85043077 316 | 1464104664.24395 1.17643739 0.56804940 -1.44342448 0.09588629 -0.50254300 0.00364912 0.85921070 317 | 1464104664.34395 1.05954539 0.52966669 -1.40892913 0.08919852 -0.48094105 0.02074770 0.87195692 318 | 1464104664.44392 0.94411051 0.49209801 -1.36703072 0.08597920 -0.45656540 0.03355925 0.88488948 319 | 1464104664.54395 0.83052119 0.45806581 -1.32700730 0.06279056 -0.43550546 0.04330173 0.89694888 320 | 1464104664.64743 0.72482532 0.42037332 -1.28363379 0.03342990 -0.40784511 0.05709566 0.91065081 321 | 1464104664.74392 0.62677519 0.38165388 -1.24469677 0.00804644 -0.37375647 0.06759941 0.92502523 322 | 1464104664.84393 0.53696734 0.35318557 -1.20128945 -0.00976491 -0.34618851 0.07076782 0.93544111 323 | 1464104664.94401 0.43901884 0.32606156 -1.14857592 -0.01001680 -0.33350717 0.07587638 0.93963579 324 | 1464104665.04399 0.34560646 0.29336084 -1.08740032 -0.00398657 -0.31380954 0.08677011 0.94550443 325 | 1464104665.14665 0.26004658 0.25233578 -1.01904087 -0.00037706 -0.28026959 0.09139879 0.95556009 326 | 1464104665.24494 0.17864368 0.20784162 -0.95224992 -0.00532481 -0.25575443 0.09898503 0.96164613 327 | 1464104665.34393 0.10659213 0.16167402 -0.89137170 -0.00916576 -0.23725391 0.10140339 0.96609726 328 | 1464104665.44399 0.04030575 0.12343557 -0.82799933 -0.01922628 -0.20383932 0.10781545 0.97285955 329 | 1464104665.54389 -0.02563920 0.09578695 -0.76008960 -0.03235166 -0.16972330 0.11449939 0.97828281 330 | 1464104665.64632 -0.09215114 0.06915989 -0.68856351 -0.03992117 -0.13811444 0.11054075 0.98341824 331 | 1464104665.71054 -0.13072809 0.04916313 -0.63592985 -0.04123319 -0.11368199 0.11341036 0.98616141 332 | 1464104665.81301 -0.19198166 0.01854957 -0.56179194 -0.05270484 -0.08624414 0.12074596 0.98752446 333 | 1464104665.87722 -0.21768521 -0.00400355 -0.50986145 -0.05789889 -0.05474532 0.13575344 0.98753313 334 | 1464104665.97993 -0.25469544 -0.03915142 -0.43786619 -0.06343255 -0.03055006 0.14400614 0.98706901 335 | 1464104666.11207 -0.29151753 -0.07891140 -0.34910446 -0.07311874 -0.01219567 0.16165525 0.98405919 336 | 1464104666.24381 -0.30895062 -0.11963712 -0.26237154 -0.06997959 0.01212351 0.17102907 0.98270287 337 | 1464104666.37721 -0.31564519 -0.16279093 -0.17185403 -0.05657626 0.02051731 0.18208181 0.98143995 338 | 1464104666.51047 -0.30764889 -0.20811378 -0.08446086 -0.03542420 0.03162503 0.19016840 0.98060235 339 | 1464104666.64656 -0.29252848 -0.24874460 0.00022329 -0.02756457 0.03829836 0.19098525 0.98045809 340 | 1464104666.74372 -0.27061083 -0.28450399 0.05941868 -0.01438947 0.04788010 0.19894652 0.97873425 341 | 1464104666.84376 -0.24582564 -0.32148321 0.11002699 -0.00355369 0.06183998 0.20575720 0.97664075 342 | 1464104666.91030 -0.22816753 -0.34467805 0.13801290 0.00757571 0.06937583 0.20934368 0.97534857 343 | 1464104667.01043 -0.20578316 -0.37678762 0.16976050 0.02186928 0.07583639 0.21502739 0.97341348 344 | 1464104667.14665 -0.18023326 -0.40929439 0.19793161 0.04173311 0.07302774 0.22483323 0.97076017 345 | 1464104667.27775 -0.15810134 -0.43030774 0.20512471 0.06849498 0.08248416 0.22631306 0.96813594 346 | 1464104667.44392 -0.14426738 -0.44725418 0.19123710 0.10497459 0.09190214 0.21267495 0.96711100 347 | 1464104667.64629 -0.14136009 -0.45343074 0.14757915 0.13108840 0.09439770 0.20853233 0.96458238 348 | 1464104667.81308 -0.15070190 -0.44341664 0.09693081 0.12687113 0.09355151 0.20697938 0.96556272 349 | 1464104667.97985 -0.17214582 -0.41878598 0.04107071 0.10498865 0.08230954 0.20280619 0.97008874 350 | 1464104668.07692 -0.18689918 -0.39989576 0.00094392 0.08900676 0.07511028 0.20347549 0.97212858 351 | 1464104668.21034 -0.20861871 -0.37212646 -0.06382966 0.06795577 0.05955133 0.20236284 0.97513329 352 | 1464104668.34354 -0.22787563 -0.34255493 -0.13404903 0.04435863 0.04398227 0.19985974 0.97783125 353 | 1464104668.51167 -0.24058233 -0.30581393 -0.22291697 0.02238512 0.03103341 0.20580932 0.97784373 354 | 1464104668.67687 -0.25159698 -0.26542381 -0.30318788 0.00005096 0.01405572 0.19977357 0.97974127 355 | 1464104668.87687 -0.25681605 -0.21638209 -0.38595095 -0.02443687 -0.00200002 0.18638110 0.98217153 356 | 1464104669.11067 -0.25225957 -0.16481741 -0.49017528 -0.04300862 -0.01342428 0.17544819 0.98345716 357 | 1464104669.74348 -0.21651932 -0.16747056 -0.56043606 -0.01547709 -0.00264120 0.17420035 0.98458505 358 | 1464104670.01053 -0.20327949 -0.18986271 -0.42268076 -0.00673873 0.00123620 0.16692129 0.98594642 359 | 1464104670.17667 -0.18759687 -0.22108653 -0.29591923 0.01483047 0.00564366 0.17719539 0.98404776 360 | 1464104670.34331 -0.17560298 -0.25639931 -0.17548044 0.02056929 0.01136917 0.17365094 0.98452679 361 | 1464104670.50981 -0.16053319 -0.28742160 -0.07055419 0.03153793 0.01377922 0.18081138 0.98291543 362 | 1464104670.64584 -0.14575369 -0.31542413 0.00612434 0.04906618 0.00960996 0.18392035 0.98166871 363 | 1464104670.77667 -0.13584670 -0.34283017 0.08332093 0.07022481 -0.00031466 0.17875572 0.98138411 364 | 1464104670.90990 -0.12659834 -0.36373250 0.15787094 0.08492005 -0.00908861 0.17233049 0.98132980 365 | 1464104671.00995 -0.11997776 -0.37889096 0.21409858 0.09308806 -0.02033120 0.16567652 0.98156637 366 | 1464104671.10999 -0.10818210 -0.39547160 0.26714259 0.09955435 -0.02760187 0.16594514 0.98070856 367 | 1464104671.20995 -0.09304557 -0.41289083 0.31298213 0.11134680 -0.03516916 0.16933053 0.97861749 368 | 1464104671.31125 -0.07457572 -0.42474680 0.35031279 0.12244966 -0.03640610 0.17277867 0.97664129 369 | 1464104671.40986 -0.05256891 -0.43111404 0.37691309 0.13420002 -0.03514804 0.17629398 0.97451291 370 | 1464104671.50997 -0.02574765 -0.42803511 0.39661325 0.13161763 -0.02277348 0.18116157 0.97434011 371 | 1464104671.60999 0.00020991 -0.42368422 0.40900050 0.13443885 -0.01112631 0.18564608 0.97331287 372 | 1464104671.70991 0.02573596 -0.41609918 0.41422884 0.13283087 0.00373771 0.18843626 0.97305384 373 | 1464104671.81347 0.04884440 -0.40738611 0.41279622 0.13214463 0.02183681 0.19099613 0.97241011 374 | 1464104671.90984 0.06872484 -0.39696297 0.40509026 0.13228254 0.03678494 0.19435418 0.97127475 375 | 1464104672.00966 0.08392231 -0.38408337 0.39110792 0.12817640 0.05311081 0.19739660 0.97045589 376 | 1464104672.14667 0.09405212 -0.36789058 0.36366664 0.11983758 0.06730015 0.19365829 0.97139390 377 | 1464104672.24641 0.09747666 -0.35233451 0.33734276 0.11445274 0.07978875 0.19381631 0.97106620 378 | 1464104672.34297 0.09535225 -0.33046892 0.30983326 0.10352774 0.09249102 0.20419260 0.96903705 379 | 1464104672.40984 0.09013637 -0.31476561 0.29000276 0.08722484 0.09964989 0.19832677 0.97114789 380 | 1464104672.50995 0.07531306 -0.29993760 0.24965256 0.06246365 0.11030733 0.19977036 0.97160815 381 | 1464104672.60969 0.06322035 -0.26861123 0.20793234 0.06046710 0.11591322 0.20250571 0.97051496 382 | 1464104672.70960 0.03976284 -0.24843338 0.16137330 0.04256002 0.12226987 0.20371918 0.97043146 383 | 1464104672.81232 0.01017558 -0.23215814 0.11728483 0.02421918 0.11946353 0.20371355 0.97141273 384 | 1464104672.90968 -0.01700898 -0.22066497 0.07545658 0.01418270 0.12395475 0.20211113 0.97138312 385 | 1464104673.04298 -0.05500675 -0.21317610 0.02233400 -0.00040062 0.11889621 0.20325128 0.97188088 386 | 1464104673.17644 -0.09269082 -0.20473548 -0.03088932 -0.00548478 0.10845697 0.20221049 0.97330258 387 | 1464104673.31145 -0.13434932 -0.19497097 -0.08335622 -0.01792518 0.10078277 0.20188094 0.97404600 388 | 1464104673.44304 -0.18009659 -0.18907334 -0.13919337 -0.03022956 0.09590671 0.20675422 0.97321157 389 | 1464104673.54299 -0.21648353 -0.19236885 -0.18367285 -0.04047614 0.08978924 0.20624829 0.97353028 390 | 1464104673.67635 -0.25237563 -0.19513222 -0.24562001 -0.05713338 0.07964461 0.21246405 0.97224047 391 | 1464104673.84296 -0.31022060 -0.21205422 -0.31089635 -0.05931068 0.06387511 0.21454551 0.97281675 392 | 1464104674.00959 -0.37200864 -0.22857900 -0.35979275 -0.05838342 0.04971646 0.22226442 0.97196614 393 | 1464104674.17619 -0.43882328 -0.25217164 -0.38340457 -0.05787156 0.02868817 0.22100917 0.97313042 394 | 1464104674.34302 -0.50534487 -0.28781226 -0.38369768 -0.05031998 0.00842842 0.21637395 0.97497650 395 | 1464104674.47974 -0.54599538 -0.32573570 -0.37409791 -0.03856771 -0.00336319 0.22064960 0.97458451 396 | 1464104674.64563 -0.57273216 -0.38165017 -0.35973380 -0.01045767 -0.01228948 0.22456328 0.97432589 397 | 1464104674.84579 -0.56752175 -0.44503725 -0.34348916 0.02497906 -0.01436530 0.22278069 0.97444264 398 | 1464104675.04411 -0.53267845 -0.49340634 -0.32430385 0.05562854 -0.01968401 0.23305996 0.97067042 399 | 1464104675.24281 -0.46868376 -0.52733256 -0.29320383 0.07842121 -0.02631734 0.25466835 0.96348406 400 | 1464104675.37608 -0.40847971 -0.54421604 -0.27127788 0.10023062 -0.01920366 0.26638416 0.95844902 401 | 1464104675.50933 -0.35405355 -0.57931306 -0.25435773 0.11611622 -0.00303156 0.26635132 0.95685151 402 | 1464104675.64535 -0.27059212 -0.55864554 -0.23012823 0.14198060 -0.00326504 0.26641604 0.95333800 403 | 1464104675.77618 -0.20498118 -0.55739093 -0.20788815 0.14937150 0.00595040 0.26200543 0.95341801 404 | 1464104675.90935 -0.15570735 -0.54532463 -0.18418031 0.13300871 0.02389358 0.25010451 0.95874163 405 | 1464104676.07593 -0.10345798 -0.49246304 -0.13948627 0.12730119 0.03746396 0.24311477 0.96087776 406 | 1464104676.20935 -0.08275629 -0.45719549 -0.11858883 0.10586367 0.04422369 0.23821714 0.96441160 407 | 1464104676.34301 -0.08129414 -0.41753118 -0.10299231 0.07749997 0.04008496 0.23152706 0.96890772 408 | 1464104676.47860 -0.09369478 -0.35495932 -0.09118407 0.05583788 0.03656292 0.22580954 0.97188237 409 | 1464104676.60935 -0.10727292 -0.32479874 -0.08263620 0.03491176 0.03431626 0.21445980 0.97550528 410 | 1464104676.74257 -0.13123135 -0.27152506 -0.07830085 0.01105630 0.02309368 0.19977274 0.97950768 411 | 1464104676.87593 -0.15334439 -0.20279117 -0.08335461 -0.01439063 0.00908737 0.18614255 0.98237533 412 | 1464104677.04486 -0.17956913 -0.15497839 -0.08500720 -0.03962870 0.00223777 0.17326990 0.98407424 413 | 1464104677.20925 -0.20471582 -0.10129255 -0.09031590 -0.05637202 -0.00363680 0.16493317 0.98468575 414 | 1464104677.54251 -0.21415068 -0.04125926 -0.10500797 -0.07961122 -0.00481855 0.15442117 0.98478065 415 | 1464104677.67581 -0.20656645 -0.08453879 -0.09108086 -0.05514258 0.00657384 0.13896678 0.98873875 416 | 1464104677.81153 -0.17896077 -0.13345526 -0.08756807 -0.02630105 0.01269164 0.12052264 0.99228094 417 | 1464104678.07575 -0.14910888 -0.17120448 -0.08946135 -0.01194390 0.02300009 0.12264289 0.99211242 418 | 1464104678.31151 -0.12269742 -0.12261022 -0.10044267 -0.02254766 0.01423630 0.11729808 0.99273868 419 | 1464104678.47877 -0.10860338 -0.07779106 -0.09164715 -0.03689516 0.00293356 0.09306581 0.99497181 420 | 1464104678.67572 -0.08288113 -0.03244120 -0.07863962 -0.04366069 -0.00455104 0.07775597 0.99600554 421 | 1464104678.84235 -0.07445621 0.00232535 -0.05600178 -0.04226532 -0.01566821 0.05363443 0.99754273 422 | 1464104679.00899 -0.04287117 0.01387426 -0.03705474 -0.02846428 -0.02463726 0.02429614 0.99899574 423 | 1464104679.27566 0.00013503 0.00011735 -0.00000032 0.00003398 -0.00003242 -0.00001054 1.00000000 424 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Install 4 | 5 | #### 1. Install Eigen & OpenCV (if you don't have it): 6 | sudo apt-get install libeigen3-dev libopencv-dev 7 | 8 | #### 2. install ziplib: 9 | sudo apt-get install zlib1g-dev 10 | cd thirdparty 11 | tar -zxvf libzip-1.1.1.tar.gz 12 | cd libzip-1.1.1/ 13 | ./configure 14 | make 15 | sudo make install 16 | sudo cp lib/zipconf.h /usr/local/include/zipconf.h # (no idea why that is needed). 17 | 18 | 19 | #### 3. install aruco marker detection (optional - only required for vignette calibration): 20 | see eg here: 21 | 22 | http://maztories.blogspot.de/2013/07/installing-aruco-augmented-reality.html 23 | 24 | tested with version 1.3.0. which is included in /thirdparty. 25 | 26 | #### 4. Build 27 | cmake . && make 28 | 29 | 30 | 31 | 32 | 33 | # Usage: C++ code 34 | 35 | ## playbackDataset: read images, photometric undistortion & rectification. 36 | Shows images of a dataset. Meant as example code regarding how to read the dataset. 37 | Run with (and replace X with the location of the dataset. Mind the trailing slash): 38 | 39 | ./playDataset X/sequence_01/ 40 | 41 | 42 | optionally, the calibration is used for 43 | - rectification ( r ) 44 | - response function inversion ( g ) 45 | - vignette removal ( v ) 46 | - removal of over-exposed (white) images. ( o ). 47 | 48 | Pressing the respective key toggles the option. See code for details. 49 | 50 | 51 | # responseCalib: calibrate response function. 52 | Performs photometric calibration from a set of images, showing the exact same scene at different exposures. 53 | Run with (and replace X with the location of the dataset. Mind the trailing slash): 54 | 55 | ./responseCalib X/CalibrationDatasets/narrow_sweep1/" 56 | 57 | outputs some intermediate results, and pcalib.txt containing the calibrated inverse response function to ./photoCalibResult. 58 | See code for details. 59 | 60 | 61 | # vignetteCalib: calibrate vignette. 62 | Performs photometric calibration from a set of images, showing a flat surface with an ARMarker. 63 | Run with (and replace X with the location of the dataset. Mind the trailing slash): 64 | 65 | ./vignetteCalib X/CalibrationDatasets/narrow_vignette/" 66 | 67 | outputs some intermediate results, and vignette.png (16-bit png) containing the calibrated vignette function. 68 | vignetteSmoothed.png is a slightly smoothed version, mainly to remove the black borders (pixels at the border are never observed). See code for details. 69 | **WARNING: requires a lot of Memory (16GB ram for 1000 input images)**! Can easily be changed at the cost of slightly slower runtime... you'll have to do that yourself though. 70 | 71 | 72 | 73 | # Usage: Matlab evaluation code 74 | Implements Sim(3) alignment of a tracked trajectory to the ground-truth segments, and subsequent computation of the different error values. See MatlabEvaluationCode/Example.m for an example, and some documentation regarding the computed values. Further, we include example results computed with DSO for all 50 sequences. 75 | 76 | 77 | 78 | # License 79 | The code provided in this repository is licensed under the BSD license. 80 | 81 | -------------------------------------------------------------------------------- /cmake/FindEigen3.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find Eigen3 lib 2 | # 3 | # This module supports requiring a minimum version, e.g. you can do 4 | # find_package(Eigen3 3.1.2) 5 | # to require version 3.1.2 or newer of Eigen3. 6 | # 7 | # Once done this will define 8 | # 9 | # EIGEN3_FOUND - system has eigen lib with correct version 10 | # EIGEN3_INCLUDE_DIR - the eigen include directory 11 | # EIGEN3_VERSION - eigen version 12 | 13 | # Copyright (c) 2006, 2007 Montel Laurent, 14 | # Copyright (c) 2008, 2009 Gael Guennebaud, 15 | # Copyright (c) 2009 Benoit Jacob 16 | # Redistribution and use is allowed according to the terms of the 2-clause BSD license. 17 | 18 | if(NOT Eigen3_FIND_VERSION) 19 | if(NOT Eigen3_FIND_VERSION_MAJOR) 20 | set(Eigen3_FIND_VERSION_MAJOR 2) 21 | endif(NOT Eigen3_FIND_VERSION_MAJOR) 22 | if(NOT Eigen3_FIND_VERSION_MINOR) 23 | set(Eigen3_FIND_VERSION_MINOR 91) 24 | endif(NOT Eigen3_FIND_VERSION_MINOR) 25 | if(NOT Eigen3_FIND_VERSION_PATCH) 26 | set(Eigen3_FIND_VERSION_PATCH 0) 27 | endif(NOT Eigen3_FIND_VERSION_PATCH) 28 | 29 | set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") 30 | endif(NOT Eigen3_FIND_VERSION) 31 | 32 | macro(_eigen3_check_version) 33 | file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) 34 | 35 | string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") 36 | set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") 37 | string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") 38 | set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") 39 | string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") 40 | set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") 41 | 42 | set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) 43 | if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) 44 | set(EIGEN3_VERSION_OK FALSE) 45 | else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) 46 | set(EIGEN3_VERSION_OK TRUE) 47 | endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) 48 | 49 | if(NOT EIGEN3_VERSION_OK) 50 | 51 | message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " 52 | "but at least version ${Eigen3_FIND_VERSION} is required") 53 | endif(NOT EIGEN3_VERSION_OK) 54 | endmacro(_eigen3_check_version) 55 | 56 | if (EIGEN3_INCLUDE_DIR) 57 | 58 | # in cache already 59 | _eigen3_check_version() 60 | set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) 61 | 62 | else (EIGEN3_INCLUDE_DIR) 63 | 64 | find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library 65 | PATHS 66 | ${CMAKE_INSTALL_PREFIX}/include 67 | ${KDE4_INCLUDE_DIR} 68 | PATH_SUFFIXES eigen3 eigen 69 | ) 70 | 71 | if(EIGEN3_INCLUDE_DIR) 72 | _eigen3_check_version() 73 | endif(EIGEN3_INCLUDE_DIR) 74 | 75 | include(FindPackageHandleStandardArgs) 76 | find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) 77 | 78 | mark_as_advanced(EIGEN3_INCLUDE_DIR) 79 | 80 | endif(EIGEN3_INCLUDE_DIR) 81 | 82 | -------------------------------------------------------------------------------- /cmake/FindLibZip.cmake: -------------------------------------------------------------------------------- 1 | # Finds libzip. 2 | # 3 | # This module defines: 4 | # LIBZIP_INCLUDE_DIR_ZIP 5 | # LIBZIP_INCLUDE_DIR_ZIPCONF 6 | # LIBZIP_LIBRARY 7 | # 8 | 9 | find_package(PkgConfig) 10 | pkg_check_modules(PC_LIBZIP QUIET libzip) 11 | 12 | find_path(LIBZIP_INCLUDE_DIR_ZIP 13 | NAMES zip.h 14 | HINTS ${PC_LIBZIP_INCLUDE_DIRS}) 15 | 16 | find_path(LIBZIP_INCLUDE_DIR_ZIPCONF 17 | NAMES zipconf.h 18 | HINTS ${PC_LIBZIP_INCLUDE_DIRS}) 19 | 20 | find_library(LIBZIP_LIBRARY 21 | NAMES zip) 22 | 23 | include(FindPackageHandleStandardArgs) 24 | FIND_PACKAGE_HANDLE_STANDARD_ARGS( 25 | LIBZIP DEFAULT_MSG 26 | LIBZIP_LIBRARY LIBZIP_INCLUDE_DIR_ZIP LIBZIP_INCLUDE_DIR_ZIPCONF) 27 | 28 | set(LIBZIP_VERSION 0) 29 | 30 | if (LIBZIP_INCLUDE_DIR_ZIPCONF) 31 | FILE(READ "${LIBZIP_INCLUDE_DIR_ZIPCONF}/zipconf.h" _LIBZIP_VERSION_CONTENTS) 32 | if (_LIBZIP_VERSION_CONTENTS) 33 | STRING(REGEX REPLACE ".*#define LIBZIP_VERSION \"([0-9.]+)\".*" "\\1" LIBZIP_VERSION "${_LIBZIP_VERSION_CONTENTS}") 34 | endif () 35 | endif () 36 | 37 | set(LIBZIP_VERSION ${LIBZIP_VERSION} CACHE STRING "Version number of libzip") 38 | -------------------------------------------------------------------------------- /marker.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tum-vision/mono_dataset_code/3feba2f77488e5b3e05c739c2c7afb57822ad083/marker.pdf -------------------------------------------------------------------------------- /src/BenchmarkDatasetReader.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2016, Jakob Engel 2 | * All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation and/or 12 | * other materials provided with the distribution. 13 | * 14 | * 3. Neither the name of the copyright holder nor the names of its contributors 15 | * may be used to endorse or promote products derived from this software without 16 | * specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21 | * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 22 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 24 | * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | 31 | #pragma once 32 | #include 33 | #include 34 | #include 35 | #include 36 | 37 | #include "opencv2/opencv.hpp" 38 | #include "FOVUndistorter.h" 39 | #include "PhotometricUndistorter.h" 40 | 41 | #include "zip.h" 42 | 43 | 44 | inline int getdir (std::string dir, std::vector &files) 45 | { 46 | DIR *dp; 47 | struct dirent *dirp; 48 | if((dp = opendir(dir.c_str())) == NULL) 49 | { 50 | return -1; 51 | } 52 | 53 | while ((dirp = readdir(dp)) != NULL) { 54 | std::string name = std::string(dirp->d_name); 55 | 56 | if(name != "." && name != "..") 57 | files.push_back(name); 58 | } 59 | closedir(dp); 60 | 61 | 62 | std::sort(files.begin(), files.end()); 63 | 64 | if(dir.at( dir.length() - 1 ) != '/') dir = dir+"/"; 65 | for(unsigned int i=0;i if it contains a filder "images", images will be read from there. 80 | * => otherwise we assume the images will be zipped in "images.zip". 81 | * * MT = true: multi-threaded image loading, to allow for real-time playback (reading, decoding & rectifying images takes a while). 82 | */ 83 | class DatasetReader 84 | { 85 | public: 86 | DatasetReader(std::string folder) 87 | { 88 | this->path = folder; 89 | for(int i=0;i<3;i++) 90 | { 91 | ziparchive=0; 92 | undistorter=0; 93 | databuffer=0; 94 | } 95 | 96 | getdir (path+"images/", files); 97 | if(files.size() > 0) 98 | { 99 | printf("Load Dataset %s: found %d files in folder /images; assuming that all images are there.\n", 100 | path.c_str(), (int)files.size()); 101 | isZipped=false; 102 | } 103 | else 104 | { 105 | printf("Load Dataset %s: found no in folder /images; assuming that images are zipped.\n", 106 | path.c_str()); 107 | isZipped=true; 108 | 109 | int ziperror=0; 110 | ziparchive = zip_open((path+"images.zip").c_str(), ZIP_RDONLY, &ziperror); 111 | if(ziperror!=0) 112 | { 113 | printf("ERROR %d reading archive %s!\n", ziperror, (path+"images.zip").c_str()); 114 | exit(1); 115 | } 116 | 117 | files.clear(); 118 | int numEntries = zip_get_num_entries(ziparchive, 0); 119 | for(int k=0;kgetInputDims()[0],undistorter->getInputDims()[1]); 137 | 138 | 139 | // get image widths. 140 | widthOrg = undistorter->getInputDims()[0]; 141 | heightOrg = undistorter->getInputDims()[1]; 142 | width= undistorter->getOutputDims()[0]; 143 | height= undistorter->getOutputDims()[1]; 144 | 145 | internalTempBuffer=new float[widthOrg*heightOrg]; 146 | 147 | printf("Dataset %s: Got %d files!\n", path.c_str(), (int)getNumImages()); 148 | } 149 | ~DatasetReader() 150 | { 151 | if(undistorter!=0) delete undistorter; 152 | if(photoUndistorter!=0) delete photoUndistorter; 153 | if(ziparchive!=0) zip_close(ziparchive); 154 | if(databuffer!=0) delete[] databuffer; 155 | delete[] internalTempBuffer; 156 | 157 | } 158 | 159 | UndistorterFOV* getUndistorter() 160 | { 161 | return undistorter; 162 | } 163 | 164 | PhotometricUndistorter* getPhotoUndistorter() 165 | { 166 | return photoUndistorter; 167 | } 168 | 169 | int getNumImages() 170 | { 171 | return files.size(); 172 | } 173 | 174 | double getTimestamp(int id) 175 | { 176 | if(id >= (int)timestamps.size()) return 0; 177 | if(id < 0) return 0; 178 | return timestamps[id]; 179 | } 180 | 181 | float getExposure(int id) 182 | { 183 | if(id >= (int)exposures.size()) return 0; 184 | if(id < 0) return 0; 185 | return exposures[id]; 186 | } 187 | 188 | ExposureImage* getImage(int id, bool rectify, bool removeGamma, bool removeVignette, bool nanOverexposed) 189 | { 190 | assert(id >= 0 && id < (int)files.size()); 191 | 192 | cv::Mat imageRaw = getImageRaw_internal(id); 193 | 194 | if(imageRaw.rows != heightOrg || imageRaw.cols != widthOrg) 195 | { 196 | printf("ERROR: expected cv-mat to have dimensions %d x %d; found %d x %d (image %s)!\n", 197 | widthOrg, heightOrg, imageRaw.cols, imageRaw.rows, files[id].c_str()); 198 | return 0; 199 | } 200 | 201 | if(imageRaw.type() != CV_8U) 202 | { 203 | printf("ERROR: expected cv-mat to have type 8U!\n"); 204 | return 0; 205 | } 206 | 207 | ExposureImage* ret=0; 208 | 209 | 210 | if(removeGamma || removeVignette || nanOverexposed) 211 | { 212 | if(!rectify) 213 | { 214 | // photo undist only. 215 | ret = new ExposureImage(widthOrg, heightOrg, timestamps[id], exposures[id], id); 216 | photoUndistorter->unMapImage(imageRaw.data, ret->image, widthOrg*heightOrg, removeGamma, removeVignette, nanOverexposed ); 217 | } 218 | else 219 | { 220 | // photo undist to buffer, then rect 221 | ret = new ExposureImage(width, height, timestamps[id], exposures[id], id); 222 | photoUndistorter->unMapImage(imageRaw.data, internalTempBuffer, widthOrg*heightOrg, removeGamma, removeVignette, nanOverexposed ); 223 | undistorter->undistort(internalTempBuffer, ret->image, widthOrg*heightOrg, width*height); 224 | } 225 | } 226 | else 227 | { 228 | if(rectify) 229 | { 230 | // rect only. 231 | ret = new ExposureImage(width, height, timestamps[id], exposures[id], id); 232 | undistorter->undistort(imageRaw.data, ret->image, widthOrg*heightOrg, width*height); 233 | } 234 | else 235 | { 236 | // do nothing. 237 | ret = new ExposureImage(widthOrg, heightOrg, timestamps[id], exposures[id], id); 238 | for(int i=0;iimage[i] = imageRaw.at(i); 240 | } 241 | } 242 | return ret; 243 | } 244 | 245 | 246 | 247 | cv::Mat getImageRaw_internal(int id) 248 | { 249 | if(!isZipped) 250 | { 251 | // CHANGE FOR ZIP FILE 252 | return cv::imread(files[id],CV_LOAD_IMAGE_GRAYSCALE); 253 | } 254 | else 255 | { 256 | if(databuffer==0) databuffer = new char[widthOrg*heightOrg*6+10000]; 257 | zip_file_t* fle = zip_fopen(ziparchive, files[id].c_str(), 0); 258 | long readbytes = zip_fread(fle, databuffer, (long)widthOrg*heightOrg*6+10000); 259 | 260 | if(readbytes > (long)widthOrg*heightOrg*6) 261 | { 262 | printf("read %ld/%ld bytes for file %s. increase buffer!!\n", readbytes,(long)widthOrg*heightOrg*6+10000, files[id].c_str()); 263 | delete[] databuffer; 264 | databuffer = new char[(long)widthOrg*heightOrg*60+1000000]; 265 | fle = zip_fopen(ziparchive, files[id].c_str(), 0); 266 | readbytes = zip_fread(fle, databuffer, (long)widthOrg*heightOrg*60+100000); 267 | 268 | if(readbytes > (long)widthOrg*heightOrg*60+10000) 269 | { 270 | printf("buffer still to small (read %ld/%ld). abort.\n", readbytes,(long)widthOrg*heightOrg*60+100000); 271 | exit(1); 272 | } 273 | } 274 | return cv::imdecode(cv::Mat(readbytes,1,CV_8U, databuffer), CV_LOAD_IMAGE_GRAYSCALE); 275 | } 276 | } 277 | 278 | 279 | private: 280 | 281 | 282 | inline void loadTimestamps(std::string timesFile) 283 | { 284 | std::ifstream tr; 285 | tr.open(timesFile.c_str()); 286 | timestamps.clear(); 287 | exposures.clear(); 288 | while(!tr.eof() && tr.good()) 289 | { 290 | std::string line; 291 | char buf[1000]; 292 | tr.getline(buf, 1000); 293 | 294 | int id; 295 | double stamp; 296 | float exposure = 0; 297 | 298 | if(3 == sscanf(buf, "%d %lf %f", &id, &stamp, &exposure)) 299 | { 300 | timestamps.push_back(stamp); 301 | exposures.push_back(exposure); 302 | } 303 | 304 | else if(2 == sscanf(buf, "%d %lf", &id, &stamp)) 305 | { 306 | timestamps.push_back(stamp); 307 | exposures.push_back(0); 308 | } 309 | } 310 | tr.close(); 311 | 312 | if((int)exposures.size()!=(int)getNumImages()) 313 | { 314 | printf("DatasetReader: Mismatch between number of images and number of timestamps / exposure times. Set all to zero."); 315 | timestamps.clear(); 316 | exposures.clear(); 317 | for(int i=0;i<(int)getNumImages();i++) 318 | { 319 | timestamps.push_back(0.0); 320 | exposures.push_back(0); 321 | } 322 | } 323 | } 324 | 325 | // data is here. 326 | std::vector files; 327 | std::vector timestamps; 328 | std::vector exposures; 329 | 330 | int width, height; 331 | int widthOrg, heightOrg; 332 | 333 | std::string path; 334 | bool isZipped; 335 | 336 | 337 | 338 | // internal structures. 339 | UndistorterFOV* undistorter; 340 | PhotometricUndistorter* photoUndistorter; 341 | zip_t* ziparchive; 342 | char* databuffer; 343 | 344 | float* internalTempBuffer; 345 | }; 346 | 347 | -------------------------------------------------------------------------------- /src/ExposureImage.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2016, Jakob Engel 2 | * All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation and/or 12 | * other materials provided with the distribution. 13 | * 14 | * 3. Neither the name of the copyright holder nor the names of its contributors 15 | * may be used to endorse or promote products derived from this software without 16 | * specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21 | * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 22 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 24 | * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | 31 | 32 | 33 | class ExposureImage 34 | { 35 | public: 36 | float* image; 37 | double timestamp; 38 | int w,h; 39 | float exposure_time; 40 | int id; 41 | 42 | inline ExposureImage(int w_, int h_, double timestamp_, float exposure_, int id_) 43 | : timestamp(timestamp_), w(w_), h(h_), exposure_time(exposure_), id(id_) 44 | { 45 | image = new float[w*h]; 46 | } 47 | inline ~ExposureImage() 48 | { 49 | delete[] image; 50 | } 51 | }; 52 | 53 | -------------------------------------------------------------------------------- /src/FOVUndistorter.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2016, Jakob Engel 2 | * All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation and/or 12 | * other materials provided with the distribution. 13 | * 14 | * 3. Neither the name of the copyright holder nor the names of its contributors 15 | * may be used to endorse or promote products derived from this software without 16 | * specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21 | * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 22 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 24 | * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | 31 | #include "FOVUndistorter.h" 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | #include 38 | #include 39 | #include 40 | 41 | UndistorterFOV::UndistorterFOV() 42 | { 43 | remapX = nullptr; 44 | remapY = nullptr; 45 | valid=false; 46 | } 47 | 48 | UndistorterFOV::UndistorterFOV(const char* configFileName) 49 | { 50 | remapX = nullptr; 51 | remapY = nullptr; 52 | valid=false; 53 | 54 | // read parameters 55 | std::ifstream infile(configFileName); 56 | if(!infile.good()) 57 | { 58 | printf("Failed to read camera calibration (invalid format?)\nCalibration file: %s\n", configFileName); 59 | return; 60 | } 61 | 62 | 63 | std::string l1,l2,l3,l4; 64 | std::getline(infile,l1); 65 | std::getline(infile,l2); 66 | std::getline(infile,l3); 67 | std::getline(infile,l4); 68 | 69 | 70 | // l1 & l2 71 | if(std::sscanf(l1.c_str(), "%f %f %f %f %f", &inputCalibration[0], &inputCalibration[1], &inputCalibration[2], &inputCalibration[3], &inputCalibration[4]) == 5 && 72 | std::sscanf(l2.c_str(), "%d %d", &in_width, &in_height) == 2) 73 | { 74 | printf("Input resolution: %d %d\n",in_width, in_height); 75 | printf("Input Calibration (fx fy cx cy): %f %f %f %f %f\n", 76 | in_width*inputCalibration[0], in_height*inputCalibration[1], in_width*inputCalibration[2], in_height*inputCalibration[3], inputCalibration[4]); 77 | } 78 | else 79 | { 80 | printf("Failed to read camera calibration (invalid format?)\nCalibration file: %s\n", configFileName); 81 | return; 82 | } 83 | 84 | 85 | // l3 86 | if(l3 == "crop") 87 | { 88 | outputCalibration[0] = -1; 89 | printf("Out: Crop\n"); 90 | } 91 | else if(l3 == "full") 92 | { 93 | outputCalibration[0] = -2; 94 | printf("Out: Full\n"); 95 | } 96 | else if(l3 == "none") 97 | { 98 | printf("NO RECTIFICATION\n"); 99 | return; 100 | } 101 | else if(std::sscanf(l3.c_str(), "%f %f %f %f %f", &outputCalibration[0], &outputCalibration[1], &outputCalibration[2], &outputCalibration[3], &outputCalibration[4]) == 5) 102 | { 103 | printf("Out: %f %f %f %f %f\n", 104 | outputCalibration[0], outputCalibration[1], outputCalibration[2], outputCalibration[3], outputCalibration[4]); 105 | } 106 | else 107 | { 108 | printf("Out: Failed to Read Output pars... not rectifying.\n"); 109 | return; 110 | } 111 | 112 | 113 | 114 | // l4 115 | if(std::sscanf(l4.c_str(), "%d %d", &out_width, &out_height) == 2) 116 | { 117 | printf("Output resolution: %d %d\n",out_width, out_height); 118 | } 119 | else 120 | { 121 | printf("Out: Failed to Read Output resolution... not rectifying.\n"); 122 | return; 123 | } 124 | 125 | 126 | valid=true; 127 | 128 | 129 | // =============================== find optimal new camera matrix =============================== 130 | // prep warp matrices 131 | float dist = inputCalibration[4]; 132 | float d2t = 2.0f * tan(dist / 2.0f); 133 | 134 | // current camera parameters 135 | float fx = inputCalibration[0] * in_width; 136 | float fy = inputCalibration[1] * in_height; 137 | float cx = inputCalibration[2] * in_width - 0.5; 138 | float cy = inputCalibration[3] * in_height - 0.5; 139 | 140 | // output camera parameters 141 | float ofx, ofy, ocx, ocy; 142 | 143 | // find new camera matrix for "crop" and "full" 144 | if (inputCalibration[4] == 0) 145 | { 146 | ofx = inputCalibration[0] * out_width; 147 | ofy = inputCalibration[1] * out_height; 148 | ocx = (inputCalibration[2] * out_width) - 0.5; 149 | ocy = (inputCalibration[3] * out_height) - 0.5; 150 | } 151 | else if(outputCalibration[0] == -1) // "crop" 152 | { 153 | // find left-most and right-most radius 154 | float left_radius = (cx)/fx; 155 | float right_radius = (in_width-1 - cx)/fx; 156 | float top_radius = (cy)/fy; 157 | float bottom_radius = (in_height-1 - cy)/fy; 158 | 159 | float trans_left_radius = tan(left_radius * dist)/d2t; 160 | float trans_right_radius = tan(right_radius * dist)/d2t; 161 | float trans_top_radius = tan(top_radius * dist)/d2t; 162 | float trans_bottom_radius = tan(bottom_radius * dist)/d2t; 163 | 164 | ofy = fy * ((top_radius + bottom_radius) / (trans_top_radius + trans_bottom_radius)) * ((float)out_height / (float)in_height); 165 | ocy = (trans_top_radius/top_radius) * ofy*cy/fy; 166 | 167 | ofx = fx * ((left_radius + right_radius) / (trans_left_radius + trans_right_radius)) * ((float)out_width / (float)in_width); 168 | ocx = (trans_left_radius/left_radius) * ofx*cx/fx; 169 | 170 | printf("new K: %f %f %f %f\n",ofx,ofy,ocx,ocy); 171 | printf("old K: %f %f %f %f\n",fx,fy,cx,cy); 172 | } 173 | else if(outputCalibration[0] == -2) // "full" 174 | { 175 | float left_radius = cx/fx; 176 | float right_radius = (in_width-1 - cx)/fx; 177 | float top_radius = cy/fy; 178 | float bottom_radius = (in_height-1 - cy)/fy; 179 | 180 | // find left-most and right-most radius 181 | float tl_radius = sqrt(left_radius*left_radius + top_radius*top_radius); 182 | float tr_radius = sqrt(right_radius*right_radius + top_radius*top_radius); 183 | float bl_radius = sqrt(left_radius*left_radius + bottom_radius*bottom_radius); 184 | float br_radius = sqrt(right_radius*right_radius + bottom_radius*bottom_radius); 185 | 186 | float trans_tl_radius = tan(tl_radius * dist)/d2t; 187 | float trans_tr_radius = tan(tr_radius * dist)/d2t; 188 | float trans_bl_radius = tan(bl_radius * dist)/d2t; 189 | float trans_br_radius = tan(br_radius * dist)/d2t; 190 | 191 | float hor = std::max(br_radius,tr_radius) + std::max(bl_radius,tl_radius); 192 | float vert = std::max(tr_radius,tl_radius) + std::max(bl_radius,br_radius); 193 | 194 | float trans_hor = std::max(trans_br_radius,trans_tr_radius) + std::max(trans_bl_radius,trans_tl_radius); 195 | float trans_vert = std::max(trans_tr_radius,trans_tl_radius) + std::max(trans_bl_radius,trans_br_radius); 196 | 197 | ofy = fy * ((vert) / (trans_vert)) * ((float)out_height / (float)in_height); 198 | ocy = std::max(trans_tl_radius/tl_radius,trans_tr_radius/tr_radius) * ofy*cy/fy; 199 | 200 | ofx = fx * ((hor) / (trans_hor)) * ((float)out_width / (float)in_width); 201 | ocx = std::max(trans_bl_radius/bl_radius,trans_tl_radius/tl_radius) * ofx*cx/fx; 202 | 203 | printf("new K: %f %f %f %f\n",ofx,ofy,ocx,ocy); 204 | printf("old K: %f %f %f %f\n",fx,fy,cx,cy); 205 | } 206 | else 207 | { 208 | ofx = outputCalibration[0] * out_width; 209 | ofy = outputCalibration[1] * out_height; 210 | ocx = outputCalibration[2] * out_width-0.5; 211 | ocy = outputCalibration[3] * out_height-0.5; 212 | } 213 | 214 | outputCalibration[0] = ofx / out_width; 215 | outputCalibration[1] = ofy / out_height; 216 | outputCalibration[2] = (ocx+0.5) / out_width; 217 | outputCalibration[3] = (ocy+0.5) / out_height; 218 | outputCalibration[4] = 0; 219 | 220 | 221 | 222 | 223 | // =============================== build rectification map =============================== 224 | remapX = new float[out_width * out_height]; 225 | remapY = new float[out_width * out_height]; 226 | for(int y=0;y 0 && remapY[i] > 0 && remapX[i] < in_width-1 && remapY[i] < in_height-1)) 244 | { 245 | //printf("black pixel at %d %d %f %f!\n", i, i, remapX[i], remapY[i]); 246 | hasBlackPoints=true; 247 | remapX[i]=-1; 248 | remapY[i]=-1; 249 | 250 | } 251 | } 252 | 253 | if(hasBlackPoints) 254 | printf("\n\nFOV Undistorter: Warning! Image has black pixels.\n\n\n"); 255 | 256 | // =============================== set Krect =============================== 257 | Krect.setIdentity(); 258 | Krect(0,0) = outputCalibration[0] * out_width; 259 | Krect(1,1) = outputCalibration[1] * out_height; 260 | Krect(0,2) = outputCalibration[2] * out_width-0.5; 261 | Krect(1,2) = outputCalibration[3] * out_height-0.5; 262 | 263 | 264 | Korg.setIdentity(); 265 | Korg(0,0) = inputCalibration[0] * in_width; 266 | Korg(1,1) = inputCalibration[1] * in_height; 267 | Korg(0,2) = inputCalibration[2] * in_width-0.5; 268 | Korg(1,2) = inputCalibration[3] * in_height-0.5; 269 | } 270 | 271 | 272 | 273 | UndistorterFOV::~UndistorterFOV() 274 | { 275 | if(remapX != 0) delete[] remapX; 276 | if(remapY != 0) delete[] remapY; 277 | } 278 | 279 | 280 | void UndistorterFOV::distortCoordinates(float* in_x, float* in_y, int n) 281 | { 282 | if(!valid) 283 | { 284 | printf("ERROR: invalid UndistorterFOV!\n"); 285 | return; 286 | } 287 | 288 | 289 | float dist = inputCalibration[4]; 290 | float d2t = 2.0f * tan(dist / 2.0f); 291 | 292 | // current camera parameters 293 | float fx = inputCalibration[0] * in_width; 294 | float fy = inputCalibration[1] * in_height; 295 | float cx = inputCalibration[2] * in_width - 0.5; 296 | float cy = inputCalibration[3] * in_height - 0.5; 297 | 298 | float ofx = outputCalibration[0]*out_width; 299 | float ofy = outputCalibration[1]*out_height; 300 | float ocx = outputCalibration[2]*out_width-0.5f; 301 | float ocy = outputCalibration[3]*out_height-0.5f; 302 | 303 | for(int i=0;i 323 | void UndistorterFOV::undistort(const T* input, float* output, int nPixIn, int nPixOut) const 324 | { 325 | if(!valid) return; 326 | 327 | if(nPixIn != in_width*in_height) 328 | { 329 | printf("ERROR: undistort called with wrong input image dismesions (expected %d pixel, got %d pixel)\n", 330 | in_width*in_height, nPixIn); 331 | return; 332 | } 333 | if(nPixOut != out_width*out_height) 334 | { 335 | printf("ERROR: undistort called with wrong output image dismesions (expected %d pixel, got %d pixel)\n", 336 | out_width*out_height, nPixOut); 337 | return; 338 | } 339 | 340 | 341 | for(int idx = 0; idx < out_width*out_height;idx++) 342 | { 343 | // get interp. values 344 | float xx = remapX[idx]; 345 | float yy = remapY[idx]; 346 | 347 | if(xx<0) 348 | output[idx] = 0; 349 | else 350 | { 351 | // get integer and rational parts 352 | int xxi = xx; 353 | int yyi = yy; 354 | xx -= xxi; 355 | yy -= yyi; 356 | float xxyy = xx*yy; 357 | 358 | // get array base pointer 359 | const T* src = input + xxi + yyi * in_width; 360 | 361 | // interpolate (bilinear) 362 | output[idx] = xxyy * src[1+in_width] 363 | + (yy-xxyy) * src[in_width] 364 | + (xx-xxyy) * src[1] 365 | + (1-xx-yy+xxyy) * src[0]; 366 | } 367 | } 368 | } 369 | template void UndistorterFOV::undistort(const float* input, float* output, int nPixIn, int nPixOut) const; 370 | template void UndistorterFOV::undistort(const unsigned char* input, float* output, int nPixIn, int nPixOut) const; 371 | -------------------------------------------------------------------------------- /src/FOVUndistorter.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2016, Jakob Engel 2 | * All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation and/or 12 | * other materials provided with the distribution. 13 | * 14 | * 3. Neither the name of the copyright holder nor the names of its contributors 15 | * may be used to endorse or promote products derived from this software without 16 | * specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21 | * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 22 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 24 | * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | 31 | #include 32 | #include "ExposureImage.h" 33 | #include "Eigen/Core" 34 | 35 | 36 | class UndistorterFOV 37 | { 38 | public: 39 | 40 | UndistorterFOV(const char* configFileName); 41 | UndistorterFOV(); 42 | ~UndistorterFOV(); 43 | 44 | 45 | template 46 | void undistort(const T* input, float* output, int nPixIn, int nPixOut) const; 47 | void distortCoordinates(float* in_x, float* in_y, int n); 48 | 49 | inline Eigen::Matrix3f getK_rect() const 50 | { 51 | return Krect; 52 | } 53 | inline Eigen::Matrix3f getK_org() const 54 | { 55 | return Korg; 56 | } 57 | inline float getOmega() const 58 | { 59 | return inputCalibration[4]; 60 | } 61 | const Eigen::VectorXf getOriginalCalibration() const 62 | { 63 | Eigen::VectorXf vec(5); 64 | vec[0] = inputCalibration[0] * in_width; 65 | vec[1] = inputCalibration[1] * in_height; 66 | vec[2] = inputCalibration[2] * in_width - 0.5; 67 | vec[3] = inputCalibration[3] * in_height - 0.5; 68 | vec[4] = inputCalibration[4]; 69 | return vec; 70 | } 71 | const Eigen::Vector2i getInputDims() const 72 | { 73 | return Eigen::Vector2i(in_width, in_height); 74 | } 75 | const Eigen::Vector2i getOutputDims() const 76 | { 77 | return Eigen::Vector2i(out_width, out_height); 78 | } 79 | 80 | bool isValid() const 81 | { 82 | return valid; 83 | } 84 | private: 85 | Eigen::Matrix3f Krect; 86 | Eigen::Matrix3f Korg; 87 | float inputCalibration[5]; 88 | float outputCalibration[5]; 89 | int out_width, out_height; 90 | int in_width, in_height; 91 | 92 | float* remapX; 93 | float* remapY; 94 | 95 | bool valid; 96 | }; 97 | -------------------------------------------------------------------------------- /src/PhotometricUndistorter.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2016, Jakob Engel 2 | * All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation and/or 12 | * other materials provided with the distribution. 13 | * 14 | * 3. Neither the name of the copyright holder nor the names of its contributors 15 | * may be used to endorse or promote products derived from this software without 16 | * specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21 | * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 22 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 24 | * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | 31 | #include 32 | #include 33 | #include 34 | 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include "PhotometricUndistorter.h" 40 | 41 | 42 | PhotometricUndistorter::PhotometricUndistorter( 43 | std::string file, 44 | std::string vignetteImage, 45 | int w_, int h_) 46 | { 47 | 48 | validVignette=false; 49 | validGamma=false; 50 | 51 | vignetteMap=0; 52 | vignetteMapInv=0; 53 | w = w_; 54 | h = h_; 55 | 56 | if(file=="" || vignetteImage=="") return; 57 | 58 | 59 | // read G. 60 | std::ifstream f(file.c_str()); 61 | printf("Reading Photometric Calibration from file %s\n",file.c_str()); 62 | if (!f.good()) 63 | { 64 | printf("PhotometricUndistorter: Could not open file!\n"); 65 | return; 66 | } 67 | 68 | 69 | 70 | std::string line; 71 | std::getline( f, line ); 72 | std::istringstream l1i( line ); 73 | std::vector GInvvec = std::vector( std::istream_iterator(l1i), std::istream_iterator() ); 74 | if(GInvvec.size() != 256) 75 | { 76 | printf("PhotometricUndistorter: invalid format! got %d entries in first line, expected 256!\n",(int)GInvvec.size()); 77 | return; 78 | } 79 | for(int i=0;i<256;i++) GInv[i] = GInvvec[i]; 80 | 81 | for(int i=0;i<255;i++) 82 | { 83 | if(GInv[i+1] <= GInv[i]) 84 | { 85 | printf("PhotometricUndistorter: G invalid! it has to be strictly increasing, but it isnt!\n"); 86 | return; 87 | } 88 | } 89 | float min=GInv[0]; 90 | float max=GInv[255]; 91 | for(int i=0;i<256;i++) GInv[i] = 255.0 * (GInv[i] - min) / (max-min); // make it to 0..255 => 0..255. 92 | 93 | // invert Gamma (maybe someone needs this). 94 | for(int i=1;i<255;i++) 95 | { 96 | // find val, such that Binv[val] = i. 97 | // I dont care about speed for this, so do it the stupid way. 98 | for(int s=1;s<255;s++) 99 | { 100 | if(GInv[s] <= i && GInv[s+1] >= i) 101 | { 102 | G[i] = s+(i - GInv[s]) / (GInv[s+1]-GInv[s]); 103 | break; 104 | } 105 | } 106 | } 107 | G[0] = 0; 108 | G[255] = 255; 109 | f.close(); 110 | validGamma=true; 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | printf("Reading Vignette Image from %s\n",vignetteImage.c_str()); 120 | cv::Mat vignetteMat = cv::imread(vignetteImage.c_str(), CV_LOAD_IMAGE_UNCHANGED); 121 | vignetteMap = new float[w*h]; 122 | vignetteMapInv = new float[w*h]; 123 | if(vignetteMat.rows != h || vignetteMat.cols != w) 124 | { 125 | printf("PhotometricUndistorter: Invalid vignette image size! got %d x %d, expected %d x %d. Set vignette to 1.\n", 126 | vignetteMat.cols, vignetteMat.rows, w, h); 127 | return; 128 | } 129 | 130 | if(vignetteMat.type() == CV_8U) 131 | { 132 | float maxV=0; 133 | for(int i=0;i(i) > maxV) maxV = vignetteMat.at(i); 135 | 136 | for(int i=0;i(i) / maxV; 138 | } 139 | else if(vignetteMat.type() == CV_16U) 140 | { 141 | float maxV=0; 142 | for(int i=0;i(i) > maxV) maxV = vignetteMat.at(i); 144 | 145 | for(int i=0;i(i) / maxV; 147 | } 148 | else 149 | assert(false); 150 | 151 | for(int i=0;i 32 | #include "Eigen/Core" 33 | 34 | 35 | 36 | 37 | class PhotometricUndistorter 38 | { 39 | public: 40 | PhotometricUndistorter(std::string file,std::string vignetteImage,int w_, int h_); 41 | ~PhotometricUndistorter(); 42 | 43 | void unMapImage(unsigned char* image_in, float* image_out, int n, bool undoGamma, bool undoVignette, bool killOverexposed); 44 | float* getGInv() {if(!validGamma) return 0; else return GInv;}; 45 | float* getG() {if(!validGamma) return 0; else return G;}; 46 | private: 47 | float G[256]; 48 | float GInv[256]; 49 | float* vignetteMap; 50 | float* vignetteMapInv; 51 | int w,h; 52 | bool validVignette; 53 | bool validGamma; 54 | }; 55 | -------------------------------------------------------------------------------- /src/main_playbackDataset.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2016, Jakob Engel 2 | * All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation and/or 12 | * other materials provided with the distribution. 13 | * 14 | * 3. Neither the name of the copyright holder nor the names of its contributors 15 | * may be used to endorse or promote products derived from this software without 16 | * specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21 | * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 22 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 24 | * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | 31 | #include "opencv2/opencv.hpp" 32 | 33 | 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | 40 | 41 | #include 42 | #include 43 | 44 | #include "BenchmarkDatasetReader.h" 45 | 46 | int main( int argc, char** argv ) 47 | { 48 | setlocale(LC_ALL, ""); 49 | 50 | std::string dataset = argv[1]; 51 | 52 | 53 | 54 | 55 | printf("Playback dataset %s!\n", dataset.c_str()); 56 | 57 | DatasetReader* reader = new DatasetReader(dataset); 58 | 59 | Eigen::Matrix3f K_rect = reader->getUndistorter()->getK_rect(); 60 | Eigen::Vector2i dim_rect = reader->getUndistorter()->getOutputDims(); 61 | 62 | printf("Rectified Images: %d x %d. K:\n",dim_rect[0], dim_rect[1]); 63 | std::cout << K_rect << "\n\n"; 64 | 65 | Eigen::Matrix3f K_org= reader->getUndistorter()->getK_org(); 66 | Eigen::Vector2i dim_org = reader->getUndistorter()->getInputDims(); 67 | float omega = reader->getUndistorter()->getOmega(); 68 | 69 | printf("Original Images: %d x %d. omega=%f K:\n",dim_org[0], dim_org[1], omega); 70 | std::cout << K_org << "\n\n"; 71 | 72 | 73 | if(argc > 2) 74 | { 75 | printf("Saving undistorted Dataset to here!\n"); 76 | for(int i=0;igetNumImages();i++) 77 | { 78 | ExposureImage* I = reader->getImage(i, true, false, false, false); 79 | char buf[1000]; 80 | snprintf(buf, 1000, "%05d.jpg", i); 81 | cv::imwrite(buf, cv::Mat(I->h, I->w, CV_32F, I->image)); 82 | delete I; 83 | } 84 | exit(0); 85 | } 86 | 87 | 88 | 89 | 90 | 91 | 92 | bool autoPlay = false; 93 | bool rect = false; 94 | bool removeGamma = false; 95 | bool removeVignette = false; 96 | bool killOverexposed = false; 97 | 98 | 99 | for(int i=0;igetNumImages();i++) 100 | { 101 | while(true) 102 | { 103 | ExposureImage* I = reader->getImage(i, rect, removeGamma, removeVignette, killOverexposed); 104 | cv::imshow("Image", cv::Mat(I->h, I->w, CV_32F, I->image) * (1/255.0f)); 105 | printf("Read image %d, time %.5f, exposure %.5fms. Rect (r): %d, remove gamma (g) %d, remove vignette (v): %d, kill overesposed (o)%d\n", 106 | I->id, I->timestamp, I->exposure_time, 107 | (int)rect, (int)removeGamma, (int)removeVignette, (int)killOverexposed); 108 | 109 | 110 | char k; 111 | if(autoPlay) k = cv::waitKey(1); 112 | else k = cv::waitKey(0); 113 | 114 | if(k=='w' || k == 'W') cv::imwrite("img.png", cv::Mat(I->h, I->w, CV_32F, I->image)); 115 | 116 | delete I; 117 | 118 | 119 | if(k==' ') break; 120 | if(k=='s' || k == 'S') {i+=30; break;}; 121 | if(k=='a' || k == 'A') autoPlay=!autoPlay; 122 | if(k=='v' || k == 'V') removeVignette=!removeVignette; 123 | if(k=='g' || k == 'G') removeGamma=!removeGamma; 124 | if(k=='o' || k == 'O') killOverexposed=!killOverexposed; 125 | if(k=='r' || k == 'R') rect=!rect; 126 | if(autoPlay) break; 127 | } 128 | } 129 | 130 | delete reader; 131 | } 132 | 133 | -------------------------------------------------------------------------------- /src/main_responseCalib.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2016, Jakob Engel 2 | * All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation and/or 12 | * other materials provided with the distribution. 13 | * 14 | * 3. Neither the name of the copyright holder nor the names of its contributors 15 | * may be used to endorse or promote products derived from this software without 16 | * specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21 | * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 22 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 24 | * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | 31 | 32 | 33 | #include "opencv2/opencv.hpp" 34 | #include "opencv2/video/tracking.hpp" 35 | 36 | #include 37 | #include 38 | #include 39 | #include 40 | 41 | #include "BenchmarkDatasetReader.h" 42 | 43 | 44 | int leakPadding=2; 45 | int nits = 10; 46 | int skipFrames = 1; 47 | 48 | 49 | 50 | Eigen::Vector2d rmse(double* G, double* E, std::vector &exposureVec, std::vector &dataVec, int wh) 51 | { 52 | long double e=0; // yeah - these will be sums of a LOT of values, so we need super high precision. 53 | long double num=0; 54 | 55 | int n = dataVec.size(); 56 | for(int i=0;i max) max = le; 86 | 87 | if(E[i] < Emin) Emin = E[i]; 88 | if(E[i] > Emax) Emax = E[i]; 89 | } 90 | 91 | cv::Mat EImg = cv::Mat(h,w,CV_8UC3); 92 | cv::Mat EImg16 = cv::Mat(h,w,CV_16U); 93 | 94 | for(int i=0;i(i) = color; 108 | EImg16.at(i) = 255* 255* (E[i]-Emin) / (Emax-Emin); 109 | } 110 | 111 | printf("Irradiance %f - %f\n", Emin, Emax); 112 | cv::imshow("lnE", EImg); 113 | 114 | if(saveTo != "") 115 | { 116 | cv::imwrite(saveTo+".png", EImg); 117 | cv::imwrite(saveTo+"16.png", EImg16); 118 | } 119 | } 120 | void plotG(double* G, std::string saveTo="") 121 | { 122 | cv::Mat GImg = cv::Mat(256,256,CV_32FC1); 123 | GImg.setTo(0); 124 | 125 | double min=1e10, max=-1e10; 126 | 127 | for(int i=0;i<256;i++) 128 | { 129 | if(G[i] < min) min = G[i]; 130 | if(G[i] > max) max = G[i]; 131 | } 132 | 133 | for(int i=0;i<256;i++) 134 | { 135 | double val = 256*(G[i]-min) / (max-min); 136 | for(int k=0;k<256;k++) 137 | { 138 | if(val < k) 139 | GImg.at(k,i) = k-val; 140 | } 141 | } 142 | 143 | printf("Inv. Response %f - %f\n", min, max); 144 | cv::imshow("G", GImg); 145 | if(saveTo != "") cv::imwrite(saveTo, GImg*255); 146 | } 147 | 148 | 149 | void parseArgument(char* arg) 150 | { 151 | int option; 152 | 153 | if(1==sscanf(arg,"leakPadding=%d",&option)) 154 | { 155 | leakPadding = option; 156 | printf("leakPadding set to %d!\n", leakPadding); 157 | return; 158 | } 159 | if(1==sscanf(arg,"iterations=%d",&option)) 160 | { 161 | nits = option; 162 | printf("nits set to %d!\n", nits); 163 | return; 164 | } 165 | if(1==sscanf(arg,"skip=%d",&option)) 166 | { 167 | skipFrames = option; 168 | printf("skipFrames set to %d!\n", skipFrames); 169 | return; 170 | } 171 | 172 | printf("could not parse argument \"%s\"!!\n", arg); 173 | } 174 | 175 | 176 | 177 | int main( int argc, char** argv ) 178 | { 179 | // parse arguments 180 | for(int i=2; i exposureVec; 191 | std::vector dataVec; 192 | for(int i=0;igetNumImages();i+=skipFrames) 193 | { 194 | cv::Mat img = reader->getImageRaw_internal(i); 195 | if(img.rows==0 || img.cols==0) continue; 196 | assert(img.type() == CV_8U); 197 | 198 | if((w!=0 && w != img.cols) || img.cols==0) 199 | { printf("width mismatch!\n"); exit(1); }; 200 | if((h!=0 && h != img.rows) || img.rows==0) 201 | { printf("height mismatch!\n"); exit(1); }; 202 | w = img.cols; 203 | h = img.rows; 204 | 205 | 206 | unsigned char* data = new unsigned char[img.rows*img.cols]; 207 | memcpy(data, img.data, img.rows*img.cols); 208 | dataVec.push_back(data); 209 | exposureVec.push_back((double)(reader->getExposure(i))); 210 | 211 | 212 | unsigned char* data2 = new unsigned char[img.rows*img.cols]; 213 | for(int it=0;it 1) G[i] = G[i-1] + (G[i-1]-G[i-2]); 304 | } 305 | delete[] GSum; 306 | delete[] GNum; 307 | printf("optG RMSE = %f! \t", rmse(G, E, exposureVec, dataVec, w*h )[0]); 308 | 309 | char buf[1000]; snprintf(buf, 1000, "photoCalibResult/G-%d.png", it+1); 310 | plotG(G, buf); 311 | } 312 | 313 | 314 | 315 | 316 | 317 | if(optE) 318 | { 319 | // optimize scene irradiance function. 320 | double* ESum = new double[w*h]; 321 | double* ENum = new double[w*h]; 322 | memset(ESum,0,w*h*sizeof(double)); 323 | memset(ENum,0,w*h*sizeof(double)); 324 | for(int i=0;i 37 | #include 38 | #include 39 | 40 | #include "BenchmarkDatasetReader.h" 41 | #include "Eigen/Core" 42 | #include "Eigen/LU" 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | 49 | 50 | // reads interpolated element from a uchar* array 51 | // SSE2 optimization possible 52 | EIGEN_ALWAYS_INLINE float getInterpolatedElement(const float* const mat, const float x, const float y, const int width) 53 | { 54 | //stats.num_pixelInterpolations++; 55 | 56 | int ix = (int)x; 57 | int iy = (int)y; 58 | float dx = x - ix; 59 | float dy = y - iy; 60 | float dxdy = dx*dy; 61 | const float* bp = mat +ix+iy*width; 62 | 63 | 64 | float res = dxdy * bp[1+width] 65 | + (dy-dxdy) * bp[width] 66 | + (dx-dxdy) * bp[1] 67 | + (1-dx-dy+dxdy) * bp[0]; 68 | 69 | return res; 70 | } 71 | 72 | void displayImage(float* I, int w, int h, std::string name) 73 | { 74 | float vmin=1e10; 75 | float vmax=-1e10; 76 | 77 | for(int i=0;i I[i]) vmin = I[i]; 80 | if(vmax < I[i]) vmax = I[i]; 81 | } 82 | 83 | cv::Mat img = cv::Mat(h,w,CV_8UC3); 84 | 85 | for(int i=0;i(i) = cv::Vec3b(0,0,255); 88 | else img.at(i) = cv::Vec3b(255*(I[i]-vmin) / (vmax-vmin),255*(I[i]-vmin) / (vmax-vmin),255*(I[i]-vmin) / (vmax-vmin)); 89 | } 90 | 91 | printf("plane image values %f - %f!\n", vmin, vmax); 92 | cv::imshow(name, img); 93 | cv::imwrite("vignetteCalibResult/plane.png", img); 94 | } 95 | void displayImageV(float* I, int w, int h, std::string name) 96 | { 97 | cv::Mat img = cv::Mat(h,w,CV_8UC3); 98 | for(int i=0;i(i) = cv::Vec3b(0,0,255); 102 | else 103 | { 104 | float c = 254*I[i]; 105 | img.at(i) = cv::Vec3b(c,c,c); 106 | } 107 | 108 | } 109 | cv::imshow(name, img); 110 | } 111 | 112 | 113 | 114 | 115 | int imageSkip=1; 116 | 117 | 118 | int maxIterations=20; 119 | int outlierTh = 15; 120 | 121 | // grid width for template image. 122 | int gw = 1000; 123 | int gh = 1000; 124 | 125 | // width of grid relative to marker (fac times marker size) 126 | float facw = 5; 127 | float fach = 5; 128 | 129 | // remove pixel with absolute gradient larger than this from the optimization. 130 | int maxAbsGrad = 255; 131 | 132 | void parseArgument(char* arg) 133 | { 134 | int option; 135 | float optionf; 136 | 137 | if(1==sscanf(arg,"iterations=%d",&option)) 138 | { 139 | maxIterations = option; 140 | printf("nits set to %d!\n", maxIterations); 141 | return; 142 | } 143 | 144 | if(1==sscanf(arg,"skip=%d",&option)) 145 | { 146 | imageSkip = option; 147 | printf("skipFrames set to %d!\n", imageSkip); 148 | return; 149 | } 150 | 151 | if(1==sscanf(arg,"patternX=%d",&option)) 152 | { 153 | gw = option; 154 | printf("patternX set to %d!\n", gw); 155 | return; 156 | } 157 | 158 | if(1==sscanf(arg,"patternY=%d",&option)) 159 | { 160 | gh = option; 161 | printf("patternY set to %d!\n", gh); 162 | return; 163 | } 164 | 165 | if(1==sscanf(arg,"facW=%f",&optionf)) 166 | { 167 | facw = optionf; 168 | printf("facw set to %f!\n", facw); 169 | return; 170 | } 171 | 172 | if(1==sscanf(arg,"facH=%f",&optionf)) 173 | { 174 | fach = optionf; 175 | printf("fach set to %f!\n", fach); 176 | return; 177 | } 178 | 179 | printf("could not parse argument \"%s\"!!\n", arg); 180 | } 181 | 182 | 183 | 184 | 185 | 186 | int main( int argc, char** argv ) 187 | { 188 | for(int i=2; igetUndistorter()->getK_rect(); 209 | w_out = reader->getUndistorter()->getOutputDims()[0]; 210 | h_out = reader->getUndistorter()->getOutputDims()[1]; 211 | 212 | aruco::MarkerDetector MDetector; 213 | 214 | std::vector images; 215 | std::vector p2imgX; 216 | std::vector p2imgY; 217 | 218 | int wI = reader->getUndistorter()->getInputDims()[0]; 219 | int hI = reader->getUndistorter()->getInputDims()[1]; 220 | 221 | 222 | float meanExposure = 0; 223 | for(int i=0;igetNumImages();i+=imageSkip) 224 | meanExposure+=reader->getExposure(i); 225 | meanExposure = meanExposure/reader->getNumImages(); 226 | 227 | if(meanExposure==0) meanExposure = 1; 228 | 229 | 230 | for(int i=0;igetNumImages();i+=imageSkip) 231 | { 232 | std::vector Markers; 233 | ExposureImage* img = reader->getImage(i,true, false, false, false); 234 | 235 | cv::Mat InImage; 236 | cv::Mat(h_out, w_out, CV_32F, img->image).convertTo(InImage, CV_8U, 1, 0); 237 | delete img; 238 | 239 | MDetector.detect(InImage,Markers); 240 | if(Markers.size() != 1) continue; 241 | 242 | std::vector ptsP; 243 | std::vector ptsI; 244 | ptsI.push_back(cv::Point2f(Markers[0][0].x, Markers[0][0].y)); 245 | ptsI.push_back(cv::Point2f(Markers[0][1].x, Markers[0][1].y)); 246 | ptsI.push_back(cv::Point2f(Markers[0][2].x, Markers[0][2].y)); 247 | ptsI.push_back(cv::Point2f(Markers[0][3].x, Markers[0][3].y)); 248 | ptsP.push_back(cv::Point2f(-0.5,0.5)); 249 | ptsP.push_back(cv::Point2f(0.5,0.5)); 250 | ptsP.push_back(cv::Point2f(0.5,-0.5)); 251 | ptsP.push_back(cv::Point2f(-0.5,-0.5)); 252 | 253 | cv::Mat Hcv = cv::findHomography(ptsP, ptsI); 254 | Eigen::Matrix3f H; 255 | H(0,0) = Hcv.at(0,0); 256 | H(0,1) = Hcv.at(0,1); 257 | H(0,2) = Hcv.at(0,2); 258 | H(1,0) = Hcv.at(1,0); 259 | H(1,1) = Hcv.at(1,1); 260 | H(1,2) = Hcv.at(1,2); 261 | H(2,0) = Hcv.at(2,0); 262 | H(2,1) = Hcv.at(2,1); 263 | H(2,2) = Hcv.at(2,2); 264 | 265 | ExposureImage* imgRaw = reader->getImage(i,false, true, false, false); 266 | 267 | 268 | float* plane2imgX = new float[gw*gh]; 269 | float* plane2imgY = new float[gw*gh]; 270 | 271 | Eigen::Matrix3f HK = H*K_p2idx_inverse; 272 | 273 | 274 | int idx=0; 275 | for(int y=0;ygetUndistorter()->distortCoordinates(plane2imgX, plane2imgY, gw*gh); 285 | 286 | if(imgRaw->exposure_time == 0) imgRaw->exposure_time = 1; 287 | 288 | float* image = new float[wI*hI]; 289 | for(int y=0; yimage[x+y*wI] / imgRaw->exposure_time; 292 | 293 | for(int y=2; y maxAbsGrad) { image[x+y*wI] = NAN; image[x+deltax+(y+deltay)*wI]=NAN; } 300 | } 301 | } 302 | 303 | images.push_back(image); 304 | 305 | 306 | // debug-plot. 307 | cv::Mat dbgImg(imgRaw->h, imgRaw->w, CV_8UC3); 308 | for(int i=0;iw*imgRaw->h;i++) 309 | dbgImg.at(i) = cv::Vec3b(imgRaw->image[i], imgRaw->image[i], imgRaw->image[i]); 310 | 311 | for(int x=0; x<=gw;x+=200) 312 | for(int y=0; y<=gh;y+=10) 313 | { 314 | int idxS = (x=0 && v_dS >=0 && u_dS=0 && v_dT >=0 && u_dT=0 && v_dS >=0 && u_dS=0 && v_dT >=0 && u_dT1 && v_d >1 && u_d oth2) 425 | { 426 | E += oth2; 427 | R ++; 428 | continue; 429 | } 430 | 431 | 432 | planeColorFF[pi] += fac*fac; 433 | planeColorFC[pi] += color*fac; 434 | 435 | if(isnanf(planeColor[pi])) continue; 436 | E += residual; 437 | R ++; 438 | } 439 | } 440 | 441 | for(int pi=0;pi %f\n", R, sqrtf(E/R)); 451 | 452 | 453 | 454 | 455 | 456 | // ================================ optimize vignette ======================================= 457 | memset(vignetteFactorTT,0,hI*wI*sizeof(float)); 458 | memset(vignetteFactorCT,0,hI*wI*sizeof(float)); 459 | E=0;R=0; 460 | 461 | for(int img=0;img oth2) 482 | { 483 | E += oth2; 484 | R ++; 485 | continue; 486 | } 487 | 488 | 489 | int ix = (int)x; 490 | int iy = (int)y; 491 | float dx = x - ix; 492 | float dy = y - iy; 493 | float dxdy = dx*dy; 494 | 495 | vignetteFactorTT[ix+iy*wI + 0] += (1-dx-dy+dxdy) * colorPlane*colorPlane; 496 | vignetteFactorTT[ix+iy*wI + 1] += (dx-dxdy) * colorPlane*colorPlane; 497 | vignetteFactorTT[ix+iy*wI + wI] += (dy-dxdy) * colorPlane*colorPlane; 498 | vignetteFactorTT[ix+iy*wI + 1+wI] += dxdy * colorPlane*colorPlane; 499 | 500 | vignetteFactorCT[ix+iy*wI + 0] += (1-dx-dy+dxdy) * colorImage*colorPlane; 501 | vignetteFactorCT[ix+iy*wI + 1] += (dx-dxdy) * colorImage*colorPlane; 502 | vignetteFactorCT[ix+iy*wI + wI] += (dy-dxdy) * colorImage*colorPlane; 503 | vignetteFactorCT[ix+iy*wI + 1+wI] += dxdy * colorImage*colorPlane; 504 | 505 | if(isnanf(fac)) continue; 506 | E += residual; 507 | R ++; 508 | } 509 | } 510 | 511 | float maxFac=0; 512 | for(int pi=0;pimaxFac) maxFac=vignetteFactor[pi]; 520 | } 521 | } 522 | 523 | printf("%f residual terms => %f\n", R, sqrtf(E/R)); 524 | 525 | // normalize to vignette max. factor 1. 526 | for(int pi=0;pi0 && !isnanf(vignetteFactorCT[idx+1-wI])) {sum += vignetteFactorCT[idx+1-wI]; num++;} 554 | 555 | if(y0 && !isnanf(vignetteFactorCT[idx-wI])) {sum += vignetteFactorCT[idx-wI]; num++;} 558 | 559 | if(y0 && !isnanf(vignetteFactorCT[idx-1+wI])) {sum += vignetteFactorCT[idx-1+wI]; num++;} 560 | if(x>0 && !isnanf(vignetteFactorCT[idx-1])) {sum += vignetteFactorCT[idx-1]; num++;} 561 | if(y>0 && x>0 && !isnanf(vignetteFactorCT[idx-1-wI])) {sum += vignetteFactorCT[idx-1-wI]; num++;} 562 | 563 | if(num>0) vignetteFactorTT[idx] = sum/num; 564 | } 565 | } 566 | } 567 | 568 | { 569 | displayImageV(vignetteFactorTT, wI, hI, "VignetteSmoothed"); 570 | cv::Mat wrap = cv::Mat(hI, wI, CV_32F, vignetteFactorTT)*254.9*254.9; 571 | cv::Mat wrap16; 572 | wrap.convertTo(wrap16, CV_16U,1,0); 573 | cv::imwrite("vignetteCalibResult/vignetteSmoothed.png", wrap16); 574 | cv::waitKey(50); 575 | } 576 | { 577 | displayImageV(vignetteFactor, wI, hI, "VignetteOrg"); 578 | cv::Mat wrap = cv::Mat(hI, wI, CV_32F, vignetteFactor)*254.9*254.9; 579 | cv::Mat wrap16; 580 | wrap.convertTo(wrap16, CV_16U,1,0); 581 | cv::imwrite("vignetteCalibResult/vignette.png", wrap16); 582 | cv::waitKey(50); 583 | } 584 | } 585 | } 586 | 587 | 588 | 589 | logFile.flush(); 590 | logFile.close(); 591 | 592 | delete[] planeColor; 593 | delete[] planeColorFF; 594 | delete[] planeColorFC; 595 | delete[] vignetteFactor; 596 | delete[] vignetteFactorTT; 597 | delete[] vignetteFactorCT; 598 | 599 | 600 | for(int i=0;i