(feat): Insertion to mongoDB done

This commit is contained in:
2025-12-28 16:22:42 -01:00
parent 1bb945f7e6
commit 1e6551a2b1
5 changed files with 187 additions and 25 deletions

View File

@@ -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