Konwertuj CSV na MDF
Konwertuj pomiary CSV do ASAM MDF4 lub importuj dane CSV do bazy danych SQL Server.
Konwertuj pliki CSV online
Nie mamy jeszcze dedykowanego konwertera online dla CSV na MDF, ale pliki CSV możesz przekonwertować online na te i inne formaty:
Jak konwertować csv do mdf
- Bazy danych
- Brak ocen.
Program testowy, motoryzacyjny lub do analizy danych może wymagać pliku ASAM Measurement Data Format zamiast tabeli w postaci zwykłego tekstu. W ramach obsługi baz danych może być natomiast wymagana baza danych Microsoft SQL Server, której podstawowy plik danych ma rozszerzenie .mdf; są to różne formaty i wymagają różnych procedur konwersji.
Co zawiera CSV
CSV to tabelaryczny format zwykłego tekstu: wiersze reprezentują rekordy, natomiast przecinki, średniki lub tabulatory oddzielają pola. Microsoft Excel, LibreOffice Calc, Google Sheets, rejestratory danych, przyrządy laboratoryjne, eksporty baz danych i skrypty często tworzą pliki CSV.
CSV zwykle przechowuje wartości bez definiowania metadanych sygnałów, binarnych typów danych, grup kanałów, częstotliwości próbkowania, formuł kalibracyjnych, tożsamości urządzenia ani czasu rozpoczęcia pomiaru. Kolumna znacznika czasu może być obecna, ale plik zawierający wyłącznie próbki wymaga znanego okresu próbkowania, aby mógł reprezentować pomiar w czasie.
O który MDF chodzi?
ASAM MDF to binarny format danych pomiarowych używany do testów motoryzacyjnych, analizy CAN i ECU, akwizycji danych oraz obsługi urządzeń testowych. Obecne pliki zwykle używają rozszerzenia .mf4; starsze pliki MDF 3 zwykle używają rozszerzenia .mdf. MDF przechowuje kanały, grupy kanałów, znaczniki czasu, jednostki, typy danych, informacje o źródle i metadane pomiarów, umożliwiając kompatybilnemu oprogramowaniu wydajny dostęp do dużych nagrań oraz zachowanie zsynchronizowanych sygnałów razem.
Microsoft SQL Server MDF to plik pamięci masowej bazy danych, a nie format pomiarowy. SQL Server zarządza tym plikiem i powiązanym dziennikiem transakcji; zmiana nazwy pliku CSV na .mdf nie może utworzyć prawidłowej bazy danych. Jeśli miejscem docelowym jest SQL Server, zaimportuj CSV do nowej lub istniejącej bazy danych i pozwól SQL Server utworzyć pliki danych.
Konwersja CSV do ASAM MDF za pomocą Python
Pakiet open source asammdf zapewnia największą kontrolę nad nazwami kanałów, znacznikami czasu, jednostkami i wersją wyjściową. Zainstaluj go za pomocą:
python -m pip install asammdf numpyPrzygotuj plik CSV w kodowaniu UTF-8 z wierszem nagłówka. Ten przykład oczekuje znaczników czasu w sekundach i numerycznych kolumn sygnałów:
time,EngineSpeed,VehicleSpeed
0.000,800,0
0.010,805,0.2
0.020,810,0.4Zapisz poniższy kod jako csv_to_mdf.py, zmieniając nazwy kanałów i jednostki tak, aby odpowiadały źródłu:
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)Uruchom go za pomocą python csv_to_mdf.py. Otwórz wynikowy plik measurement.mf4 w czytniku MDF i sprawdź nazwy kanałów, jednostki, znaczniki czasu, liczbę próbek, brakujące wartości oraz zakresy liczbowe. Skrypt zapisuje kanały zmiennoprzecinkowe; jeśli aplikacja odbierająca zależy od tych typów, zachowaj sygnały Boolean, całkowite, wyliczeniowe, tablice bajtów lub tekstowe, stosując jawne obsługiwanie typów.
Użycie desktopowego oprogramowania pomiarowego
Aplikacje pomiarowe firm Vector, National Instruments, Dewesoft i innych dostawców systemów testowych mogą importować kanały CSV i eksportować ASAM MDF, ale obsługa zależy od produktu, wersji, licencji i zainstalowanych opcji. Typowy przebieg pracy to File → Import → CSV, skonfigurowanie separatora, separatora dziesiętnego, wiersza nagłówka, kolumny znacznika czasu i jednostek, a następnie wybranie polecenia eksportu MDF lub MDF4 danego produktu. Sprawdź w dokumentacji, czy wynikiem jest ASAM MDF, a nie własnościowy plik z rozszerzeniem .mdf.
W przypadku powtarzalnej lub zautomatyzowanej konwersji asammdf jest zwykle łatwiejszy do skontrolowania niż import graficzny, ponieważ sposób tworzenia znaczników czasu, jednostki, zasady obsługi brakujących wartości i wersja wyjściowa są jawnie określone w skrypcie.
Import CSV do bazy danych SQL Server
Jeśli wymaganym plikiem jest plik SQL Server .mdf, utwórz bazę danych w SQL Server Management Studio lub SQL Server Express, a następnie użyj opcji Tasks → Import Flat File albo SQL Server Import and Export Wizard. Wybierz plik CSV, ustaw jego separator, kwalifikator tekstu, kodowanie, typy kolumn, obsługę wartości null oraz tabelę docelową, a następnie pozwól SQL Server utworzyć bazę danych lub ją rozszerzyć.
Przed importem sprawdź wywnioskowane typy kolumn: identyfikatory z zerami wiodącymi powinny być tekstem, daty wymagają jednoznacznego formatu, a długie wartości liczbowe mogą wymagać typu decimal lub bigint. Wynikiem jest baza danych SQL Server, której dane mogą znajdować się w pliku .mdf; sam plik CSV nie został przekonwertowany na plik pomiarowy ASAM. Narzędzia takie jak Full Convert mogą migrować dane CSV do bazy danych SQL Server, jeśli jest to obsługiwane, ale nie zastępują zarządzania plikami bazy danych przez SQL Server.
Kontrola jakości i zgodności
- Podstawa czasu: Jeśli CSV nie zawiera znaczników czasu, oblicz je na podstawie udokumentowanej częstotliwości próbkowania; przy 100 Hz użyj odstępów co 0,01 sekundy. Wywnioskowana podstawa czasu nie pozwala odtworzyć nieznanego taktowania, pominiętych próbek, przerw ani zdarzeń wyzwalających.
- Separator i ustawienia regionalne: Skonfiguruj separatory: przecinek kontra średnik oraz kropka dziesiętna kontra przecinek dziesiętny. Nieprawidłowe ustawienie może przesunąć pola lub zaimportować wartości liczbowe jako tekst.
- Brakujące odczyty: Określ sposób reprezentowania pustych komórek,
NaNi nieprawidłowych wartości. Zastąpienie luk zerem zmienia pomiar, chyba że taka zasada jest udokumentowana. - Utrata metadanych: CSV zwykle nie może dostarczyć definicji komunikatów CAN, formuł konwersji ECU, tożsamości urządzenia akwizycji, informacji o wyzwalaniu, kalibracji ani pierwotnych szczegółów synchronizacji. Po imporcie dodaj wymagane metadane.
- Wersja i rozszerzenie: Używaj
.mf4dla MDF4, chyba że miejsce docelowe wymaga konkretnie MDF3. Zmiana nazwy.csvna.mdfnie wykonuje konwersji, a pliku ASAM.mdfnie wolno dostarczać do SQL Server. - Usługi online: Ogólne konwertery rzadko obsługują zgodne ze standardem tworzenie plików ASAM MDF lub SQL Server MDF. Nie przesyłaj danych pojazdu, laboratoryjnych ani własnościowych, chyba że usługa wyraźnie dokumentuje wymagany typ MDF, walidację wyników oraz zasady przechowywania i usuwania danych; każdy pobrany plik zweryfikuj za pomocą aplikacji docelowej.
Porównanie formatu CSV z MDF
Jak formaty CSV i MDF wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.
| Cecha | .CSV Comma-Separated Values | .MDF Media Descriptor File |
|---|---|---|
| Otwarty standard | Tak | Nie |
| Kompresja | Bez kompresji | Oba |
| Typowy rozmiar pliku | Mały | Duży |
| Otwiera się w przeglądarce internetowej | Tak, natywnie | Nie |
| Dalsza edycja | Łatwy | Nie do bezpośredniej edycji |
| Obsługa metadanych | Podstawowy | Podstawowy |
| Czytelny tekstowo | Tak | Nie |
| Najlepszy do | Wymiana danych | Archiwizacja długoterminowa |
| Wprowadzono | — | 2000 |
| Twórca | — | Alcohol Soft |
| Typ MIME | text/csv | — |