@@ -839,7 +839,10 @@ int EW2SC3::extractOrigin(char* msg) {
839839 eventMin = line.substr (10 , 2 );
840840 eventSec = line.substr (12 , 2 ) + " ." + line.substr (14 , 2 );
841841 eventSec = blank_replace (eventSec, zero);
842- eventAmplitudeMagnitude = line.substr (36 , 1 ) + " ." + line.substr (37 , 2 );
842+ if ( line.substr (36 , 3 ) == " " )
843+ eventAmplitudeMagnitude = " NaN" ;
844+ else
845+ eventAmplitudeMagnitude = line.substr (36 , 1 ) + " ." + line.substr (37 , 2 );
843846 eventAmplitudeMagnitude = blank_replace (eventAmplitudeMagnitude, zero);
844847 neventMonth = blank_replace (eventMonth, zero);
845848 neventDay = blank_replace (eventDay, zero);
@@ -865,8 +868,10 @@ int EW2SC3::extractOrigin(char* msg) {
865868 eventLonMin = line.substr (27 , 4 );
866869 eventErh = line.substr (85 , 2 ) + " ." + line.substr (87 , 2 );
867870 eventErz = line.substr (89 , 2 ) + " ." + line.substr (91 , 2 );
868-
869- eventCodaDurationMagnitude = line.substr (70 , 1 ) + " ." + line.substr (71 , 2 );
871+ if ( line.substr (70 , 3 ) == " " )
872+ eventCodaDurationMagnitude = " NaN" ;
873+ else
874+ eventCodaDurationMagnitude = line.substr (70 , 1 ) + " ." + line.substr (71 , 2 );
870875 eventCodaDurationMagnitude = blank_replace (eventCodaDurationMagnitude, zero);
871876 eventPreferredMagnitude = line.substr (147 , 1 ) + " ." + line.substr (148 , 2 );
872877 eventPreferredMagnitude = blank_replace (eventPreferredMagnitude, zero);
@@ -1178,24 +1183,28 @@ int EW2SC3::extractOrigin(char* msg) {
11781183 mci.setModificationTime (Time::GMT ());
11791184
11801185 // Amplitude magnitude
1181- MagnitudePtr amag = Magnitude::Create ();
1182- amag->setType (" ML" );
1183- amag->setOriginID (origin->publicID ());
1184- amag->setMagnitude (RealQuantity (to_double (eventAmplitudeMagnitude)));
1185- amag->setMethodID (" mean" );
1186- amag->setStationCount (idx);
1187- amag->setCreationInfo (mci);
1188- origin->add (amag.get ());
1186+ if ( eventAmplitudeMagnitude != " NaN" ) {
1187+ MagnitudePtr amag = Magnitude::Create ();
1188+ amag->setType (" ML" );
1189+ amag->setOriginID (origin->publicID ());
1190+ amag->setMagnitude (RealQuantity (to_double (eventAmplitudeMagnitude)));
1191+ amag->setMethodID (" mean" );
1192+ amag->setStationCount (idx);
1193+ amag->setCreationInfo (mci);
1194+ origin->add (amag.get ());
1195+ }
11891196
11901197 // Coda duration magnitude
1191- MagnitudePtr dmag = Magnitude::Create ();
1192- dmag->setType (" Md" );
1193- dmag->setOriginID (origin->publicID ());
1194- dmag->setMagnitude (RealQuantity (to_double (eventCodaDurationMagnitude)));
1195- dmag->setMethodID (" mean" );
1196- dmag->setStationCount (idx);
1197- dmag->setCreationInfo (mci);
1198- origin->add (dmag.get ());
1198+ if ( eventCodaDurationMagnitude != " NaN" ) {
1199+ MagnitudePtr dmag = Magnitude::Create ();
1200+ dmag->setType (" Md" );
1201+ dmag->setOriginID (origin->publicID ());
1202+ dmag->setMagnitude (RealQuantity (to_double (eventCodaDurationMagnitude)));
1203+ dmag->setMethodID (" mean" );
1204+ dmag->setStationCount (idx);
1205+ dmag->setCreationInfo (mci);
1206+ origin->add (dmag.get ());
1207+ }
11991208
12001209 OriginQuality oq;
12011210 if ( to_double (eventRms) != .0 )
0 commit comments