Converti CSV in MDF
Converti le misurazioni CSV in ASAM MDF4 oppure importa i dati CSV in un database SQL Server.
Converti i file CSV online
Non abbiamo ancora un convertitore online dedicato per CSV in MDF, ma puoi convertire i file CSV online in questi e altri formati:
Come convertire csv in mdf file
- Database
- Ancora nessuna valutazione.
Un programma di test, automobilistico o di analisi dei dati può richiedere un file ASAM Measurement Data Format invece di una tabella di testo semplice. Un flusso di lavoro basato su database può invece richiedere un database Microsoft SQL Server il cui file di dati principale abbia l’estensione .mdf; si tratta di formati diversi che richiedono procedure di conversione differenti.
Cosa contiene CSV
CSV è un formato tabellare di testo semplice: le righe rappresentano i record, mentre virgole, punti e virgola o tabulazioni separano i campi. Microsoft Excel, LibreOffice Calc, Google Sheets, data logger, strumenti di laboratorio, esportazioni di database e script creano comunemente file CSV.
CSV di solito memorizza i valori senza definire metadati dei segnali, tipi di dati binari, gruppi di canali, frequenze di campionamento, formule di calibrazione, identità del dispositivo o ora di inizio della misurazione. Può essere presente una colonna timestamp, ma un file contenente solo campioni richiede un periodo di campionamento noto prima di poter rappresentare una misurazione temporizzata.
Quale MDF intendi?
ASAM MDF è un formato binario per dati di misurazione utilizzato per i test automobilistici, l’analisi CAN ed ECU, l’acquisizione dati e le apparecchiature di test. I file attuali usano comunemente .mf4; i file MDF 3 precedenti usano comunemente .mdf. MDF memorizza canali, gruppi di canali, timestamp, unità, tipi di dati, informazioni sulla sorgente e metadati della misurazione, consentendo al software compatibile di accedere in modo efficiente a registrazioni di grandi dimensioni e mantenere insieme i segnali sincronizzati.
Microsoft SQL Server MDF è un file di archiviazione di database, non un formato di misurazione. SQL Server gestisce il file e il relativo transaction log; modificare il nome di un file CSV in .mdf non può creare un database valido. Se la destinazione è SQL Server, importa il CSV in un database nuovo o esistente e lascia che SQL Server crei i file di dati.
Convertire CSV in ASAM MDF con Python
Il package open source asammdf offre il massimo controllo sui nomi dei canali, sui timestamp, sulle unità e sulla versione di output. Installalo con:
python -m pip install asammdf numpyPrepara un CSV UTF-8 con una riga di intestazione. Questo esempio prevede timestamp espressi in secondi e colonne di segnali numerici:
time,EngineSpeed,VehicleSpeed
0.000,800,0
0.010,805,0.2
0.020,810,0.4Salva quanto segue come csv_to_mdf.py, modificando i nomi dei canali e le unità in base alla sorgente:
import csv
import numpy as np
from asammdf import MDF, Signal
input_file = "measurement.csv"
output_file = "measurement.mf4"
time_name = "time"
units = {"EngineSpeed": "rpm", "VehicleSpeed": "km/h"}
with open(input_file, newline="", encoding="utf-8-sig") as file:
rows = list(csv.DictReader(file))
if not rows:
raise ValueError("The CSV contains no data rows")
if time_name not in rows[0]:
raise ValueError("The CSV must contain a 'time' column")
timestamps = np.array([float(row[time_name]) for row in rows], dtype=float)
if np.any(~np.isfinite(timestamps)) or np.any(np.diff(timestamps) < 0):
raise ValueError("Timestamps must be finite and nondecreasing")
mdf = MDF(version="4.10")
for name in rows[0]:
if name == time_name:
continue
samples = np.array([float(row[name]) for row in rows], dtype=float)
mdf.append(Signal(samples=samples, timestamps=timestamps,
name=name, unit=units.get(name, "")))
mdf.save(output_file, overwrite=True)Eseguilo con python csv_to_mdf.py. Apri il file measurement.mf4 risultante in un lettore MDF e controlla i nomi dei canali, le unità, i timestamp, il numero di campioni, i valori mancanti e gli intervalli numerici. Lo script scrive canali in virgola mobile; conserva i segnali Boolean, interi, enumerati, array di byte o di testo gestendo esplicitamente i tipi quando l’applicazione ricevente dipende da tali tipi.
Utilizzare software desktop per le misurazioni
Le applicazioni di misurazione di Vector, National Instruments, Dewesoft e altri fornitori di sistemi di test possono importare canali CSV ed esportare ASAM MDF, ma il supporto dipende dal prodotto, dalla versione, dalla licenza e dalle opzioni installate. Il flusso di lavoro tipico è File → Import → CSV, configura il delimitatore, il separatore decimale, la riga di intestazione, la colonna timestamp e le unità, quindi scegli il comando di esportazione MDF o MDF4 del prodotto. Verifica nella documentazione che l’output sia ASAM MDF e non un file proprietario con estensione .mdf.
Per una conversione ripetibile o automatizzata, asammdf è generalmente più facile da verificare rispetto a un’importazione grafica, perché la costruzione dei timestamp, le unità, la gestione dei valori mancanti e la versione di output sono esplicite nello script.
Importare CSV in un database SQL Server
Se il file richiesto è un .mdf di SQL Server, crea un database in SQL Server Management Studio o SQL Server Express, quindi usa Tasks → Import Flat File oppure SQL Server Import and Export Wizard. Seleziona il CSV, imposta il delimitatore, il qualificatore di testo, la codifica, i tipi di colonna, la gestione dei valori nulli e la tabella di destinazione, quindi lascia che SQL Server crei o estenda il database.
Controlla i tipi di colonna dedotti prima dell’importazione: gli identificatori con zeri iniziali devono essere testo, le date richiedono un formato non ambiguo e i valori numerici lunghi possono richiedere decimal o bigint. Il risultato è un database SQL Server i cui dati possono risiedere in un file .mdf; il CSV non è stato convertito in un file di misurazione ASAM. Strumenti come Full Convert possono migrare dati CSV in un database SQL Server quando supportato, ma non sostituiscono la gestione dei file di database di SQL Server.
Controlli di qualità e compatibilità
- Base dei tempi: Se il CSV non contiene timestamp, calcolali in base alla frequenza di campionamento documentata; a 100 Hz, usa intervalli di 0,01 secondi. Una base dei tempi dedotta non può recuperare temporizzazioni sconosciute, campioni persi, pause o eventi di trigger.
- Delimitatore e impostazioni locali: Configura i separatori virgola o punto e virgola e il punto o la virgola decimale. Un’impostazione errata può spostare i campi o importare i valori numerici come testo.
- Letture mancanti: Decidi come rappresentare celle vuote,
NaNe valori non validi. Sostituire i valori mancanti con zero modifica la misurazione, a meno che tale regola non sia documentata. - Perdita di metadati: CSV normalmente non può fornire definizioni dei messaggi CAN, formule di conversione ECU, identità del dispositivo di acquisizione, informazioni sul trigger, calibrazione o dettagli originali sulla sincronizzazione. Aggiungi i metadati richiesti dopo l’importazione.
- Versione ed estensione: Usa
.mf4per MDF4, a meno che la destinazione non richieda specificamente MDF3. Rinominare.csvin.mdfnon esegue alcuna conversione e un file ASAM.mdfnon deve essere fornito a SQL Server. - Servizi online: I convertitori generici raramente supportano la creazione conforme agli standard di ASAM MDF o SQL Server MDF. Non caricare dati di veicoli, laboratori o dati proprietari, a meno che un servizio non documenti esplicitamente il tipo MDF richiesto, la convalida dell’output, le politiche di conservazione e di eliminazione; convalida qualsiasi file scaricato con l’applicazione di destinazione.
Confronto formato: CSV vs MDF
Come i formati CSV e MDF si confrontano sulle proprietà più importanti per questa conversione.
| Proprietà | .CSV Comma-Separated Values | .MDF Media Descriptor File |
|---|---|---|
| Standard aperto | Sì | No |
| Compressione | Non compresso | Entrambi |
| Dimensione tipica del file | Piccolo | Grande |
| Si apre in un browser web | Sì, nativamente | No |
| Modifica successiva | Facile | Non modificabile direttamente |
| Supporto metadata | Base | Base |
| Leggibile come testo semplice | Sì | No |
| Ideale per | Scambio dati | Archiviazione a lungo termine |
| Introdotto | — | 2000 |
| Sviluppatore | — | Alcohol Soft |
| Tipo MIME | text/csv | — |