Převod souboru CSV do MDF
Převeďte měření ve formátu CSV do ASAM MDF4 nebo importujte data CSV do databáze SQL Server.
Převádějte soubory CSV online
Pro převod CSV do MDF zatím vlastní online konvertor nemáme, ale soubory CSV můžete online převést do těchto a dalších formátů:
Jak převést soubor csv do formátu mdf
- Databázové formáty
- Dosud nehodnoceno.
Testovací, automobilový nebo analytický program může místo tabulky v prostém textu vyžadovat soubor ASAM Measurement Data Format. Databázový pracovní postup může naopak vyžadovat databázi Microsoft SQL Server, jejíž primární datový soubor má příponu .mdf; jedná se o odlišné formáty, které vyžadují různé postupy převodu.
Co obsahuje CSV
CSV je tabulkový formát v prostém textu: řádky představují záznamy, zatímco čárky, středníky nebo tabulátory oddělují pole. Soubory CSV běžně vytvářejí Microsoft Excel, LibreOffice Calc, Google Sheets, dataloggery, laboratorní přístroje, exporty databází a skripty.
CSV obvykle ukládá hodnoty bez definování metadat signálů, binárních datových typů, skupin kanálů, vzorkovacích frekvencí, kalibračních vzorců, identity zařízení nebo času zahájení měření. Sloupec s časovými značkami může být přítomen, ale soubor obsahující pouze vzorky vyžaduje známou periodu vzorkování, aby mohl představovat časově uspořádané měření.
Který MDF máte na mysli?
ASAM MDF je binární formát měřicích dat používaný pro automobilové testování, analýzu CAN a ECU, sběr dat a testovací zařízení. Aktuální soubory běžně používají příponu .mf4; starší soubory MDF 3 běžně používají .mdf. MDF ukládá kanály, skupiny kanálů, časové značky, jednotky, datové typy, informace o zdroji a metadata měření, což kompatibilnímu softwaru umožňuje efektivně přistupovat k rozsáhlým záznamům a udržovat synchronizované signály pohromadě.
Microsoft SQL Server MDF je soubor úložiště databáze, nikoli formát měřicích dat. SQL Server spravuje tento soubor a související transakční protokol; změnou názvu souboru CSV na .mdf nelze vytvořit platnou databázi. Pokud je cílem SQL Server, importujte CSV do nové nebo existující databáze a nechte SQL Server vytvořit datové soubory.
Převod CSV na ASAM MDF pomocí Pythonu
Balíček s otevřeným zdrojovým kódem asammdf poskytuje největší kontrolu nad názvy kanálů, časovými značkami, jednotkami a výstupní verzí. Nainstalujte jej pomocí:
python -m pip install asammdf numpyPřipravte CSV v kódování UTF-8 s řádkem záhlaví. Tento příklad očekává časové značky v sekundách a číselné sloupce signálů:
time,EngineSpeed,VehicleSpeed
0.000,800,0
0.010,805,0.2
0.020,810,0.4Uložte následující kód jako csv_to_mdf.py a změňte názvy kanálů a jednotky tak, aby odpovídaly zdroji:
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)Spusťte jej pomocí python csv_to_mdf.py. Otevřete výsledný soubor measurement.mf4 v prohlížeči MDF a zkontrolujte názvy kanálů, jednotky, časové značky, počty vzorků, chybějící hodnoty a číselné rozsahy. Skript zapisuje kanály s hodnotami s plovoucí desetinnou čárkou; pokud přijímající aplikace závisí na těchto typech, zachovejte booleovské, celočíselné, výčtové, bajtové nebo textové signály pomocí explicitního zpracování typů.
Použití desktopového měřicího softwaru
Měřicí aplikace od společností Vector, National Instruments, Dewesoft a dalších dodavatelů testovacích systémů mohou importovat kanály CSV a exportovat ASAM MDF, ale podpora závisí na produktu, verzi, licenci a nainstalovaných možnostech. Typický pracovní postup je File → Import → CSV, při kterém nakonfigurujete oddělovač, oddělovač desetinných míst, řádek záhlaví, sloupec s časovými značkami a jednotky, a poté zvolíte příkaz produktu pro export MDF nebo MDF4. V dokumentaci ověřte, že výstupem je ASAM MDF, nikoli proprietární soubor s příponou .mdf.
Pro opakovatelný nebo automatizovaný převod se asammdf obvykle snadněji kontroluje než grafický import, protože konstrukce časových značek, jednotky, zásady pro chybějící hodnoty a výstupní verze jsou ve skriptu explicitně uvedeny.
Import CSV do databáze SQL Server
Pokud je požadovaným souborem SQL Server .mdf, vytvořte databázi v SQL Server Management Studio nebo SQL Server Express a poté použijte Tasks → Import Flat File nebo SQL Server Import and Export Wizard. Vyberte CSV, nastavte jeho oddělovač, kvalifikátor textu, kódování, typy sloupců, zpracování hodnot NULL a cílovou tabulku a nechte SQL Server vytvořit nebo rozšířit databázi.
Před importem zkontrolujte odvozené typy sloupců: identifikátory s úvodními nulami by měly být textové, data vyžadují jednoznačný formát a dlouhé číselné hodnoty mohou vyžadovat decimal nebo bigint. Výsledkem je databáze SQL Server, jejíž data mohou být uložena v souboru .mdf; samotné CSV nebylo převedeno na soubor měřicích dat ASAM. Nástroje, jako je Full Convert, mohou při podporované konfiguraci migrovat data CSV do databáze SQL Server, nenahrazují však správu databázových souborů SQL Serveru.
Kontroly kvality a kompatibility
- Časová základna: Pokud CSV neobsahuje časové značky, vypočítejte je z dokumentované vzorkovací frekvence; při 100 Hz použijte intervaly 0,01 sekundy. Odvozená časová základna nemůže obnovit neznámé časování, vynechané vzorky, pauzy ani spouštěcí události.
- Oddělovač a národní prostředí: Nakonfigurujte oddělovače čárka versus středník a desetinnou tečku versus desetinnou čárku. Nesprávné nastavení může posunout pole nebo importovat číselné hodnoty jako text.
- Chybějící údaje: Rozhodněte, jak mají být reprezentovány prázdné buňky,
NaNa neplatné hodnoty. Nahrazení mezer nulou mění měření, pokud toto pravidlo není zdokumentováno. - Ztráta metadat: CSV obvykle nemůže poskytnout definice zpráv CAN, převodní vzorce ECU, identitu zařízení pro sběr dat, informace o spouštění, kalibraci ani původní podrobnosti synchronizace. Po importu přidejte požadovaná metadata.
- Verze a přípona: Pro MDF4 použijte
.mf4, pokud cílový systém výslovně nevyžaduje MDF3. Přejmenování.csvna.mdfneprovádí žádný převod a soubor ASAM.mdfnesmí být předán SQL Serveru. - Online služby: Obecné převodníky jen zřídka podporují tvorbu standardně kompatibilních souborů ASAM MDF nebo SQL Server MDF. Nenahrávejte data z vozidel, laboratoří ani proprietární data, pokud služba výslovně nepopisuje požadovaný typ MDF, ověření výstupu, zásady uchovávání a mazání; každý stažený soubor ověřte v cílové aplikaci.
CSV vs MDF: srovnání formátů
Jak si formáty CSV a MDF stojí v nejdůležitějších vlastnostech pro tento převod.
| Vlastnost | .CSV Comma-Separated Values | .MDF Media Descriptor File |
|---|---|---|
| Otevřený standard | Ano | Ne |
| Komprese | Bez komprese | Obojí |
| Typická velikost souboru | Malé | Velký |
| Otevírá se ve webovém prohlížeči | Ano, nativně | Ne |
| Další úpravy | Snadné | Nelze přímo upravovat |
| Podpora metadat | Základní | Základní |
| Čitelný jako prostý text | Ano | Ne |
| Nejvhodnější pro | Výměna dat | Dlouhodobá archivace |
| Zavedeno | — | 2000 |
| Vývojář | — | Alcohol Soft |
| MIME typ | text/csv | — |