NC_AddFiles

NC_AddFiles erzeugt eine neue NC-Datei durch Verketten von mehreren Dateien wobei die Datenrekords der angegebenen Dateien aneinander gehängt werden. Es werden die Daten der Kanäle verkettet, deren Namen übereinstimmen.

oError = NC_AddFiles(svNCAdd, ssNCDest)
oError = NC_AddFiles(svNCAdd, ssNCDest, svVarNames)
oError = NC_AddFiles(svNCAdd, ssNCDest, obj)

Returnwert

Der Returnwert ist 0 oder enthält ein Error-Objekt, siehe error_create.

Parameter

svNCAdd

svNCAdd ist ein Vektor mit den Namen der NC-Dateien.

ssNCDest

ssNCDest ist der Name unter dem die neue Datei gespeichert wird.

svVarNames

svVarNames ist ein Vektor mit Kanalnamen. Nur die angegebenen Namen werden in der Datei gespeichert. Wird der Parameter nicht angegeben, werden alle Kanäle in die Zieldatei geschrieben. Falls einer der Kanäle in einer Datei nicht vorhanden ist, wird der Kanal für die entsprechenden Datenpunkte mit missing_value aufgefüllt.

obj

obj ist ein Objekt mit den folgenden Elementen:

Name Bedeutung
obj.bKeepTimeGaps
(BOOL) Wenn der Wert TRUE (1) ist, werden die Zeitlücken entfernt.
Beim Wert FALSE (0), wird der Zeitkanal nicht verändert. Defaultwert is FALSE. Siehe Kommentar.
obj.svVarNames (String) String-Vektor mit Kanalname. Die Zeitkanäle werden automatisch zugefügt. Defaultwert ist „“. In diesem Fall werden alle Kanäle zugefügt.

Kommentar

Ab R2015.8 werden auch Kanäle zugefügt, die in der ersten Datei nicht vorhanden sind.

Die Kanalnamen müssen in allen Dateien den gleichen Datentyp (NC_CHAR oder Zahl) besitzen.

Ab R2013.10 können mit der Funktion auch MDF-Dateien, BLF oder Puma-Rekordermessungen angehängt werden. Diese Dateien enthalten im Allgemeinen Messdaten mit unterschiedlicher Abtastfrequenz (Zeitgruppe), wobei die Kanäle mit gleicher Abtastfrequenz normalerweise in einer Dimension gespeichert werden.

Für jede Datei wird der Zeitbereich ermittelt (t_start und t_end). Der Startzeitpunkt der zweiten und aller weiteren Dateien wird dann wie folgt korrigiert:

t_offset = t_end[iFile] - t_start[iFile+1] + 0.1;
t[i] = t[i] + t_offset;

UniPlot erkennt einen Zeitkanal daran, dass der entsprechende Kanal ein Attribut Type mit dem Wert Time Channel enthält.

Die Zuordnung der Zeitgruppen wird bestimmt, indem die übereinstimmenden Kanäle gezählt werden. Es werden die Zeitgruppen einander zugeordnet, bei denen die Kanalübereinstimmung am größten ist.

Da die Kanäle über die Namen ausgewählt werden, müssen die Namen in allen Dateien gleich sein. Beispielsweise kann ein Kanal nmot aus Datei 2 nicht an einen Kanal mit den Namen G2_nmot aus Datei 1 angehängt werden.

Die Zeitkanäle für die angegebenen Kanäle werden automatisch übernommen. Sie können zwar, müssen aber nicht angegeben werden.

Beispiel

def _NC_AddFiles(svFiles)
{
    if (len(svFiles) < 2) {
        return auto_ImportData(svFiles[1]);
    }
    svF = svFiles;
    for (i in 1:len(svFiles)) {
        svF[i] = auto_ImportData(svFiles[i]);
    }
    svFirst = svF[1];

    svP = SplitPath(svFiles[1]);
    ssNCDest = sum(svP[1,2,3]) + "Add.nc2";
    oError = NC_AddFiles(svF, ssNCDest);
    if (type(oError) == "error") {
       MessageBoxError("%s\n\nError-No.: %d\n%s", oError.domain, oError.code, oError.message);
       return "";
    }
    return ssNCDest;
}

Beispiel

def test_NC_AddFiles()
{
   obj= [.];
   obj.bKeepTimeGaps = 1;
   obj.svVarNames = ["Air_pCACDs", "LSU_rLam", "ASMod_dVolEGFld__0_"];
   svNCAdd = "x:\\test-data\\Inca\\" +  ...
       ["IN04N_US06(1).dat.nc2", ....
        "IN04N_US06(1).dat_2.nc2"];

   NC_AddFiles(svNCAdd, "T:/Neuer Ordner/aa.nc2", obj);
   NC_Edit("T:/Neuer Ordner/aa.nc2");
}

History

Version Beschreibung
R2018.11 Neuer Parameter obj.
R2015.8 Kanäle die zum ersten Mal in der zweiten oder höheren Datei auftreten, nicht aber in der ersten Datei vorhanden sind, werden nun auch zugefügt.
R2013.10 Es können auch die Daten von NC-Dateien mit mehreren Dimensionen zugefügt werden.
R2013.5 Neu.

id-1284725