Python Programm für Master Thesis...Ich brauche bitte Hilfe
Verfasst: Donnerstag 7. Oktober 2021, 08:33
Hallo zusammen,
ich muss in einem Monat meine Master Thesis abgeben und mein Betreuer meint ich soll jetzt nochmal was mit Python machen, obwohl ich keine Ahnung davon habe.
Deshalb erhoffe ich mir Hilfe von euch.
Im Folgenden ist ein Ausschnitt der Daten, welche ich aus einer JSON Datei in Python einlesen lasse zu sehen.
Vor diesem Datensatz stehen noch einige allgemeine Daten der Simulation, aber ich hoffe das ist erstmal unwichtig.
In meiner Datenreihe werden dabei verschiedene Events dargestellt. Hier ist der erste Datensatz dargestellt, wobei bei "0" mit zählen begonnen wird (bis zum Ende können es über 10.000 sein).
Ich möchte aus dem Teil danach lediglich die erste ID (von sat1) und die zweite ID (von sat2) sowie das ergebnis von "same_operator" (true/false) auslesen und vllt. wie in Excel in eine Zeile einer Tabelle schreiben.
Ganz am Ende des Datensatzes kommt anschließend noch ein Teil, in dem den ID´s verschiedene Eigenschaften zugeordnet werden (Beispiel weiter unten abgebildet).
Aus diesem unteren Teil würde ich gerne die dick makierten Eigenschaften herausfiltern jedem Event weiter zuordnen.
Das Script muss dabei erkennen, dass der "event data" Teil zu Ende ist und der "satellite_data" Teil beginnt.
Am Ende soll eine Art Tabelle entstehen, welche nacheinander alle Events auflistet:
Event Nummer / ID1 / ID2 / operator_group_no1 / operator_country_no1 / orbit_type / satellite_type / expected_life_time
Ich hoffe sehr, dass mir jemand helfen kann, da ich eigentlich nicht die Zeit habe mich jetzt noch in Python einzuarbeiten.
Vielen Lieben Dank schonmal im voraus!
"event_data": {
"0": {
"sim_time": "830 seconds",
"time": "2021-01-01T00:13:50",
"same_operator": "True",
"miss_distance": "0.1556",
"sat1": {
"ID": "100043574",
"state": {
"x": -525.11474,
"y": -42.72384,
"z": 7125.88384,
"vx": 4.39253,
"vy": -6.03871,
"vz": 0.28718
},
"kepler": {
"a": 7152.77135,
"e": 0.00104062,
"i": 1.50785,
"RAAN": 2.2021,
"aPer": 1.57084,
"f": 6.24458
},
"mass": "860.0",
"propellantMass": "160.0",
"mission_phase": "1"
},
"sat2": {
"ID": "100043929",
"state": {
"x": -525.10253,
"y": -42.87892,
"z": 7125.88759,
"vx": -3.36969,
"vy": -6.6637,
"vz": -0.28811
},
"kepler": {
"a": 7152.77568,
"e": 0.0010407,
"i": 1.50793,
"RAAN": 1.10019,
"aPer": 1.57086,
"f": 0.03861
},
"mass": "860.0",
"propellantMass": "160.0",
"mission_phase": "1"
}
},
"1": {
"sim_time": "1841 seconds",
"time": "2021-01-01T00:30:41",
"same_operator": "False",
"miss_distance": "0.6642",
"sat1": {
"ID": "100043167",
"state": {
"x": -960.02371,
-------------------------------------------------------------------------------------
"100043574": {
"name": "IRIDIUM 154",
"norad_id": "43574",
"operator_no1": "Iridium Communications, Inc.",
"operator_group_no1": "Commercial",
"operator_country_no1": "US",
"operator_no2": "Iridium Communications, Inc.",
"operator_group_no2": "nan",
"operator_country_no2": "nan",
"country_UN_register": "UNITED STATES OF AMERICA",
"mission_type": "Communication",
"mission_type_specification": "Niche Communication",
"orbit_type": "Polar",
"satellite_type": "Medium Satellite",
"launch_date": "2018-07-25T00:00:00.000000",
"expected_life_time": "473040000.0",
"mass_init": "860.0",
"dimension": {
"x": "1.5",
"y": "3.1",
"z": "9.4"
},
"av_crosssection": "6.6628",
"drag_coef": "2.2",
"ballistic_coef": "1.704e-08",
"propellant_mass_init": "160.0",
"initial_propellant_mass_fraction": "0.18604651162790697",
"propulsion_type": "1.0",
"specific_impulse": "None",
"thrust_average": "None",
"mission_phase": "1",
"station_keeping_threshold": "[None, 0.3333333333333333, None, None]"
},
"100043575": {
"name": "IRIDIUM 163",
"norad_id": "43575",
"operator_no1": "Iridium Communications, Inc.",
"operator_group_no1": "Commercial",
"operator_country_no1": "US",
"operator_no2": "Iridium Communications, Inc.",
"operator_group_no2": "nan",
ich muss in einem Monat meine Master Thesis abgeben und mein Betreuer meint ich soll jetzt nochmal was mit Python machen, obwohl ich keine Ahnung davon habe.
Deshalb erhoffe ich mir Hilfe von euch.
Im Folgenden ist ein Ausschnitt der Daten, welche ich aus einer JSON Datei in Python einlesen lasse zu sehen.
Vor diesem Datensatz stehen noch einige allgemeine Daten der Simulation, aber ich hoffe das ist erstmal unwichtig.
In meiner Datenreihe werden dabei verschiedene Events dargestellt. Hier ist der erste Datensatz dargestellt, wobei bei "0" mit zählen begonnen wird (bis zum Ende können es über 10.000 sein).
Ich möchte aus dem Teil danach lediglich die erste ID (von sat1) und die zweite ID (von sat2) sowie das ergebnis von "same_operator" (true/false) auslesen und vllt. wie in Excel in eine Zeile einer Tabelle schreiben.
Ganz am Ende des Datensatzes kommt anschließend noch ein Teil, in dem den ID´s verschiedene Eigenschaften zugeordnet werden (Beispiel weiter unten abgebildet).
Aus diesem unteren Teil würde ich gerne die dick makierten Eigenschaften herausfiltern jedem Event weiter zuordnen.
Das Script muss dabei erkennen, dass der "event data" Teil zu Ende ist und der "satellite_data" Teil beginnt.
Am Ende soll eine Art Tabelle entstehen, welche nacheinander alle Events auflistet:
Event Nummer / ID1 / ID2 / operator_group_no1 / operator_country_no1 / orbit_type / satellite_type / expected_life_time
Ich hoffe sehr, dass mir jemand helfen kann, da ich eigentlich nicht die Zeit habe mich jetzt noch in Python einzuarbeiten.
Vielen Lieben Dank schonmal im voraus!
"event_data": {
"0": {
"sim_time": "830 seconds",
"time": "2021-01-01T00:13:50",
"same_operator": "True",
"miss_distance": "0.1556",
"sat1": {
"ID": "100043574",
"state": {
"x": -525.11474,
"y": -42.72384,
"z": 7125.88384,
"vx": 4.39253,
"vy": -6.03871,
"vz": 0.28718
},
"kepler": {
"a": 7152.77135,
"e": 0.00104062,
"i": 1.50785,
"RAAN": 2.2021,
"aPer": 1.57084,
"f": 6.24458
},
"mass": "860.0",
"propellantMass": "160.0",
"mission_phase": "1"
},
"sat2": {
"ID": "100043929",
"state": {
"x": -525.10253,
"y": -42.87892,
"z": 7125.88759,
"vx": -3.36969,
"vy": -6.6637,
"vz": -0.28811
},
"kepler": {
"a": 7152.77568,
"e": 0.0010407,
"i": 1.50793,
"RAAN": 1.10019,
"aPer": 1.57086,
"f": 0.03861
},
"mass": "860.0",
"propellantMass": "160.0",
"mission_phase": "1"
}
},
"1": {
"sim_time": "1841 seconds",
"time": "2021-01-01T00:30:41",
"same_operator": "False",
"miss_distance": "0.6642",
"sat1": {
"ID": "100043167",
"state": {
"x": -960.02371,
-------------------------------------------------------------------------------------
"100043574": {
"name": "IRIDIUM 154",
"norad_id": "43574",
"operator_no1": "Iridium Communications, Inc.",
"operator_group_no1": "Commercial",
"operator_country_no1": "US",
"operator_no2": "Iridium Communications, Inc.",
"operator_group_no2": "nan",
"operator_country_no2": "nan",
"country_UN_register": "UNITED STATES OF AMERICA",
"mission_type": "Communication",
"mission_type_specification": "Niche Communication",
"orbit_type": "Polar",
"satellite_type": "Medium Satellite",
"launch_date": "2018-07-25T00:00:00.000000",
"expected_life_time": "473040000.0",
"mass_init": "860.0",
"dimension": {
"x": "1.5",
"y": "3.1",
"z": "9.4"
},
"av_crosssection": "6.6628",
"drag_coef": "2.2",
"ballistic_coef": "1.704e-08",
"propellant_mass_init": "160.0",
"initial_propellant_mass_fraction": "0.18604651162790697",
"propulsion_type": "1.0",
"specific_impulse": "None",
"thrust_average": "None",
"mission_phase": "1",
"station_keeping_threshold": "[None, 0.3333333333333333, None, None]"
},
"100043575": {
"name": "IRIDIUM 163",
"norad_id": "43575",
"operator_no1": "Iridium Communications, Inc.",
"operator_group_no1": "Commercial",
"operator_country_no1": "US",
"operator_no2": "Iridium Communications, Inc.",
"operator_group_no2": "nan",