def test_get_content(self): reader = csv_reader.CSVReader('testdata/test.csv.gz', zipped=True) rows = [] with closing(reader.get_content()) as content: for r in content: rows.append(r) self.assertEqual(2, len(rows)) self.assertEqual(['v1.1', 'v1.2', 'v1.3'], rows[0]) self.assertEqual(['v2.1', 'v2.2', 'v2.3'], rows[1])
def __init__(self, data_file_name, data_short_name, lookup_file_name, lookup_short_name, key_name, output_file_name, zipped=False): self.data_reader_ = csv_reader.CSVReader(data_file_name, zipped) self.lookup_reader_ = csv_reader.CSVReader(lookup_file_name, zipped) self.data_short_name_ = data_short_name self.lookup_short_name_ = lookup_short_name self.data_header_ = self.data_reader_.get_header() self.lookup_header_ = self.lookup_reader_.get_header() assert key_name in self.data_header_ assert key_name in self.lookup_header_ self.key_name_ = key_name self.output_file_name_ = output_file_name self.zipped_ = zipped
def test_get_join(self): output_fn = '/tmp/output.csv.gz' lookup = csv_lookup.CSVLookup( data_file_name='testdata/test.csv.gz', data_short_name='', lookup_file_name='testdata/lookup.csv.gz', lookup_short_name='lookup', key_name='COL1', output_file_name=output_fn, zipped=True) lookup.join() reader = csv_reader.CSVReader(output_fn, zipped=True) header = reader.get_header() self.assertEqual(4, len(header)) self.assertEqual(['COL1', 'COL2', 'COL3', 'lookup.COL2'], header) rows = [] with closing(reader.get_content()) as content: for r in content: rows.append(r) self.assertEqual(2, len(rows)) self.assertEqual(['v1.1', 'v1.2', 'v1.3', 'l1.1'], rows[0]) self.assertEqual(['v2.1', 'v2.2', 'v2.3', 'l2.1'], rows[1])
# notice, this list of conditions and the following disclaimer. # * 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. # * Neither the name of the Universal Robots A/S nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # 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 UNIVERSAL ROBOTS A/S 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. import matplotlib.pyplot as plt import sys import csv_reader with open('robot_data.csv') as csvfile: r = csv_reader.CSVReader(csvfile) # plot plt.plot(r.timestamp, r.target_q_1) plt.show()
def plotCSVTcp(filenameCSV): filename = os.path.splitext(filenameCSV)[0] with open(('csv/' + filenameCSV)) as csvfile: r = csv_reader.CSVReader(csvfile) fig1 = plt.figure().gca() try: fig1.plot(r.timestamp, r.target_q_0, color='r', label='q0') fig1.plot(r.timestamp, r.target_q_1, color='g', label='q1') fig1.plot(r.timestamp, r.target_q_2, color='b', label='q2') fig1.plot(r.timestamp, r.target_q_3, color='c', label='q3') fig1.plot(r.timestamp, r.target_q_4, color='magenta', label='q4') fig1.plot(r.timestamp, r.target_q_5, color='orange', label='q5') except: print("Singular target_q_0-5") #return 1 fig1.xaxis.set_major_locator(ticker.MultipleLocator(0.50)) fig1.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) plt.grid(True) plt.title(filenameCSV + " - Gelenkwinkel") plt.ylabel('Gelenkwinkel in Rad') plt.xlabel('Zeit in s') plt.legend() plt.savefig('png/' + filename + '_q.png', dpi=300) fig12 = plt.figure().gca() try: fig12.plot(r.timestamp, r.target_qd_0, color='r', label='qd0') fig12.plot(r.timestamp, r.target_qd_1, color='g', label='qd1') fig12.plot(r.timestamp, r.target_qd_2, color='b', label='qd2') fig12.plot(r.timestamp, r.target_qd_3, color='c', label='qd3') fig12.plot(r.timestamp, r.target_qd_4, color='magenta', label='qd4') fig12.plot(r.timestamp, r.target_qd_5, color='orange', label='qd5') except: print("Singular target_qd_0-5") #return 12 fig12.xaxis.set_major_locator(ticker.MultipleLocator(0.50)) fig12.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) plt.grid(True) plt.title(filenameCSV + " - Winkelgeschwindigkeit") plt.ylabel('Winkelgeschwindigkeit in Rad/s') plt.xlabel('Zeit in s') plt.legend() plt.savefig('png/' + filename + '_qd.png', dpi=300) fig2 = plt.figure().gca() try: fig2.plot(r.timestamp, r.target_TCP_pose_0, color='r', label='X') fig2.plot(r.timestamp, r.target_TCP_pose_1, color='g', label='Y') fig2.plot(r.timestamp, r.target_TCP_pose_2, color='b', label='Z') except: print("Singular target_TCP_pose_0-2") # return 2 fig2.xaxis.set_major_locator(ticker.MultipleLocator(0.50)) fig2.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) plt.grid(True) plt.title(filenameCSV + " - Pose XYZ") plt.ylabel('XYZ in m') plt.xlabel('Zeit in s') plt.legend() plt.savefig('png/' + filename + '_Pose_XYZ.png', dpi=300) fig3 = plt.figure().gca() try: fig3.plot(r.timestamp, r.target_TCP_pose_3, color='c', label='rx') fig3.plot(r.timestamp, r.target_TCP_pose_4, color='magenta', label='ry') fig3.plot(r.timestamp, r.target_TCP_pose_5, color='orange', label='rz') except: print("Singular target_TCP_pose_3-5") #return 3 fig3.xaxis.set_major_locator(ticker.MultipleLocator(0.50)) fig3.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) plt.grid(True) plt.title(filenameCSV + " - Pose rxryrz") plt.ylabel('rxryrz in Rad') plt.xlabel('Zeit in s') plt.legend() plt.savefig('png/' + filename + '_Pose_rxryrz.png', dpi=300) fig4 = plt.figure().gca() try: fig4.plot(r.timestamp, r.target_TCP_speed_0, color='r', label='dX') fig4.plot(r.timestamp, r.target_TCP_speed_1, color='g', label='dY') fig4.plot(r.timestamp, r.target_TCP_speed_2, color='b', label='dZ') except: print("Singular target_TCP_speed_0-2") #return 4 fig4.xaxis.set_major_locator(ticker.MultipleLocator(0.50)) fig4.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) plt.grid(True) plt.title(filenameCSV + " - Pose Geschwindigkeit XYZ") plt.ylabel('dXYZ in m/s') plt.xlabel('Zeit in s') plt.legend() plt.savefig('png/' + filename + '_Pose_Geschwindigkeit_XYZ.png', dpi=300) fig5 = plt.figure().gca() try: fig5.plot(r.timestamp, r.target_TCP_speed_3, color='c', label='drx') fig5.plot(r.timestamp, r.target_TCP_speed_4, color='magenta', label='dry') fig5.plot(r.timestamp, r.target_TCP_speed_5, color='orange', label='drz') except: print("Singular target_TCP_speed_3-5") #return 5 fig5.xaxis.set_major_locator(ticker.MultipleLocator(0.50)) fig5.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) plt.grid(True) plt.title(filenameCSV + " - Pose Geschwindigkeit rxryrz") plt.ylabel('drxryrz in Rad/s') plt.xlabel('Zeit in s') plt.legend() plt.savefig('png/' + filename + '_Pose_Geschwindigkeit_rxryrz.png', dpi=300) #target_TCP_acc_X fig6 = plt.figure().gca() try: fig6.plot(r.timestamp, r.target_TCP_acc_0, color='r', label='ddX') fig6.plot(r.timestamp, r.target_TCP_acc_1, color='g', label='ddY') fig6.plot(r.timestamp, r.target_TCP_acc_2, color='b', label='ddZ') except: print("Singular target_TCP_acc_X") #return 6 fig6.xaxis.set_major_locator(ticker.MultipleLocator(0.50)) fig6.xaxis.set_minor_locator(ticker.MultipleLocator(0.25)) plt.grid(True) plt.title(filenameCSV + " - Pose Beschleunigung XYZ") plt.ylabel('ddXYZ in m/s**2') plt.xlabel('Zeit in s') plt.legend() plt.savefig('png/' + filename + '_Pose_Beschleunigung_XYZ.png', dpi=300) return 0
def test_get_header(self): reader = csv_reader.CSVReader('testdata/test.csv.gz', zipped=True) header = reader.get_header() self.assertEqual(3, len(header)) self.assertEqual(['COL1', 'COL2', 'COL3'], header)