Parsing .txt -Dateien zum Erstellen von LichtkurvenPython

Python-Programme
Anonymous
 Parsing .txt -Dateien zum Erstellen von Lichtkurven

Post by Anonymous »

Ich habe ungefähr 2.000 .TXT -Dateien, in denen Lichtkurvendaten enthalten sind. Jede .txt -Datei ist eine andere Parameterkombination. Es gibt 12 Parameter mit jeweils 2-3 Optionen, weshalb die Anzahl der Dateien so groß ist und jeweils etwa fünf Iterationen ausgeführt werden. Ich verwende WSL, um meine Dateien zu analysieren, um eine Kombination jedes Parameters zu erhalten. Wenn ich die Lichtkurven ausführe, kann ich sie für jeden Satz von Lichtkurven auf einen MultiPlot mit verschiedenen Param -Combos setzen. Ich frage mich, ob sich jemand eine einfachere Möglichkeit vorstellen kann, Dateien zu analysieren als meinen Code, der wie folgt ist: < /p>
import os
import re
import shutil
import yaml
from itertools import product

#Load and flatten YAML
yaml_path = 'my path with parameters'
with open(yaml_path, 'r') as f:
raw_params = yaml.safe_load(f)

#Flatten nested YAML structure into one dict
params = {}
for section in raw_params.values():
if isinstance(section, dict):
params.update(section)

#Keys we want to track from filename
grid_keys = [
'sp', 'inclination', 'angwidth', 'p', 'vff', 'ymax', 'numclouds',
'opening_angle', 'angwidth_pol', 'p_pol', 'vff_pol', 'ymax_pol',
'cl_fraction'
]

#Make sure all grid_keys exist in YAML
missing_keys = [k for k in grid_keys if k not in params]
if missing_keys:
raise KeyError(f"The following required keys are missing from the YAML:
{missing_keys}")

#Build Cartesian product of all parameter combinations
param_values = [params[k] for k in grid_keys]
full_param_grid = [dict(zip(grid_keys, combo)) for combo in product(*param_values)]
< /code>
Der Abschnitt "Lichtkurve" ist einfacher, da jede .txt -Datei eine Liste von Daten und eine Liste von Flüssen enthält. Mein Hauptproblem ist daher bei der Parsen von Dateien. Ich habe diesen Code ausprobiert und während er einzeln funktioniert, muss ich normalerweise für jede Versuch eingehen und ihm eine Tonne bearbeiten, damit er funktioniert. tormac_polar_clorient_clocc_clshadow_diffon_vff0.1_vffPOL0.1_depth050_subon_fuzzy_LC2_ani_p2_pPOL-2_i45_y5_yPOL500_sig15_sigPOL5_open80_clfrac0.333_nmc
So each value has a different number dahinter und ein anderes (Ex. VFF ist Volumenfüllfaktor und hat einen 0,1 oder 0,01). Hier ist ein Beispiel für das, was sich in einer der .txt -Dateien befindet: < /p>
0.000000000e+00 1.329560856e+34 9.733074478e+03 1.276656381e+34 5.250149149e+03 5.290447453E 4.482925329e+03
6.047061407e+01 1.329547737e+34 9.731897858e+03 1.276657187E+34 5.250152462E+03 5.2890549755E 4.481745396E+03 < /p>
Jede Zeile in diesem Ausgang hat sieben Spalten alle Diff -Flüsse für verschiedene Wellenlängen. Mein Problem ist, dass ich nur nichts erhalte, wenn ich versuche, diese zu organisieren. Ich versuche, Kombinationen jedes Dateipfads zu erstellen (also für VFF = 0,1, jede andere Kombination von Parametern usw.). Ich bekomme nur leere Ergebnisse. Ich bin sehr neu in WSL, also fehlt vielleicht etwas Einfaches.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post