(feat): Insertion to mongoDB done
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import logging
|
||||
from io import TextIOWrapper
|
||||
from typing import Any
|
||||
|
||||
from utilsv2 import utils
|
||||
from utilsv2.log import logger
|
||||
from utilsv2.nordic import parse as n_parse
|
||||
from utilsv2.nordic import evtype, parse_event, parse_stations_V1, sttype
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -35,16 +36,43 @@ def find_events(fp: TextIOWrapper) -> list[tuple[int, int]]:
|
||||
return event_indices
|
||||
|
||||
|
||||
def extract_event(fp: TextIOWrapper, event_bounds: list[tuple[int, int]]):
|
||||
def split_event(lines: list[str], start: int, end: int) -> int:
|
||||
for idx in range(start, end):
|
||||
if lines[idx].endswith("7"):
|
||||
return idx
|
||||
return -1
|
||||
|
||||
|
||||
def extract_event(
|
||||
fp: TextIOWrapper, event_bounds: list[tuple[int, int]]
|
||||
) -> tuple[list[evtype], list[sttype]]:
|
||||
lines = fp.read().split("\n")
|
||||
print(len(lines))
|
||||
print(event_bounds)
|
||||
events, ev_stations = [], []
|
||||
|
||||
for event_idx in event_bounds:
|
||||
n_parse(lines[event_idx[0] : event_idx[1]])
|
||||
stations = split_event(lines, event_idx[0], event_idx[1])
|
||||
if stations == -1:
|
||||
logger.error(f"Could not parse event at pos {event_idx}")
|
||||
continue
|
||||
ev = parse_event(lines[event_idx[0] : stations])
|
||||
events.append(ev)
|
||||
ev_stations.append(
|
||||
parse_stations_V1(lines[stations + 1 : event_idx[1]], ev["ID"])
|
||||
)
|
||||
|
||||
return events, ev_stations
|
||||
|
||||
|
||||
def parse(fname: str) -> None:
|
||||
def massage_magnitudes(data: list[evtype]) -> list[evtype]:
|
||||
data = data
|
||||
for idx, ev in enumerate(data):
|
||||
for jdx, mag in enumerate(ev["Magnitudes"]):
|
||||
data[idx]["Magnitudes"][jdx] = mag.toJSON()
|
||||
|
||||
return data
|
||||
|
||||
|
||||
def parse(fname: str):
|
||||
_ret = read_file(fname)
|
||||
if not isinstance(_ret, TextIOWrapper):
|
||||
logger.critical(_ret.__str__())
|
||||
@@ -52,7 +80,9 @@ def parse(fname: str) -> None:
|
||||
|
||||
events = find_events(_ret)
|
||||
_ret.seek(0)
|
||||
extract_event(_ret, events)
|
||||
evs, stations = extract_event(_ret, events)
|
||||
|
||||
# cleanup
|
||||
_ret.close()
|
||||
|
||||
return evs, stations
|
||||
|
||||
Reference in New Issue
Block a user