From 51f2ded063e91006bad0d2d96a99d380a725a1d7 Mon Sep 17 00:00:00 2001 From: Darius Arnold Date: Tue, 10 Jul 2018 17:07:46 +0200 Subject: [PATCH 1/2] [add] basic unittests for Metadata class --- .../metadata1/DATALESS.BW.WETR..HHE | 1 + .../metadata1/DATALESS.BW.WETR..HHN | 1 + .../metadata1/DATALESS.BW.WETR..HHZ | 1 + .../metadata2/DATALESS.GR.GRA1..HHE | 1 + .../metadata2/DATALESS.GR.GRA1..HHN | 1 + .../metadata2/DATALESS.GR.GRA1..HHZ | 1 + .../metadata2/DATALESS.GR.GRA2..HHE | 1 + .../metadata2/DATALESS.GR.GRA2..HHN | 1 + .../metadata2/DATALESS.GR.GRA2..HHZ | 1 + tests/test_Metadata/test_Metadata.py | 104 ++++++++++++++++++ 10 files changed, 113 insertions(+) create mode 100644 tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHE create mode 100644 tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHN create mode 100644 tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHZ create mode 100644 tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHE create mode 100644 tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHN create mode 100644 tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHZ create mode 100644 tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHE create mode 100644 tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHN create mode 100644 tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHZ create mode 100644 tests/test_Metadata/test_Metadata.py diff --git a/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHE b/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHE new file mode 100644 index 00000000..426318fc --- /dev/null +++ b/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHE @@ -0,0 +1 @@ +000001V 010 65 2.3122012,213,12:05:00.0000~~2018,144,14:13:39.9981~GFZ~~011 21 1WETR 3 000002A 030 237Steim2 Integer Compression Format~ 1 5014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~033 21 1BayernNetz~033 16 2LE-3D~034 44 1M/S~Velocity in Meters per Second~034 18 2V~Volts~034 32 3COUNTS~Digital Counts~043 264 1RSSENSOR201509030717001~A 1 2 1.00000E+00 1.00000E+00 2 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 2-2.22100E-01 2.22100E-01 0.00000E-00 0.00000E-00-2.22100E-01-2.22100E-01 0.00000E-00 0.00000E-00044 51 3RLDATALOGGER201509030717~D 2 3 0 0047 78 4DLDATALOGGER201509030717~1.0000E+02 1 0 0.0000E+00 0.0000E+00048 57 2GSWETR2012213HEYYYY~ 1.00000E+03 1.00000E-01 0048 58 5GLWETR2012213HHEXXXX~ 1.67772E+06 0.00000E+00 0 000003S 050 109WETR 49.145020 12.875710 607.0 Wettzell, Bavaria, BW-Net~ 13210102012,213,12:05:00.0000~~NBW052 127 HHE 0 2~ 1 0 49.145020 12.875710 607.0 0.0 90.0 0.0 1121.0000E+021.0000E+00 TG~2012,213,12:05:00.0000~~N060 37 2 1 2 1 2 2 3 3 4 5058 35 0 1.67770E+09 1.00000E-01 0 \ No newline at end of file diff --git a/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHN b/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHN new file mode 100644 index 00000000..cb0d5be9 --- /dev/null +++ b/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHN @@ -0,0 +1 @@ +000001V 010 65 2.3122012,213,12:05:00.0000~~2018,144,14:13:40.4553~GFZ~~011 21 1WETR 3 000002A 030 237Steim2 Integer Compression Format~ 1 5014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~033 21 1BayernNetz~033 16 2LE-3D~034 44 1M/S~Velocity in Meters per Second~034 18 2V~Volts~034 32 3COUNTS~Digital Counts~043 264 1RSSENSOR201509030717001~A 1 2 1.00000E+00 1.00000E+00 2 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 2-2.22100E-01 2.22100E-01 0.00000E-00 0.00000E-00-2.22100E-01-2.22100E-01 0.00000E-00 0.00000E-00044 51 3RLDATALOGGER201509030717~D 2 3 0 0047 78 4DLDATALOGGER201509030717~1.0000E+02 1 0 0.0000E+00 0.0000E+00048 57 2GSWETR2012213HNYYYY~ 1.00000E+03 1.00000E-01 0048 58 5GLWETR2012213HHNXXXX~ 1.67772E+06 0.00000E+00 0 000003S 050 109WETR 49.145020 12.875710 607.0 Wettzell, Bavaria, BW-Net~ 13210102012,213,12:05:00.0000~~NBW052 127 HHN 0 2~ 1 0 49.145020 12.875710 607.0 0.0 0.0 0.0 1121.0000E+021.0000E+00 TG~2012,213,12:05:00.0000~~N060 37 2 1 2 1 2 2 3 3 4 5058 35 0 1.67770E+09 1.00000E-01 0 \ No newline at end of file diff --git a/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHZ b/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHZ new file mode 100644 index 00000000..59200ce2 --- /dev/null +++ b/tests/test_Metadata/metadata1/DATALESS.BW.WETR..HHZ @@ -0,0 +1 @@ +000001V 010 65 2.3122012,213,12:05:00.0000~~2018,144,14:13:39.5005~GFZ~~011 21 1WETR 3 000002A 030 237Steim2 Integer Compression Format~ 1 5014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~033 21 1BayernNetz~033 16 2LE-3D~034 44 1M/S~Velocity in Meters per Second~034 18 2V~Volts~034 32 3COUNTS~Digital Counts~043 264 1RSSENSOR201509030717001~A 1 2 1.00000E+00 1.00000E+00 2 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 2-2.22100E-01 2.22100E-01 0.00000E-00 0.00000E-00-2.22100E-01-2.22100E-01 0.00000E-00 0.00000E-00044 51 3RLDATALOGGER201509030717~D 2 3 0 0047 78 4DLDATALOGGER201509030717~1.0000E+02 1 0 0.0000E+00 0.0000E+00048 57 2GSWETR2012213HZYYYY~ 1.00000E+03 1.00000E-01 0048 58 5GLWETR2012213HHZXXXX~ 1.67772E+06 0.00000E+00 0 000003S 050 109WETR 49.145020 12.875710 607.0 Wettzell, Bavaria, BW-Net~ 13210102012,213,12:05:00.0000~~NBW052 127 HHZ 0 2~ 1 0 49.145020 12.875710 607.0 0.0 0.0-90.0 1121.0000E+021.0000E+00 TG~2012,213,12:05:00.0000~~N060 37 2 1 2 1 2 2 3 3 4 5058 35 0 1.67770E+09 1.00000E-01 0 \ No newline at end of file diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHE b/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHE new file mode 100644 index 00000000..b562b239 --- /dev/null +++ b/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHE @@ -0,0 +1 @@ +000001V 010 65 2.3122007,262,00:00:00.0000~~2018,144,14:14:34.7940~GFZ~~011 21 1GRA1 3 000002A 030 237Steim2 Integer Compression Format~ 1 5014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~033 56 1German Regional Seismic Network, BGR Hannover~033 15 2STS2~034 44 1M/S~Velocity in Meters per Second~034 18 2V~Volts~034 32 3COUNTS~Digital Counts~043 264 1RSSENSOR201207231411139~A 1 2 1.00000E+00 1.00000E+00 2 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 2-3.67429E-02 3.67540E-02 0.00000E-00 0.00000E-00-3.67429E-02-3.67540E-02 0.00000E-00 0.00000E-00044 51 3RLDATALOGGER201207231411~D 2 3 0 0047 78 4DLDATALOGGER201207231411~1.0000E+02 1 0 0.0000E+00 0.0000E+00048 57 2GSGRGRA1HHE2007262S~ 9.44020E+08 1.00000E+00 0048 54 5GLSZGRFDUMMYXXXX~ 1.00000E+00 0.00000E+00 0 000003S 050 117GRA1 49.691888 11.221720 499.5 Graefenberg Array Station Haidhof~ 13210101976,048,00:00:00.0000~~NGR052 125 HHE 0 2~ 1 0 49.691888 11.221720 499.5 0.0 90.0 0.0 1121.0000E+021.0000E-02 ~2007,262,00:00:00.0000~~N060 37 2 1 2 1 2 2 3 3 4 5058 35 0 9.44020E+08 1.00000E+00 0 \ No newline at end of file diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHN b/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHN new file mode 100644 index 00000000..8a1259a4 --- /dev/null +++ b/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHN @@ -0,0 +1 @@ +000001V 010 65 2.3122007,262,00:00:00.0000~~2018,144,14:14:35.2579~GFZ~~011 21 1GRA1 3 000002A 030 237Steim2 Integer Compression Format~ 1 5014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~033 56 1German Regional Seismic Network, BGR Hannover~033 15 2STS2~034 44 1M/S~Velocity in Meters per Second~034 18 2V~Volts~034 32 3COUNTS~Digital Counts~043 264 1RSSENSOR201207231411139~A 1 2 1.00000E+00 1.00000E+00 2 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 2-3.67429E-02 3.67540E-02 0.00000E-00 0.00000E-00-3.67429E-02-3.67540E-02 0.00000E-00 0.00000E-00044 51 3RLDATALOGGER201207231411~D 2 3 0 0047 78 4DLDATALOGGER201207231411~1.0000E+02 1 0 0.0000E+00 0.0000E+00048 57 2GSGRGRA1HHN2007262S~ 9.44020E+08 1.00000E+00 0048 54 5GLSZGRFDUMMYXXXX~ 1.00000E+00 0.00000E+00 0 000003S 050 117GRA1 49.691888 11.221720 499.5 Graefenberg Array Station Haidhof~ 13210101976,048,00:00:00.0000~~NGR052 125 HHN 0 2~ 1 0 49.691888 11.221720 499.5 0.0 0.0 0.0 1121.0000E+021.0000E-02 ~2007,262,00:00:00.0000~~N060 37 2 1 2 1 2 2 3 3 4 5058 35 0 9.44020E+08 1.00000E+00 0 \ No newline at end of file diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHZ b/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHZ new file mode 100644 index 00000000..9ddaa477 --- /dev/null +++ b/tests/test_Metadata/metadata2/DATALESS.GR.GRA1..HHZ @@ -0,0 +1 @@ +000001V 010 65 2.3122007,262,00:00:00.0000~~2018,144,14:14:35.6913~GFZ~~011 21 1GRA1 3 000002A 030 237Steim2 Integer Compression Format~ 1 5014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~033 56 1German Regional Seismic Network, BGR Hannover~033 15 2STS2~034 44 1M/S~Velocity in Meters per Second~034 18 2V~Volts~034 32 3COUNTS~Digital Counts~043 264 1RSSENSOR201207231411139~A 1 2 1.00000E+00 1.00000E+00 2 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 2-3.67429E-02 3.67540E-02 0.00000E-00 0.00000E-00-3.67429E-02-3.67540E-02 0.00000E-00 0.00000E-00044 51 3RLDATALOGGER201207231411~D 2 3 0 0047 78 4DLDATALOGGER201207231411~1.0000E+02 1 0 0.0000E+00 0.0000E+00048 57 2GSGRGRA1HHZ2007262S~ 9.44020E+08 1.00000E+00 0048 54 5GLSZGRFDUMMYXXXX~ 1.00000E+00 0.00000E+00 0 000003S 050 117GRA1 49.691888 11.221720 499.5 Graefenberg Array Station Haidhof~ 13210101976,048,00:00:00.0000~~NGR052 125 HHZ 0 2~ 1 0 49.691888 11.221720 499.5 0.0 0.0-90.0 1121.0000E+021.0000E-02 ~2007,262,00:00:00.0000~~N060 37 2 1 2 1 2 2 3 3 4 5058 35 0 9.44020E+08 1.00000E+00 0 \ No newline at end of file diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHE b/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHE new file mode 100644 index 00000000..9cddf024 --- /dev/null +++ b/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHE @@ -0,0 +1 @@ +000001V 010 65 2.3122007,242,00:00:00.0000~~2018,144,14:14:36.1800~GFZ~~011 21 1GRA2 3 000002A 030 237Steim2 Integer Compression Format~ 1 5014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~033 56 1German Regional Seismic Network, BGR Hannover~033 15 2STS2~034 44 1M/S~Velocity in Meters per Second~034 18 2V~Volts~034 32 3COUNTS~Digital Counts~043 264 1RSSENSOR201207231411139~A 1 2 1.00000E+00 1.00000E+00 2 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 2-3.67429E-02 3.67540E-02 0.00000E-00 0.00000E-00-3.67429E-02-3.67540E-02 0.00000E-00 0.00000E-00044 51 3RLDATALOGGER201207231411~D 2 3 0 0047 78 4DLDATALOGGER201207231411~1.0000E+02 1 0 0.0000E+00 0.0000E+00048 57 2GSGRGRA2HHE2007242S~ 9.44020E+08 1.00000E+00 0048 54 5GLSZGRFDUMMYXXXX~ 1.00000E+00 0.00000E+00 0 000003S 050 120GRA2 49.655208 11.359444 512.0 Graefenberg Array Station Wildenfels~ 13210101976,048,00:00:00.0000~~NGR052 125 HHE 0 2~ 1 0 49.655208 11.359444 512.0 0.0 90.0 0.0 1121.0000E+021.0000E-02 ~2007,242,00:00:00.0000~~N060 37 2 1 2 1 2 2 3 3 4 5058 35 0 9.44020E+08 1.00000E+00 0 \ No newline at end of file diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHN b/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHN new file mode 100644 index 00000000..64b7d929 --- /dev/null +++ b/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHN @@ -0,0 +1 @@ +000001V 010 65 2.3122007,242,00:00:00.0000~~2018,144,14:14:38.5280~GFZ~~011 21 1GRA2 3 000002A 030 237Steim2 Integer Compression Format~ 1 5014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~033 56 1German Regional Seismic Network, BGR Hannover~033 15 2STS2~034 44 1M/S~Velocity in Meters per Second~034 18 2V~Volts~034 32 3COUNTS~Digital Counts~043 264 1RSSENSOR201207231411139~A 1 2 1.00000E+00 1.00000E+00 2 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 2-3.67429E-02 3.67540E-02 0.00000E-00 0.00000E-00-3.67429E-02-3.67540E-02 0.00000E-00 0.00000E-00044 51 3RLDATALOGGER201207231411~D 2 3 0 0047 78 4DLDATALOGGER201207231411~1.0000E+02 1 0 0.0000E+00 0.0000E+00048 57 2GSGRGRA2HHN2007242S~ 9.44020E+08 1.00000E+00 0048 54 5GLSZGRFDUMMYXXXX~ 1.00000E+00 0.00000E+00 0 000003S 050 120GRA2 49.655208 11.359444 512.0 Graefenberg Array Station Wildenfels~ 13210101976,048,00:00:00.0000~~NGR052 125 HHN 0 2~ 1 0 49.655208 11.359444 512.0 0.0 0.0 0.0 1121.0000E+021.0000E-02 ~2007,242,00:00:00.0000~~N060 37 2 1 2 1 2 2 3 3 4 5058 35 0 9.44020E+08 1.00000E+00 0 \ No newline at end of file diff --git a/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHZ b/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHZ new file mode 100644 index 00000000..669afa69 --- /dev/null +++ b/tests/test_Metadata/metadata2/DATALESS.GR.GRA2..HHZ @@ -0,0 +1 @@ +000001V 010 65 2.3122007,242,00:00:00.0000~~2018,144,14:14:39.0145~GFZ~~011 21 1GRA2 3 000002A 030 237Steim2 Integer Compression Format~ 1 5014F1 P4 W4 D C2 R1 P8 W4 D C2~P0 W4 N15 S2,0,1~T0 X W4~T1 Y4 W1 D C2~T2 W4 I D2~K0 X D30~K1 N0 D30 C2~K2 Y2 D15 C2~K3 Y3 D10 C2~T3 W4 I D2~K0 Y5 D6 C2~K1 Y6 D5 C2~K2 X D2 Y7 D4 C2~K3 X D30~033 56 1German Regional Seismic Network, BGR Hannover~033 15 2STS2~034 44 1M/S~Velocity in Meters per Second~034 18 2V~Volts~034 32 3COUNTS~Digital Counts~043 264 1RSSENSOR201207231411139~A 1 2 1.00000E+00 1.00000E+00 2 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 0.00000E+00 0.00000E+00 0.00000E-00 0.00000E-00 2-3.67429E-02 3.67540E-02 0.00000E-00 0.00000E-00-3.67429E-02-3.67540E-02 0.00000E-00 0.00000E-00044 51 3RLDATALOGGER201207231411~D 2 3 0 0047 78 4DLDATALOGGER201207231411~1.0000E+02 1 0 0.0000E+00 0.0000E+00048 57 2GSGRGRA2HHZ2007242S~ 9.44020E+08 1.00000E+00 0048 54 5GLSZGRFDUMMYXXXX~ 1.00000E+00 0.00000E+00 0 000003S 050 120GRA2 49.655208 11.359444 512.0 Graefenberg Array Station Wildenfels~ 13210101976,048,00:00:00.0000~~NGR052 125 HHZ 0 2~ 1 0 49.655208 11.359444 512.0 0.0 0.0-90.0 1121.0000E+021.0000E-02 ~2007,242,00:00:00.0000~~N060 37 2 1 2 1 2 2 3 3 4 5058 35 0 9.44020E+08 1.00000E+00 0 \ No newline at end of file diff --git a/tests/test_Metadata/test_Metadata.py b/tests/test_Metadata/test_Metadata.py new file mode 100644 index 00000000..244adbe2 --- /dev/null +++ b/tests/test_Metadata/test_Metadata.py @@ -0,0 +1,104 @@ +import unittest +import os + +from pylot.core.util.dataprocessing import Metadata + +class TestMetadata(unittest.TestCase): + + def setUp(self): + self.station_id = 'BW.WETR..HH' + metadata_folder = 'metadata1' + self.m = Metadata(metadata_folder) + + def test_get_coordinates_sucess(self): + expected = {'Z': {u'elevation': 607.0, u'longitude': 12.87571, u'local_depth': 0.0, u'azimuth': 0.0, u'latitude': 49.14502, u'dip': -90.0}, + 'E': {u'azimuth': 90.0, u'dip': 0.0, u'elevation': 607.0, u'latitude': 49.14502, u'local_depth': 0.0, u'longitude': 12.87571}, + 'N': {u'azimuth': 0.0, u'dip': 0.0, u'elevation': 607.0, u'latitude': 49.14502, u'local_depth': 0.0, u'longitude': 12.87571} + } + result = {} + for channel in ('Z', 'N', 'E'): + coords = self.m.get_coordinates(self.station_id+channel) + result[channel] = coords + self.assertDictEqual(result[channel], expected[channel]) + +class TestMetadataAdding(unittest.TestCase): + """Tests if adding files and directories to a metadata object works.""" + + def setUp(self): + self.station_id = 'BW.WETR..HH' + self.metadata_folders = ('metadata1', 'metadata2') + self.m = Metadata() + + def test_add_inventory_folder(self): + """Test if add_inventory adds the folder to the list of inventories""" + self.m.add_inventory(self.metadata_folders[0]) + # adding an inventory folder should append it to the list of inventories + self.assertDictEqual({}, self.m.inventory_files) + self.assertDictEqual({}, self.m.seed_ids) + self.assertEqual([self.metadata_folders[0]], self.m.inventories) + + def test_add_inventory_file(self): + """Test if add_inventory_file adds the folder containing the file to the list of inventories and + if the files is added to inventory_files""" + fpath = os.path.join(self.metadata_folders[0], 'DATALESS.BW.WETR..HHZ') + self.m.add_inventory_file(fpath) + # adding an inventory file should append its folder to the list of inventories and the file to the + self.assertEqual(['metadata1/DATALESS.BW.WETR..HHZ'], self.m.inventory_files.keys()) # does the filename exist in inventory files? + self.assertEqual(['data', 'invtype'], self.m.inventory_files['metadata1/DATALESS.BW.WETR..HHZ'].keys()) # is the required information attacht to the filename? + self.assertDictEqual({}, self.m.seed_ids) + self.assertEqual([self.metadata_folders[0]], self.m.inventories) + + def test_add_inventory_invalid_path(self): + """Test if adding an inventory that is not an existing directory fails with an exception""" + with self.assertRaises(Exception): + self.m.add_inventory('InvalidDirName') + self.assertEqual([], self.m.inventories) # inventory list should still be empty + + def test_add_inventory_file_invalid_path(self): + """Test if adding a inventory file with an invalid path fails with an exception""" + with self.assertRaises(Exception): + self.m.add_inventory_file('/invalid/file/name') + self.assertEqual([], self.m.inventories) # inventory list should still be empty + + +class TestMetadataRemoval(unittest.TestCase): + """Tests if removing files and directories to a metadata object works.""" + + def setUp(self): + self.station_id = 'BW.WETR..HH' + self.metadata_folders = ('metadata1', 'metadata2') + self.m = Metadata() + + def test_remove_all_inventories(self): + """Test if function remove_inventory cleans the Metadata object """ + # add multiple inventories + for folder in self.metadata_folders: + self.m.add_inventory(folder) + self.m.remove_all_inventories() + self.isEmpty(self.m) + + def test_remove_inventory(self): + """Test if remove_inventory removes single inventories""" + # add multiple inventories + for folder in self.metadata_folders: + self.m.add_inventory(folder) + self.m.remove_inventory(self.metadata_folders[0]) + self.assertNotIn(self.metadata_folders[0], self.m.inventories) + self.m.remove_inventory(self.metadata_folders[1]) + self.assertNotIn(self.metadata_folders[1], self.m.inventories) + self.isEmpty(self.m) + + def test_remove_inventory_not_in_inventory_list(self): + """Test if remove_inventory does not modify the metadata instance if the given inventory to remove does not + exist in the instance.""" + # add multiple inventories + self.m.add_inventory(self.metadata_folders[0]) + self.m.remove_inventory('metadata_not_existing') + self.assertIn(self.metadata_folders[0], self.m.inventories) + + def isEmpty(self, metadata): + """Asserts if the given metadata object is empty""" + self.assertDictEqual({}, metadata.inventory_files) + self.assertDictEqual({}, metadata.seed_ids) + self.assertEqual([], metadata.inventories) + From 82ac08157c081e2219d9e31a28d14f246c9d0a06 Mon Sep 17 00:00:00 2001 From: Darius Arnold Date: Tue, 10 Jul 2018 21:41:07 +0200 Subject: [PATCH 2/2] =?UTF-8?q?[bugfix]=20azimuth=20<45=C2=B0=20was=20misa?= =?UTF-8?q?ttributed=20as=20E=20instead=20of=20N=20trace=20in=20check4rota?= =?UTF-8?q?ted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pylot/core/util/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pylot/core/util/utils.py b/pylot/core/util/utils.py index a973f622..06388a0d 100644 --- a/pylot/core/util/utils.py +++ b/pylot/core/util/utils.py @@ -1024,7 +1024,7 @@ def check4rotated(data, metadata=None, verbosity=1): for trace_id in trace_ids: dip, az = get_dip_azimut(parser, trace_id) trace = wfstream.select(id=trace_id)[0] - if az > 315 and az <= 45 or az > 135 and az <= 225: + if az > 315 or az <= 45 or az > 135 and az <= 225: trace.data = n trace.stats.channel = trace.stats.channel[0:-1] + 'N' elif az > 45 and az <= 135 or az > 225 and az <= 315: