Filtern von Datensätzen

Die Datensätze können abseits von Bändern (z.B. --band "2m"), Modi (z.B. --type "FM") und Ländern (z.B. --country) auch nach weiteren benutzerdefinierten Kriterien gefiltert werden.

Das geht sehr einfach durch Verwendung des Parameters --filter. Dabei werden anschließend immer der gewünschte Parameter und der zu filternde Wert angegeben:

  • --filter "callsign==OE1XFW"

  • --filter "name==Laaerberg Turm"

  • --filter "freq_tx==431.05"

  • …​

Folgende Vergleichsoperatoren stehen zur Verfügung:

  • ==: Gleich

  • !=: Ungleich

  • ~=: Enthält (bei Zeichenketten)

  • >: Größer

  • >=: Größer gleich

  • <: Kleiner

  • <=: Kleiner gleich

Daraus ergibt sich nun das folgende Format zur Angabe eines benutzerdefinierten Filters:

--filter "<key><operator><value>"

Für <key> verwendet man die Werte aus der folgenden Tabelle, als <operator> setzt man den gewünschten Vergleichsoperator ein. Anstelle von <value> setzt man den gewünschten Wert ein, der zum Vergleich herangezogen werden soll.

Einige Filtermöglichkeiten sind zum Beispiel:

  • --filter "callsign==OE1XFW"

  • --filter "name~=Turm"

  • --filter "freq_tx>=431.05"

  • --filter "multimode==False"

  • --filter "multimode!=True"

  • --filter "sea_level<1500"

  • …​

Es ist auch möglich mehrmals den Parameter --filter …​ mit unterschiedlichen Kriterien anzugeben. Die einzelnen Kriterien werden dann in der Abfrage logisch als und verknüpft. Das heißt, nur wenn alle Kriterien zutreffen, wird der betreffende Datensatz auch ausgegeben.

Beispielsweise würde der Ausdruck --filter "callsign~=OE1X" --filter "name~=Turm" nach Einträgen suchen, die ein OE1X als Teil ihres Callsigns und Turm in ihrem Namen haben.

Der Memory Channels Processor arbeitet intern mit den folgenden Datensatz-Spalten und stellt somit auch folgende Filtermöglichkeiten zur Verfügung:

Verfügbare Spalten bzw. Variablen für die Filterung
Key Type

band

object

c4fm

bool

callsign

object

country

object

country_code

object

ctcss

bool

ctcss_rx

float64

ctcss_tx

float64

distance

float64

dmr

bool

dmr_cc

int64

dmr_id

int64

dstar

bool

dstar_rpt1

object

dstar_rpt2

object

dup

object

fm

bool

freq_rx

float64

freq_tx

float64

heading

int64

issue_count

int64

issues

object

landmark

object

lat

float64

loc_exact

bool

locator

object

long

float64

multimode

bool

name

object

name_formatted

object

offset

float64

scan_group

int64

sea_level

int64

simplex

bool

skip

bool

source_id

object

source_license

object

source_name

object

source_provider

object

source_type

object

source_url

object

split

bool

state

object

Beispiel

Als Beispiel dienen die Wiener FM Repeater. Es sollen nur 70cm Repeater mit OE1X im Callsign ausgegeben werden:

Generieren eines gefilterten Datensatzes im CSV-Format
memory-channels-processor --source "oevsv-repeater-db" --band 70cm --type "fm" --output-format="csv" --filter "callsign~=OE1X"
Ausgabe des gefilterten CSV-Datensatzes
callsign,name,band,freq_tx,freq_rx,ctcss_tx,ctcss_rx,c4fm,dmr,dmr_id,dmr_cc,dstar,dstar_rpt1,dstar_rpt2,fm,landmark,state,country,country_code,loc_exact,lat,long,locator,sea_level,skip,scan_group,source_id,source_name,source_provider,source_type,source_license,source_url,offset,dup,ctcss,simplex,split,multimode,name_formatted,distance,heading
OE1XBA,Porrtower,70cm,430.7125,438.3125,162.2,162.2,False,False,,,False,,,True,Favoriten,Wien,Austria,AUT,True,48.16796379539441,16.38715982437134,JN88EE,232,False,,oevsv-repeater-db,ÖVSV-Repeater Database,ÖVSV UKW Referat,dynamic,CC BY 4.0,https://www.oevsv.at/funkbetrieb/amateurfunkfrequenzen/ukw-referat/,7.6,-,True,False,False,False,OE1XBA,,
OE1XAT,Hermannskogel,70cm,430.875,438.475,162.2,162.2,False,False,,,False,,,True,Grinzing,Wien,Austria,AUT,True,48.27041873853696,16.29355072975159,JN88DG,542,False,,oevsv-repeater-db,ÖVSV-Repeater Database,ÖVSV UKW Referat,dynamic,CC BY 4.0,https://www.oevsv.at/funkbetrieb/amateurfunkfrequenzen/ukw-referat/,7.6,-,True,False,False,False,OE1XAT,,
OE1XFW,Laaerberg Turm,70cm,431.05,438.65,,,False,False,,,False,,,True,Oberlaa Stadt,Wien,Austria,AUT,True,48.157173,16.396717,JN88ED,252,False,,oevsv-repeater-db,ÖVSV-Repeater Database,ÖVSV UKW Referat,dynamic,CC BY 4.0,https://www.oevsv.at/funkbetrieb/amateurfunkfrequenzen/ukw-referat/,7.6,-,False,False,False,False,OE1XFW,,
OE1XUU,Kahlenberg,70cm,431.35,438.95,162.2,162.2,False,False,,,False,,,True,Josefsdorf,Wien,Austria,AUT,True,48.276145,16.333217,JN88DG,483,False,,oevsv-repeater-db,ÖVSV-Repeater Database,ÖVSV UKW Referat,dynamic,CC BY 4.0,https://www.oevsv.at/funkbetrieb/amateurfunkfrequenzen/ukw-referat/,7.6,-,True,False,False,False,OE1XUU,,
OE1XFU,Satzberg,70cm,431.4,439.0,162.2,162.2,False,False,,,False,,,True,Hütteldorf,Wien,Austria,AUT,True,48.21527259679771,16.2613320350647,JN88DF,435,False,,oevsv-repeater-db,ÖVSV-Repeater Database,ÖVSV UKW Referat,dynamic,CC BY 4.0,https://www.oevsv.at/funkbetrieb/amateurfunkfrequenzen/ukw-referat/,7.6,-,True,False,False,False,OE1XFU,,