Lesen wir die RINEX-Datei mit Python ①

__RINEX-Datei (Receiver Independent Exchange Format) __ sind einfach die Daten, die vom Satelliten vom elektronischen Referenzpunkt empfangen werden, der im Satellitenpositionierungssystem verwendet wird. ...vielleicht Übrigens weiß ich fast nicht, welche Art von Informationen darin enthalten sind, daher werde ich sie angemessen analysieren und gleichzeitig das Programm üben.

Referenz-URL

Konfigurationsumgebung

Lassen Sie uns zunächst eine GUI erstellen (Erscheinungsbild des Tools)

Wir werden tkinter verwenden, die Standard-GUI-Bibliothek, die von Anfang an enthalten ist, wenn Anaconda installiert wird. Lassen Sie uns codieren, ohne uns der Objektorientierung zu bewusst zu sein!

GUI-Implementierung

analyzer.py


import tkinter as tk
from calendar import isleap
from constant import *  #Eigenes Definitionsmodul


class Widget:
    """
GUI-Widget-Generierungsklasse
    """
    def __init__(self):
        self.root = tk.Tk()
        self.root.title('RINEX Analyzer')
        self.root.columnconfigure(0, weight=1)
        self.flame = tk.Frame(self.root)
        self.flame.grid(row=0, column=0)
        [self.flame.columnconfigure(x, weight=1) for x in range(4)]

        #Ab hier die Platzierung von Schaltflächen-Widgets usw.
        self.widget_dict = {}
        for cnt,ilist in enumerate(OPTION_LIST):
            tk.Label(self.flame, text=ilist[0].replace("_","\n")).grid(row=0, column=cnt)
            self.widget_dict[ilist[0]] = tk.StringVar()
            if "END" in ilist[0]:
                if not isleap(int(self.widget_dict["YEAR"].get())):
                    self.widget_dict[ilist[0]].set(ilist[1][-2])  #365 wenn nicht ein feuchtes Jahr
                else:
                    self.widget_dict[ilist[0]].set(ilist[1][-1])  #366 für ein feuchtes Jahr
            else:
                self.widget_dict[ilist[0]].set(ilist[1][0])
            tk.OptionMenu(self.flame, self.widget_dict[ilist[0]], *ilist[1]).grid(row=1, column=cnt)

        self.widget_dict["GET_RINEX"] = tk.Button(self.flame, text="GET RINEX", bg="SkyBlue")
        self.widget_dict["GET_RINEX"].grid(row=2, column=3, padx=1, pady=1)
        self.widget_dict["GET_RINEX"].config(command=lambda: self.button_event())
        self.widget_dict["TEXT"] = tk.Text(self.flame, width=40, height=10)
        self.widget_dict["TEXT"].grid(row=3, column=0, columnspan=4, padx=5, pady=5)
        self.widget_dict["TEXT"].insert("end", "Nachrichtenausgabe\n")
        self.widget_dict["CANVAS"] = tk.Canvas(self.flame, width=50, height=50)
        self.widget_dict["CANVAS"].grid(row=4, column=0, columnspan=4)

        self.root.mainloop()

    def button_event(self):
        """
Beschreiben Sie das Verhalten beim Drücken der Taste
        """
        #Nachrichtenausgabe in Textfeld
        if int(self.widget_dict["START_DOY"].get()) > int(self.widget_dict["END_DOY"].get()):
            # START_ENDE als DOY_Wenn DOY an erster Stelle steht
            self.widget_dict["TEXT"].insert("end", "START_ENDE als DOY_Das DOY-Datum steht an erster Stelle\n")
        elif not isleap(int(self.widget_dict["YEAR"].get())):
            #Wenn es kein feuchtes Jahr ist
            if int(self.widget_dict["START_DOY"].get()) == 366 or int(self.widget_dict["END_DOY"].get()) == 366:
                self.widget_dict["TEXT"].insert("end", "{0}Es gibt keine 366 Tage im Jahr\n".format(self.widget_dict["YEAR"].get()))
            else:
                [self.widget_dict["TEXT"].insert("end", "{0}:{1}\n".format(x, self.widget_dict[x].get())) for x in LABEL_LIST]
        else:
            [self.widget_dict["TEXT"].insert("end", "{0}:{1}\n".format(x, self.widget_dict[x].get())) for x in LABEL_LIST]
        self.widget_dict["TEXT"].see("end")

#Beschreibung erforderlich, wenn Sie eine Python-Datei durch Doppelklicken starten
if __name__ == "__main__":
    try:
        Widget()  #Schnittstelle starten
        print("\n Normale Beendigung")
    except Exception as _e:
        print(_e, type(_e))
        print("\n Abnormale Beendigung")

Die Verarbeitung des feuchten Jahres war nüchtern und mühsam Oder besser gesagt, es gab eine Funktion, die bestimmen konnte, ob es ein feuchtes Jahr war

Eigenes Definitionsmodul

constant.py


"""Modul für konstante Definition"""
YEAR_LIST = ["2018", "2019", "2020", "2021", "2022"]    #Definition für 5 Jahre vorerst
DOY_LIST = [str(x).zfill(3) for x in range(1, 367)]  # Day of year
ERP_LIST = ["0958", "3005", "3007", "3008", "3011",
            "3013","0223", "0224", "0753", "0754", "0755"]  #Stationsnummer des elektronischen Referenzpunkts...Definieren wir vorerst die in der Präfektur Saitama
LABEL_LIST = ["YEAR", "START_DOY", "END_DOY", "ERP"]
OPTION_LIST = [[LABEL_LIST[cnt], i] for cnt,i in enumerate([YEAR_LIST, DOY_LIST, DOY_LIST, ERP_LIST])]  #Doppelte Liste

Beim Erstellen eines Moduls, das Konstanten definiert Es scheint, dass es derzeit 11 elektronische Referenzpunkte in der Präfektur Saitama gibt.

Bisher sieht die GUI so aus

rnx_dler_gui 2020-04-20 224859.png Hmm, müde Sie Das "Optionsmenü" von "tkinter" wird als Listenfeld oder Kombinationsfeld bezeichnet.

Die Seite, auf die ich mich bezog

letzte

Ich habe vorerst eine einfache GUI Das nächste Mal möchte ich rund um die Erfassung von RINEX-Dateien implementieren. Ich habe auch die Benutzerfreundlichkeit von PyCharm gespürt. Es ist einfach zu debuggen und es fühlt sich gut an, die Syntax und die PEP8-Konventionen ohne Erlaubnis zu überprüfen.

: arrow_backward: Letzter Artikel | [Nächster Artikel]: arrow_forward:

Recommended Posts

Lesen wir die RINEX-Datei mit Python ①
[Python] Lesen Sie die CSV-Datei und zeigen Sie die Abbildung mit matplotlib an
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Überprüfen Sie die Existenz der Datei mit Python
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen Sie die Datei Zeile für Zeile mit Python
[Python] Lesen Sie die angegebene Zeile in der Datei
[Automatisierung] Lesen Sie E-Mails (Nachrichtendatei) mit Python
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
Lesen Sie die Python-CSV-Datei
Lesen Sie Tabellendaten in einer PDF-Datei mit Python
Konvertieren Sie den Zeichencode der Datei mit Python3
Lesen Sie mit Python Zeile für Zeile aus der Datei
Lesen Sie die Datei mit Python und löschen Sie die Zeilenumbrüche [Hinweise zum Lesen der Datei]
Python / numpy> Lesen Sie die Datendatei mit der Elementnamenzeile> Verwenden Sie genfromtxt ()
Lesen Sie CSV mit Python-Pandas
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Zeichnen Sie eine netCDF-Datei mit Python
Lesen Sie die XML-Datei anhand des Python-Tutorials
Lesen Sie den QR-Code aus der Bilddatei mit Python (Mac).
Schreiben wir Python mitinema4d.
Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus
Rufen Sie die API mit python3 auf.
Lassen Sie uns Git-Cat mit Python bauen
Laden Sie die CSV-Datei mit Python herunter
Lesen von JSON-Daten mit Python
So wechseln Sie die Konfigurationsdatei, die von Python gelesen werden soll
Lesen Sie die GRIB2-Datei der Meteorological Agency auf pygrib
Berühren wir die API der Netatmo Weather Station mit Python. #Python #Netatmo
Lesen Sie die VTK-Datei und zeigen Sie die Farbkarte mit Jupiter an.
Lesen einer Excel-Datei (.xlsx) mit Pandas [Python]
Versuchen Sie, die verstümmelten Zeichen im angehängten Dateinamen mit Python zu entschlüsseln
Speichern Sie die Binärdatei in Python
Implementierter Dateidownload mit Python + Bottle
Lassen Sie uns eine GUI mit Python erstellen.
Folgen Sie der Dateihierarchie mit fts
Ausgabe in eine CSV-Datei mit Python
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
Lass uns mit Python mit Python spielen [Anfänger]
Klicken Sie mit Python auf die Etherpad-Lite-API
Installieren Sie das Python-Plug-In mit Netbeans 8.0.2
Lassen Sie Python die Befehlsausgabe lesen
Laden Sie die mit appcfg.py bereitgestellte Datei herunter
Lassen Sie uns mit Python Image Scraping durchführen
Ich mochte den Tweet mit Python. ..
Extrahieren Sie die Targz-Datei mit Python
Lesen Sie Dateien parallel zu Python
Beherrsche den Typ mit Python [Python 3.9 kompatibel]
Lassen Sie uns ein Diagramm mit Python erstellen! !!
[Mit Python automatisiert! ] Teil 2: Dateivorgang
[Python] Lesen Sie den Flask-Quellcode
Datei mit Standard-App öffnen
Laden Sie fbx aus Python mitinema4d
Lassen Sie uns die Stimme mit Python # 1 FFT analysieren