Install SeisComP and scanloc ARM64 nightly packages

This commit is contained in:
Enrico Ellguth
2025-10-29 12:34:04 +00:00
parent 2ff097f9d1
commit 165b829fb7
606 changed files with 24438 additions and 16358 deletions

View File

@ -81,25 +81,20 @@ class MySQLDB(QueryInterface):
return tmp_tables
def deleteObjectQuery(self, *v):
if v[0]:
q = (
"delete "
+ v[0]
+ " from "
+ ", ".join(v)
+ " where "
+ v[0]
+ "._oid="
+ v[1]
+ "._oid and "
)
else:
q = "delete " + v[1] + " from " + ", ".join(v[1:]) + " where "
q = (
"delete "
+ v[0]
+ " from "
+ ", ".join(v)
+ " where "
+ v[0]
+ "._oid="
+ v[1]
+ "._oid"
)
for i in range(1, len(v) - 1):
if i > 1:
q += " and "
q += v[i] + "._oid=" + v[i + 1] + "._oid"
q += " and " + v[i] + "._oid=" + v[i + 1] + "._oid"
return q
@ -211,25 +206,20 @@ class PostgresDB(QueryInterface):
return tmp_tables
def deleteObjectQuery(self, *v):
if v[0]:
q = (
"delete from "
+ v[0]
+ " using "
+ ", ".join(v[1:])
+ " where "
+ v[0]
+ "._oid="
+ v[1]
+ "._oid and "
)
else:
q = "delete from " + v[1] + " using " + ", ".join(v[2:]) + " where "
q = (
"delete from "
+ v[0]
+ " using "
+ ", ".join(v[1:])
+ " where "
+ v[0]
+ "._oid="
+ v[1]
+ "._oid"
)
for i in range(1, len(v) - 1):
if i > 1:
q += " and "
q += v[i] + "._oid=" + v[i + 1] + "._oid"
q += " and " + v[i] + "._oid=" + v[i + 1] + "._oid"
return q
@ -333,6 +323,8 @@ class DBCleaner(seiscomp.client.Application):
self._invertMode = False
self._stripEP = True
self._stripQC = True
self._keepModes = [] # Array with modes to keep
self._keepStatus = [] # Array with status to keep
self._steps = 0
self._currentStep = 0
@ -368,6 +360,18 @@ class DBCleaner(seiscomp.client.Application):
"Event-IDs to keep in the database. Combining with 'qc-only' "
"is invalid.",
)
self.commandline().addStringOption(
"Objects",
"keep-event-modes",
"Keep all events where is evaluation mode of the preferred origin is "
"one of the given modes."
)
self.commandline().addStringOption(
"Objects",
"keep-event-status",
"Keep all events where is evaluation status of the preferred origin is "
"one of the given status."
)
self.commandline().addOption(
"Objects",
"qc-only,Q",
@ -473,7 +477,7 @@ class DBCleaner(seiscomp.client.Application):
f"""Usage:
{os.path.basename(__file__)} [options]
Remove event and waveform quality parameters from the database in a timespan. Use
Remove event and waveform quality parameters from the database in a timespan. Use
scardac for removing data availability parameters."""
)
@ -543,6 +547,19 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
except RuntimeError:
pass
try:
status = self.commandline().optionString("keep-event-status")
self._keepStatus = [s.strip() for s in status.split(",")]
print(status, self._keepStatus)
except RuntimeError:
pass
try:
modes = self.commandline().optionString("keep-event-modes")
self._keepModes = [m.strip() for m in modes.split(",")]
except RuntimeError:
pass
try:
dateTime = self.commandline().optionString("datetime")
except RuntimeError:
@ -694,6 +711,11 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
self.beginMessage("Search objects")
if not self.runCommand(tmp_object):
return False
tmp_object = "create index idx_oid on tmp_object(_oid)"
if not self.runCommand(tmp_object):
return False
self.endMessage(self.globalCount("tmp_object"))
for table in tables:
@ -783,6 +805,7 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
self.beginMessage("Deleting waveform quality parameters")
if not self.runCommand(
self._query.deleteObjectQuery("Object", "WaveformQuality")
+ " and "
+ timeRangeSelection(f"WaveformQuality.{self.cnvCol('end')}")
):
return False
@ -822,9 +845,28 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
+ " not in ('%s')" % "','".join(self._keepEvents)
)
if len(self._keepModes) > 0:
old_events += (
" and Origin."
+ self.cnvCol("evaluationMode")
+ " not in ('%s')" % "','".join(self._keepModes)
)
if len(self._keepStatus) > 0:
old_events += (
" and Origin."
+ self.cnvCol("evaluationStatus")
+ " not in ('%s')" % "','".join(self._keepStatus)
)
self.beginMessage("Find old events")
if not self.runCommand(old_events):
return False
old_events = "create index idx_oid on old_events(_oid)"
if not self.runCommand(old_events):
return False
self.endMessage(self.globalCount("old_events"))
# Delete OriginReferences of old events
@ -879,6 +921,10 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
self.beginMessage("Find unassociated focal mechanisms")
if not self.runCommand(tmp_fm):
return False
tmp_fm = "create index idx_oid on tmp_fm(_oid)"
if not self.runCommand(tmp_fm):
return False
@ -990,6 +1036,10 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
self.beginMessage("Find unassociated origins")
if not self.runCommand(tmp_origin):
return False
tmp_origin = "create index idx_oid on tmp_origin(_oid)"
if not self.runCommand(tmp_origin):
return False
@ -998,7 +1048,7 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
update tmp_origin set used=1 \
where ("
+ self.cnvCol("publicID")
+ " in (select distinct "
+ " in (select "
+ self.cnvCol("originID")
+ " from OriginReference)) \
or ("
@ -1093,6 +1143,10 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
)
)
if not self.runCommand(tmp_pick):
return False
tmp_pick = "create index idx_oid on tmp_pick(_oid)"
if not self.runCommand(tmp_pick):
return False
@ -1145,6 +1199,10 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
)
)
if not self.runCommand(tmp_amp):
return False
tmp_amp = "create index idx_oid on tmp_amp(_oid)"
if not self.runCommand(tmp_amp):
return False
@ -1287,27 +1345,27 @@ Remove all waveform QC paramters older than 30 days but do not effect event para
self._query.deleteJournalQuery("PublicObject", *v) + " and used=0"
)
self.runCommand(
self._query.deleteObjectQuery(None, "Object", *v) + " and used=0"
self._query.deleteObjectQuery("Object", *v) + " and used=0"
)
self.runCommand(
self._query.deleteObjectQuery(None, "PublicObject", *v) + " and used=0"
self._query.deleteObjectQuery("PublicObject", *v) + " and used=0"
)
def deleteObjects(self, *v):
self.runCommand(self._query.deleteJournalQuery("PublicObject", *v))
self.runCommand(self._query.deleteObjectQuery("Object", *v))
self.runCommand(self._query.deleteObjectQuery("PublicObject", *v))
self.runCommand(self._query.deleteObjectQuery(None, *v))
self.runCommand(self._query.deleteObjectQuery(*v))
self.runCommand(self._query.deleteObjectQuery("PublicObject", *v[1:]))
self.runCommand(self._query.deleteObjectQuery("Object", *v[1:]))
def deleteUnusedObjects(self, *v):
self.runCommand(
self._query.deleteJournalQuery("PublicObject", *v) + " and used=0"
)
self.runCommand(self._query.deleteObjectQuery("Object", *v) + " and used=0")
self.runCommand(self._query.deleteObjectQuery(*v) + " and used=0")
self.runCommand(
self._query.deleteObjectQuery("PublicObject", *v) + " and used=0"
self._query.deleteObjectQuery("PublicObject", *v[1:]) + " and used=0"
)
self.runCommand(self._query.deleteObjectQuery(None, *v) + " and used=0")
self.runCommand(self._query.deleteObjectQuery("Object", *v[1:]) + " and used=0")
def delete(self, message, func, *v):
self.beginMessage(message)