Converti csv in mdf

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

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 numpy

Prepara 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.4

Salva 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, NaN e 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 .mf4 per MDF4, a meno che la destinazione non richieda specificamente MDF3. Rinominare .csv in .mdf non esegue alcuna conversione e un file ASAM .mdf non 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.

Confronto dei formati CSV e MDF
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 —

Altre conversioni di file .csv

Conversione inversa

Conversione in .mdf
da altri formati

Condividi sui social media: